⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 169092 in webkit


Ignore:
Timestamp:
May 19, 2014, 6:53:56 PM (12 years ago)
Author:
fpizlo@apple.com
Message:

Take care of some ARM64 test failures
​https://bugs.webkit.org/show_bug.cgi?id=133090

Reviewed by Geoffrey Garen.

PerformanceTests/SunSpider:

  • profiler-test.yaml: Skip these on not-x86.

Source/JavaScriptCore:

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):

Tools:

  • Scripts/run-jsc-stress-tests: Make it easier to conditionally skip things.
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/PerformanceTests/SunSpider/ChangeLog

    r165676 r169092  
     12014-05-19  Filip Pizlo  <fpizlo@apple.com>
     2
     3        Take care of some ARM64 test failures
     4        https://bugs.webkit.org/show_bug.cgi?id=133090
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * profiler-test.yaml: Skip these on not-x86.
     9
    1102014-03-14  Maciej Stachowiak  <mjs@apple.com>
    211
  • trunk/PerformanceTests/SunSpider/profiler-test.yaml

    r155383 r169092  
    1 # Copyright (C) 2013 Apple Inc. All rights reserved.
     1# Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
    22#
    33# Redistribution and use in source and binary forms, with or without
    … …  
    2626
    2727- path: tests/sunspider-1.0
    28   cmd: runProfiler
     28  cmd: |
     29      if $architecture =~ /x86/
     30          runProfiler
     31      else
     32          skip
     33      end
  • trunk/Source/JavaScriptCore/ChangeLog

    r169040 r169092  
     12014-05-19  Filip Pizlo  <fpizlo@apple.com>
     2
     3        Take care of some ARM64 test failures
     4        https://bugs.webkit.org/show_bug.cgi?id=133090
     5
     6        Reviewed by Geoffrey Garen.
     7       
     8        Constant blinding on ARM64 cannot use the scratch register.
     9
     10        * assembler/MacroAssembler.h:
     11        (JSC::MacroAssembler::convertInt32ToDouble):
     12        (JSC::MacroAssembler::branchPtr):
     13        (JSC::MacroAssembler::storePtr):
     14        (JSC::MacroAssembler::store64):
     15        * assembler/MacroAssemblerARM64.h:
     16        (JSC::MacroAssemblerARM64::scratchRegisterForBlinding):
     17
    1182014-05-19  Tanay C  <tanay.c@samsung.com>
    219
  • trunk/Source/JavaScriptCore/assembler/MacroAssembler.h

    r167557 r169092  
    11411141    void convertInt32ToDouble(Imm32 imm, FPRegisterID dest)
    11421142    {
    1143         if (shouldBlind(imm)) {
     1143        if (shouldBlind(imm) && haveScratchRegisterForBlinding()) {
    11441144            RegisterID scratchRegister = scratchRegisterForBlinding();
    11451145            loadXorBlindedConstant(xorBlindConstant(imm), scratchRegister);
    … …  
    11771177    Jump branchPtr(RelationalCondition cond, RegisterID left, ImmPtr right)
    11781178    {
    1179         if (shouldBlind(right)) {
     1179        if (shouldBlind(right) && haveScratchRegisterForBlinding()) {
    11801180            RegisterID scratchRegister = scratchRegisterForBlinding();
    11811181            loadRotationBlindedConstant(rotationBlindConstant(right), scratchRegister);
    … …  
    11871187    void storePtr(ImmPtr imm, Address dest)
    11881188    {
    1189         if (shouldBlind(imm)) {
     1189        if (shouldBlind(imm) && haveScratchRegisterForBlinding()) {
    11901190            RegisterID scratchRegister = scratchRegisterForBlinding();
    11911191            loadRotationBlindedConstant(rotationBlindConstant(imm), scratchRegister);
    … …  
    11971197    void store64(Imm64 imm, Address dest)
    11981198    {
    1199         if (shouldBlind(imm)) {
     1199        if (shouldBlind(imm) && haveScratchRegisterForBlinding()) {
    12001200            RegisterID scratchRegister = scratchRegisterForBlinding();
    12011201            loadRotationBlindedConstant(rotationBlindConstant(imm), scratchRegister);
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h

    r168776 r169092  
    24092409    }
    24102410
    2411     RegisterID scratchRegisterForBlinding() { return getCachedDataTempRegisterIDAndInvalidate(); }
     2411    RegisterID scratchRegisterForBlinding()
     2412    {
     2413        // We *do not* have a scratch register for blinding.
     2414        RELEASE_ASSERT_NOT_REACHED();
     2415        return getCachedDataTempRegisterIDAndInvalidate();
     2416    }
    24122417
    24132418    static bool canJumpReplacePatchableBranchPtrWithPatch() { return false; }
  • trunk/Tools/ChangeLog

    r169088 r169092  
     12014-05-19  Filip Pizlo  <fpizlo@apple.com>
     2
     3        Take care of some ARM64 test failures
     4        https://bugs.webkit.org/show_bug.cgi?id=133090
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * Scripts/run-jsc-stress-tests: Make it easier to conditionally skip things.
     9
    1102014-05-19  David Kilzer  <ddkilzer@apple.com>
    211
  • trunk/Tools/Scripts/run-jsc-stress-tests

    r168083 r169092  
    177177end
    178178
     179# Try to determine architecture. Return nil on failure.
     180def machOArchitectureCode
     181    otoolLines = `otool -aSfh #{Shellwords.shellescape($jscPath.to_s)}`.split("\n")
     182    otoolLines.each_with_index {
     183        | value, index |
     184        if value =~ /magic/ and value =~ /cputype/
     185            return otoolLines[index + 1].split[1].to_i
     186        end
     187    }
     188    $stderr.puts "Warning: unable to determine architecture."
     189    nil
     190end
     191
     192def determineArchitecture
     193    code = machOArchitectureCode
     194    return nil unless code
     195    is64BitFlag = 0x01000000
     196    case code
     197    when 7
     198        "x86"
     199    when 7 | is64BitFlag
     200        "x86-64"
     201    when 12
     202        "arm"
     203    when 12 | is64BitFlag
     204        "arm64"
     205    else
     206        $stderr.puts "Warning: unable to determine architecture from code: #{code}"
     207        nil
     208    end
     209end
     210
     211$architecture = determineArchitecture
     212
    179213$numFailures = 0
    180214
    … …  
    479513
    480514def addRunCommand(kind, command, outputHandler, errorHandler)
     515    $didAddRunCommand = true
    481516    plan = Plan.new($benchmarkDirectory, command, baseOutputName(kind), outputHandler, errorHandler)
    482517    if $numProcessors > 1 and $runCommandOptions[:isSlow]
    … …  
    491526# returns false, in which case you're supposed to add your own run commands.
    492527def parseRunCommands
    493     didRun = false
     528    oldDidAddRunCommand = $didAddRunCommand
     529    $didAddRunCommand = false
    494530
    495531    Dir.chdir($outputDir) {
    … …  
    507543                next unless doesMatch
    508544                eval $~.post_match
    509                 didRun = true
    510545            }
    511546        }
    512547    }
    513548
    514     didRun
     549    result = $didAddRunCommand
     550    $didAddRunCommand = result or oldDidAddRunCommand
     551    result
    515552end
    516553
    … …  
    798835
    799836def skip
     837    $didAddRunCommand = true
    800838    puts "Skipping #{$collectionName}/#{$benchmark}"
    801839end
Note: See TracChangeset for help on using the changeset viewer.