Ignore:
Timestamp:
Jan 24, 2019, 4:04:36 AM (6 years ago)
Author:
[email protected]
Message:

[JSC] Reenable baseline JIT on mips
https://bugs.webkit.org/show_bug.cgi?id=192983

Reviewed by Mark Lam.

.:

Use baseline JIT by default on MIPS.

  • Source/cmake/WebKitFeatures.cmake:

JSTests:

Added a new test for a case that was triggering a RELEASE_ASSERT when
testing.
Disable some slow tests that were already disabled for arm and x86.

  • stress/json-parse-big-object.js: Added.
  • stress/new-largeish-contiguous-array-with-size.js:
  • stress/op_add.js:
  • stress/op_bitand.js:
  • stress/op_bitor.js:
  • stress/op_bitxor.js:
  • stress/op_lshift-ConstVar.js:
  • stress/op_lshift-VarConst.js:
  • stress/op_lshift-VarVar.js:
  • stress/op_mod-ConstVar.js:
  • stress/op_mod-VarConst.js:
  • stress/op_mod-VarVar.js:
  • stress/op_mul-ConstVar.js:
  • stress/op_mul-VarConst.js:
  • stress/op_mul-VarVar.js:
  • stress/op_rshift-ConstVar.js:
  • stress/op_rshift-VarConst.js:
  • stress/op_rshift-VarVar.js:
  • stress/op_sub-ConstVar.js:
  • stress/op_sub-VarConst.js:
  • stress/op_sub-VarVar.js:
  • stress/op_urshift-ConstVar.js:
  • stress/op_urshift-VarConst.js:
  • stress/op_urshift-VarVar.js:
  • stress/sampling-profiler-richards.js:
  • stress/spread-forward-call-varargs-stack-overflow.js:

Source/JavaScriptCore:

Use $s0 as metadata register and make sure it's properly saved and
restored.

  • jit/GPRInfo.h:
  • jit/RegisterSet.cpp:

(JSC::RegisterSet::vmCalleeSaveRegisters):
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):

  • llint/LowLevelInterpreter.asm:
  • offlineasm/mips.rb:

Source/WTF:

Use baseline JIT by default on MIPS.

  • wtf/Platform.h:
File:
1 edited

Legend:

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

    r232290 r240432  
    136136        when "cfr"
    137137            "$fp"
     138        when "csr0"
     139            "$s0"
    138140        when "lr"
    139141            "$ra"
     
    879881        when "loadb"
    880882            $asm.puts "lbu #{mipsFlippedOperands(operands)}"
    881         when "loadbs"
     883        when "loadbs", "loadbsp"
    882884            $asm.puts "lb #{mipsFlippedOperands(operands)}"
    883885        when "storeb"
     
    10361038            $asm.puts "bne #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].asmLabel}"
    10371039        when "leai", "leap"
    1038             operands[0].mipsEmitLea(operands[1])
     1040            if operands[0].is_a? LabelReference
     1041                labelRef = operands[0]
     1042                raise unless labelRef.offset == 0
     1043                $asm.puts "lw #{operands[1].mipsOperand}, %got(#{labelRef.asmLabel})($gp)"
     1044            else
     1045                operands[0].mipsEmitLea(operands[1])
     1046            end
     1047
    10391048        when "smulli"
    10401049            raise "Wrong number of arguments to smull in #{self.inspect} at #{codeOriginString}" unless operands.length == 4
Note: See TracChangeset for help on using the changeset viewer.