Enable LLInt on ARMv7/Linux
authordinfuehr@igalia.com <dinfuehr@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Nov 2018 16:07:40 +0000 (16:07 +0000)
committerdinfuehr@igalia.com <dinfuehr@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Nov 2018 16:07:40 +0000 (16:07 +0000)
commitb3394e0d96054d32d26cb46c8b0467493c14a1c6
tree4c0ace549319f14f2b7699d35fbd5b114634d1a9
parentbcb8c5652d75e0f8d848ea52b64f2191cd862e5a
Enable LLInt on ARMv7/Linux
https://bugs.webkit.org/show_bug.cgi?id=191190

Reviewed by Yusuke Suzuki.

After enabling the new bytecode format in r237547, C_LOOP was
forced on all 32-bit platforms. Now enable LLInt again on
.:

ARMv7-Thumb2/Linux by default.

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

ARMv7-Thumb2/Linux.

This adds a callee-saved register in ARMv7/Linux for the metadataTable and
stores/restores it on LLInt function calls. It also introduces the globaladdr-
instruction for the ARM-offlineasm to access the opcode-table.

* jit/GPRInfo.h:
* jit/RegisterSet.cpp:
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* offlineasm/arm.rb:
* offlineasm/asm.rb:
* offlineasm/instructions.rb:

Source/WTF:

ARMv7-Thumb2/Linux by default.

* wtf/Platform.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237803 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed:
ChangeLog
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/jit/GPRInfo.h
Source/JavaScriptCore/jit/RegisterSet.cpp
Source/JavaScriptCore/llint/LowLevelInterpreter.asm
Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
Source/JavaScriptCore/offlineasm/arm.rb
Source/JavaScriptCore/offlineasm/asm.rb
Source/JavaScriptCore/offlineasm/instructions.rb
Source/WTF/ChangeLog
Source/WTF/wtf/Platform.h
Source/cmake/WebKitFeatures.cmake