Diff
Modified: trunk/PerformanceTests/SunSpider/ChangeLog (169091 => 169092)
--- trunk/PerformanceTests/SunSpider/ChangeLog 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/PerformanceTests/SunSpider/ChangeLog 2014-05-20 01:53:56 UTC (rev 169092)
@@ -1,3 +1,12 @@
+2014-05-19 Filip Pizlo <[email protected]>
+
+ Take care of some ARM64 test failures
+ https://bugs.webkit.org/show_bug.cgi?id=133090
+
+ Reviewed by Geoffrey Garen.
+
+ * profiler-test.yaml: Skip these on not-x86.
+
2014-03-14 Maciej Stachowiak <[email protected]>
Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
Modified: trunk/PerformanceTests/SunSpider/profiler-test.yaml (169091 => 169092)
--- trunk/PerformanceTests/SunSpider/profiler-test.yaml 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/PerformanceTests/SunSpider/profiler-test.yaml 2014-05-20 01:53:56 UTC (rev 169092)
@@ -1,4 +1,4 @@
-# Copyright (C) 2013 Apple Inc. All rights reserved.
+# Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -25,4 +25,9 @@
# with the runProfiler command.
- path: tests/sunspider-1.0
- cmd: runProfiler
+ cmd: |
+ if $architecture =~ /x86/
+ runProfiler
+ else
+ skip
+ end
Modified: trunk/Source/_javascript_Core/ChangeLog (169091 => 169092)
--- trunk/Source/_javascript_Core/ChangeLog 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-05-20 01:53:56 UTC (rev 169092)
@@ -1,3 +1,20 @@
+2014-05-19 Filip Pizlo <[email protected]>
+
+ Take care of some ARM64 test failures
+ https://bugs.webkit.org/show_bug.cgi?id=133090
+
+ Reviewed by Geoffrey Garen.
+
+ Constant blinding on ARM64 cannot use the scratch register.
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::convertInt32ToDouble):
+ (JSC::MacroAssembler::branchPtr):
+ (JSC::MacroAssembler::storePtr):
+ (JSC::MacroAssembler::store64):
+ * assembler/MacroAssemblerARM64.h:
+ (JSC::MacroAssemblerARM64::scratchRegisterForBlinding):
+
2014-05-19 Tanay C <[email protected]>
Removing some check-webkit-style warnings from ./dfg
Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.h (169091 => 169092)
--- trunk/Source/_javascript_Core/assembler/MacroAssembler.h 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.h 2014-05-20 01:53:56 UTC (rev 169092)
@@ -1140,7 +1140,7 @@
void convertInt32ToDouble(Imm32 imm, FPRegisterID dest)
{
- if (shouldBlind(imm)) {
+ if (shouldBlind(imm) && haveScratchRegisterForBlinding()) {
RegisterID scratchRegister = scratchRegisterForBlinding();
loadXorBlindedConstant(xorBlindConstant(imm), scratchRegister);
convertInt32ToDouble(scratchRegister, dest);
@@ -1176,7 +1176,7 @@
Jump branchPtr(RelationalCondition cond, RegisterID left, ImmPtr right)
{
- if (shouldBlind(right)) {
+ if (shouldBlind(right) && haveScratchRegisterForBlinding()) {
RegisterID scratchRegister = scratchRegisterForBlinding();
loadRotationBlindedConstant(rotationBlindConstant(right), scratchRegister);
return branchPtr(cond, left, scratchRegister);
@@ -1186,7 +1186,7 @@
void storePtr(ImmPtr imm, Address dest)
{
- if (shouldBlind(imm)) {
+ if (shouldBlind(imm) && haveScratchRegisterForBlinding()) {
RegisterID scratchRegister = scratchRegisterForBlinding();
loadRotationBlindedConstant(rotationBlindConstant(imm), scratchRegister);
storePtr(scratchRegister, dest);
@@ -1196,7 +1196,7 @@
void store64(Imm64 imm, Address dest)
{
- if (shouldBlind(imm)) {
+ if (shouldBlind(imm) && haveScratchRegisterForBlinding()) {
RegisterID scratchRegister = scratchRegisterForBlinding();
loadRotationBlindedConstant(rotationBlindConstant(imm), scratchRegister);
store64(scratchRegister, dest);
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (169091 => 169092)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2014-05-20 01:53:56 UTC (rev 169092)
@@ -2408,7 +2408,12 @@
return ARM64Assembler::maxJumpReplacementSize();
}
- RegisterID scratchRegisterForBlinding() { return getCachedDataTempRegisterIDAndInvalidate(); }
+ RegisterID scratchRegisterForBlinding()
+ {
+ // We *do not* have a scratch register for blinding.
+ RELEASE_ASSERT_NOT_REACHED();
+ return getCachedDataTempRegisterIDAndInvalidate();
+ }
static bool canJumpReplacePatchableBranchPtrWithPatch() { return false; }
static bool canJumpReplacePatchableBranch32WithPatch() { return false; }
Modified: trunk/Tools/ChangeLog (169091 => 169092)
--- trunk/Tools/ChangeLog 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/Tools/ChangeLog 2014-05-20 01:53:56 UTC (rev 169092)
@@ -1,3 +1,12 @@
+2014-05-19 Filip Pizlo <[email protected]>
+
+ Take care of some ARM64 test failures
+ https://bugs.webkit.org/show_bug.cgi?id=133090
+
+ Reviewed by Geoffrey Garen.
+
+ * Scripts/run-jsc-stress-tests: Make it easier to conditionally skip things.
+
2014-05-19 David Kilzer <[email protected]>
[iOS] REGRESSION (r168910): webkitdirs.pm: Be more forgiving when parsing --sdk, --device and --sim
Modified: trunk/Tools/Scripts/run-jsc-stress-tests (169091 => 169092)
--- trunk/Tools/Scripts/run-jsc-stress-tests 2014-05-20 01:09:37 UTC (rev 169091)
+++ trunk/Tools/Scripts/run-jsc-stress-tests 2014-05-20 01:53:56 UTC (rev 169092)
@@ -176,6 +176,40 @@
exit 1
end
+# Try to determine architecture. Return nil on failure.
+def machOArchitectureCode
+ otoolLines = `otool -aSfh #{Shellwords.shellescape($jscPath.to_s)}`.split("\n")
+ otoolLines.each_with_index {
+ | value, index |
+ if value =~ /magic/ and value =~ /cputype/
+ return otoolLines[index + 1].split[1].to_i
+ end
+ }
+ $stderr.puts "Warning: unable to determine architecture."
+ nil
+end
+
+def determineArchitecture
+ code = machOArchitectureCode
+ return nil unless code
+ is64BitFlag = 0x01000000
+ case code
+ when 7
+ "x86"
+ when 7 | is64BitFlag
+ "x86-64"
+ when 12
+ "arm"
+ when 12 | is64BitFlag
+ "arm64"
+ else
+ $stderr.puts "Warning: unable to determine architecture from code: #{code}"
+ nil
+ end
+end
+
+$architecture = determineArchitecture
+
$numFailures = 0
EAGER_OPTIONS = ["--thresholdForJITAfterWarmUp=10", "--thresholdForJITSoon=10", "--thresholdForOptimizeAfterWarmUp=20", "--thresholdForOptimizeAfterLongWarmUp=20", "--thresholdForOptimizeSoon=20", "--thresholdForFTLOptimizeAfterWarmUp=20", "--thresholdForFTLOptimizeSoon=20"]
@@ -478,6 +512,7 @@
end
def addRunCommand(kind, command, outputHandler, errorHandler)
+ $didAddRunCommand = true
plan = Plan.new($benchmarkDirectory, command, baseOutputName(kind), outputHandler, errorHandler)
if $numProcessors > 1 and $runCommandOptions[:isSlow]
$runlist.unshift plan
@@ -490,7 +525,8 @@
# $benchmark), in which case those run commands have already been executed. Otherwise
# returns false, in which case you're supposed to add your own run commands.
def parseRunCommands
- didRun = false
+ oldDidAddRunCommand = $didAddRunCommand
+ $didAddRunCommand = false
Dir.chdir($outputDir) {
File.open($benchmarkDirectory + $benchmark) {
@@ -506,12 +542,13 @@
end
next unless doesMatch
eval $~.post_match
- didRun = true
}
}
}
- didRun
+ result = $didAddRunCommand
+ $didAddRunCommand = result or oldDidAddRunCommand
+ result
end
def slow!
@@ -797,6 +834,7 @@
end
def skip
+ $didAddRunCommand = true
puts "Skipping #{$collectionName}/#{$benchmark}"
end