Ignore:
Timestamp:
Jan 11, 2019, 12:41:42 PM (6 years ago)
Author:
[email protected]
Message:

Enable DFG on ARM/Linux again
https://bugs.webkit.org/show_bug.cgi?id=192496

Reviewed by Yusuke Suzuki.

JSTests:

Test wasn't really skipped before moving the line with skip
to the top.

  • stress/regress-192717.js:

Source/JavaScriptCore:

After changing the bytecode format DFG was disabled on all 32-bit
architectures. Enable DFG now again on ARM/Linux. Do not use register
r11 in compiled DFG mode since it is already used in LLInt as metadataTable
register. Also clean up code since ARM traditional isn't supported anymore.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::DFG::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):

  • jit/GPRInfo.h:

(JSC::GPRInfo::toIndex):

  • llint/LowLevelInterpreter32_64.asm:
  • offlineasm/arm.rb:

Source/WTF:

After changing the bytecode format DFG was disabled on all 32-bit
architectures. Enable DFG now again on ARM/Linux.

  • wtf/Platform.h:

Tools:

After changing the bytecode format DFG was disabled on all 32-bit
architectures. Enable DFG now again on ARM/Linux. Run again JIT-tests
on ARM by default.

  • Scripts/run-jsc-stress-tests:

LayoutTests:

After changing the bytecode format DFG was disabled on all 32-bit
architectures. Enable DFG now again on ARM/Linux. Disable tests that
run out of executable memory with LLInt disabled.

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-float64array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/offlineasm/arm.rb

    r239838 r239867  
    3535#  x3 => t3, a3, r3
    3636#  x6 =>            (callee-save scratch)
    37 #  x7 => cfr        (ARMv7 only)
     37#  x7 => cfr
    3838#  x8 => t4         (callee-save)
    3939#  x9 => t5         (callee-save)
     
    5656# d7 =>              (scratch)
    5757
    58 def isARMv7
    59     case $activeBackend
    60     when "ARMv7"
    61         true
    62     else
    63         raise "bad value for $activeBackend: #{$activeBackend}"
    64     end
    65 end
    66 
    6758class Node
    6859    def armSingle
     
    9283    elsif (~value) >= 0 && (~value) < 256
    9384        $asm.puts "mvn #{register.armOperand}, \##{~value}"
    94     elsif isARMv7
     85    else
    9586        $asm.puts "movw #{register.armOperand}, \##{value & 0xffff}"
    9687        if (value & 0xffff0000) != 0
    9788            $asm.puts "movt #{register.armOperand}, \##{(value >> 16) & 0xffff}"
    9889        end
    99     else
    100         $asm.puts "ldr #{register.armOperand}, =#{value}"
    10190    end
    10291end
     
    120109            "r9"
    121110        when "cfr"
    122             isARMv7 ?  "r7" : "r11"
     111            "r7"
    123112        when "csr0"
    124113            "r11"
     
    610599                $asm.puts "mov pc, #{operands[0].armOperand}"
    611600            end
    612             if not isARMv7 and not isARMv7Traditional
    613                 $asm.puts ".ltorg"
    614             end
    615601        when "call"
    616602            if operands[0].label?
     
    693679            $asm.puts "ldr #{dest.armOperand}, [#{dest.armOperand}, #{temp.armOperand}]"
    694680
    695             offset = $activeBackend == "ARMv7" ? 4 : 8
     681            offset = 4
    696682
    697683            $asm.deferNextLabelAction {
Note: See TracChangeset for help on using the changeset viewer.