Diff
Modified: tags/Safari-607.1.13/ChangeLog (237958 => 237959)
--- tags/Safari-607.1.13/ChangeLog 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/ChangeLog 2018-11-08 01:29:11 UTC (rev 237959)
@@ -1,3 +1,7 @@
+2018-11-07 Alan Coon <[email protected]>
+
+ Revert r237803. rdar://problem/45895377
+
2018-11-05 Dominik Infuehr <[email protected]>
Enable LLInt on ARMv7/Linux
Modified: tags/Safari-607.1.13/Source/_javascript_Core/ChangeLog (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/ChangeLog 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/ChangeLog 2018-11-08 01:29:11 UTC (rev 237959)
@@ -1,5 +1,9 @@
2018-11-07 Alan Coon <[email protected]>
+ Revert r237803. rdar://problem/45895377
+
+2018-11-07 Alan Coon <[email protected]>
+
Revert r237823. rdar://problem/45895377
2018-11-07 Alan Coon <[email protected]>
Modified: tags/Safari-607.1.13/Source/_javascript_Core/jit/GPRInfo.h (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/jit/GPRInfo.h 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/jit/GPRInfo.h 2018-11-08 01:29:11 UTC (rev 237959)
@@ -550,7 +550,6 @@
static const GPRReg regT7 = ARMRegisters::r7;
#endif
static const GPRReg regT8 = ARMRegisters::r4;
- static const GPRReg regCS0 = ARMRegisters::r11;
// These registers match the baseline JIT.
static const GPRReg callFrameRegister = ARMRegisters::fp;
// These constants provide the names for the general purpose argument & return value registers.
Modified: tags/Safari-607.1.13/Source/_javascript_Core/jit/RegisterSet.cpp (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/jit/RegisterSet.cpp 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/jit/RegisterSet.cpp 2018-11-08 01:29:11 UTC (rev 237959)
@@ -236,7 +236,6 @@
result.set(GPRInfo::regCS6);
#endif
#elif CPU(ARM_THUMB2)
- result.set(GPRInfo::regCS0);
#elif CPU(ARM_TRADITIONAL)
#elif CPU(ARM64)
result.set(GPRInfo::regCS6);
Modified: tags/Safari-607.1.13/Source/_javascript_Core/llint/LowLevelInterpreter.asm (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2018-11-08 01:29:11 UTC (rev 237959)
@@ -230,8 +230,6 @@
const CalleeSaveSpaceAsVirtualRegisters = 4
elsif C_LOOP
const CalleeSaveSpaceAsVirtualRegisters = 1
-elsif ARMv7
- const CalleeSaveSpaceAsVirtualRegisters = 1
else
const CalleeSaveSpaceAsVirtualRegisters = 0
end
@@ -296,10 +294,6 @@
const PC = t4 # When changing this, make sure LLIntPC is up to date in LLIntPCRanges.h
if C_LOOP
const metadataTable = csr3
- elsif ARMv7
- const metadataTable = csr0
- else
- error
end
end
@@ -718,7 +712,6 @@
storep metadataTable, -PtrSize[cfr]
elsif ARM or ARMv7_TRADITIONAL
elsif ARMv7
- storep metadataTable, -4[cfr]
elsif ARM64 or ARM64E
emit "stp x27, x28, [x29, #-16]"
emit "stp x25, x26, [x29, #-32]"
@@ -743,7 +736,6 @@
loadp -PtrSize[cfr], metadataTable
elsif ARM or ARMv7_TRADITIONAL
elsif ARMv7
- loadp -4[cfr], metadataTable
elsif ARM64 or ARM64E
emit "ldp x25, x26, [x29, #-32]"
emit "ldp x27, x28, [x29, #-16]"
@@ -1194,11 +1186,12 @@
move t0, sp
end
- # FIXME: cleanup double load
- # https://bugs.webkit.org/show_bug.cgi?id=190933
- loadp CodeBlock::m_metadata[t1], metadataTable
- loadp MetadataTable::m_buffer[metadataTable], metadataTable
-
+ if JSVALUE64 or C_LOOP
+ # FIXME: cleanup double load
+ # https://bugs.webkit.org/show_bug.cgi?id=190933
+ loadp CodeBlock::m_metadata[t1], metadataTable
+ loadp MetadataTable::m_buffer[metadataTable], metadataTable
+ end
if JSVALUE64
move TagTypeNumber, tagTypeNumber
addq TagBitTypeOther, tagTypeNumber, tagMask
Modified: tags/Safari-607.1.13/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm 2018-11-08 01:29:11 UTC (rev 237959)
@@ -343,7 +343,7 @@
end
end
-op(handleUncaughtException, macro()
+_handleUncaughtException:
loadp Callee + PayloadOffset[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3
@@ -374,7 +374,6 @@
popCalleeSaves()
functionEpilogue()
ret
-end)
macro doReturnFromHostFunction(extraStackSpace)
functionEpilogue(extraStackSpace)
@@ -1939,7 +1938,7 @@
end)
-commonOp(llint_op_catch, macro() end, macro (size)
+commonOp(op_catch, macro() end, macro (size)
# This is where we end up from the JIT's throw trampoline (because the
# machine code return address will be set to _llint_op_catch), and from
# the interpreter's throw trampoline (see _llint_throw_trampoline).
@@ -1953,12 +1952,14 @@
storep 0, VM::callFrameForCatch[t3]
restoreStackPointerAfterCall()
- # restore metadataTable since we don't restore callee saves for CLoop during unwinding
- loadp CodeBlock[cfr], t1
- # FIXME: cleanup double load
- # https://bugs.webkit.org/show_bug.cgi?id=190933
- loadp CodeBlock::m_metadata[t1], metadataTable
- loadp MetadataTable::m_buffer[metadataTable], metadataTable
+ if C_LOOP
+ # restore metadataTable since we don't restore callee saves for CLoop during unwinding
+ loadp CodeBlock[cfr], t1
+ # FIXME: cleanup double load
+ # https://bugs.webkit.org/show_bug.cgi?id=190933
+ loadp CodeBlock::m_metadata[t1], metadataTable
+ loadp MetadataTable::m_buffer[metadataTable], metadataTable
+ end
loadi VM::targetInterpreterPCForThrow[t3], PC
Modified: tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/arm.rb (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/arm.rb 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/arm.rb 2018-11-08 01:29:11 UTC (rev 237959)
@@ -38,7 +38,7 @@
# x8 => t4 (callee-save)
# x9 => t5 (callee-save)
# x10 => (callee-save scratch)
-# x11 => cfr, csr0 (callee-save, metadataTable)
+# x11 => cfr (ARM and ARMv7 traditional)
# x12 => (callee-save scratch)
# lr => lr
# sp => sp
@@ -133,8 +133,6 @@
"r9"
when "cfr"
isARMv7 ? "r7" : "r11"
- when "csr0"
- "r11"
when "lr"
"lr"
when "sp"
@@ -275,31 +273,6 @@
newList
end
-def armLowerLabelReferences(list)
- newList = []
- list.each {
- | node |
- if node.is_a? Instruction
- case node.opcode
- when "leai", "leap", "leaq"
- labelRef = node.operands[0]
- if labelRef.is_a? LabelReference
- raise unless labelRef.offset == 0
- tmp = Tmp.new(node.codeOrigin, :gpr)
- newList << Instruction.new(codeOrigin, "globaladdr", [LabelReference.new(node.codeOrigin, labelRef.label), node.operands[1], tmp])
- else
- newList << node
- end
- else
- newList << node
- end
- else
- newList << node
- end
- }
- newList
-end
-
class Sequence
def getModifiedListARM
raise unless $activeBackend == "ARM"
@@ -321,7 +294,6 @@
result = riscLowerSimpleBranchOps(result)
result = riscLowerHardBranchOps(result)
result = riscLowerShiftOps(result)
- result = armLowerLabelReferences(result)
result = riscLowerMalformedAddresses(result) {
| node, address |
if address.is_a? BaseIndex
@@ -488,7 +460,7 @@
$asm.puts "str #{armOperands(operands)}"
when "loadb"
$asm.puts "ldrb #{armFlippedOperands(operands)}"
- when "loadbs", "loadbsp"
+ when "loadbs"
$asm.puts "ldrsb.w #{armFlippedOperands(operands)}"
when "storeb"
$asm.puts "strb #{armOperands(operands)}"
@@ -710,28 +682,6 @@
$asm.puts "dmb sy"
when "clrbp"
$asm.puts "bic #{operands[2].armOperand}, #{operands[0].armOperand}, #{operands[1].armOperand}"
- when "globaladdr"
- labelRef = operands[0]
- dest = operands[1]
- temp = operands[2]
-
- uid = $asm.newUID
- gotLabel = "L_offlineasm_arm_got_#{uid}"
- offsetLabel = "L_offlineasm_arm_got_offset_#{uid}"
-
- $asm.puts "ldr #{dest.armOperand}, #{gotLabel}"
- $asm.puts "ldr #{temp.armOperand}, #{gotLabel}+4"
- $asm.puts "#{offsetLabel}:"
- $asm.puts "add #{dest.armOperand}, pc, #{dest.armOperand}"
- $asm.puts "ldr #{dest.armOperand}, [#{dest.armOperand}, #{temp.armOperand}]"
-
- offset = $activeBackend == "ARMv7" ? 4 : 8
-
- $asm.deferNextLabelAction {
- $asm.puts "#{gotLabel}:"
- $asm.puts ".word _GLOBAL_OFFSET_TABLE_-(#{offsetLabel}+#{offset})"
- $asm.puts ".word #{labelRef.asmLabel}(GOT)"
- }
else
lowerDefault
end
Modified: tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/asm.rb (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/asm.rb 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/asm.rb 2018-11-08 01:29:11 UTC (rev 237959)
@@ -51,7 +51,6 @@
@numLocalLabels = 0
@numGlobalLabels = 0
@deferredActions = []
- @deferredNextLabelActions = []
@count = 0
@newlineSpacerState = :none
@@ -80,7 +79,7 @@
putsProcEndIfNeeded
end
putsLastComment
- (@deferredNextLabelActions + @deferredActions).each {
+ @deferredActions.each {
| action |
action.call()
}
@@ -91,10 +90,6 @@
def deferAction(&proc)
@deferredActions << proc
end
-
- def deferNextLabelAction(&proc)
- @deferredNextLabelActions << proc
- end
def newUID
@count += 1
@@ -214,11 +209,6 @@
def putsLabel(labelName, isGlobal)
raise unless @state == :asm
- @deferredNextLabelActions.each {
- | action |
- action.call()
- }
- @deferredNextLabelActions = []
@numGlobalLabels += 1
putsProcEndIfNeeded if $emitWinAsm and isGlobal
putsNewlineSpacerIfAppropriate(:global)
Modified: tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/instructions.rb (237958 => 237959)
--- tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/instructions.rb 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/_javascript_Core/offlineasm/instructions.rb 2018-11-08 01:29:11 UTC (rev 237959)
@@ -265,8 +265,7 @@
ARM_INSTRUCTIONS =
[
"clrbp",
- "mvlbl",
- "globaladdr"
+ "mvlbl"
]
ARM64_INSTRUCTIONS =
Modified: tags/Safari-607.1.13/Source/WTF/ChangeLog (237958 => 237959)
--- tags/Safari-607.1.13/Source/WTF/ChangeLog 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/WTF/ChangeLog 2018-11-08 01:29:11 UTC (rev 237959)
@@ -1,5 +1,9 @@
2018-11-07 Alan Coon <[email protected]>
+ Revert r237803. rdar://problem/45895377
+
+2018-11-07 Alan Coon <[email protected]>
+
Revert r237919. rdar://problem/45895377
2018-11-06 Justin Fan <[email protected]>
Modified: tags/Safari-607.1.13/Source/WTF/wtf/Platform.h (237958 => 237959)
--- tags/Safari-607.1.13/Source/WTF/wtf/Platform.h 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/WTF/wtf/Platform.h 2018-11-08 01:29:11 UTC (rev 237959)
@@ -759,16 +759,13 @@
#define ENABLE_JIT 1
#endif
-/* Disable JIT for 32-bit builds. */
+/* Force C_LOOP for 32-bit builds. */
#if USE(JSVALUE32_64)
#undef ENABLE_JIT
#define ENABLE_JIT 0
-/* Force C_LOOP on all architectures but ARMv7-Thumb2/Linux. */
-#if !(CPU(ARM_THUMB2) && OS(LINUX))
#undef ENABLE_C_LOOP
#define ENABLE_C_LOOP 1
#endif
-#endif
#if !defined(ENABLE_C_LOOP)
#if ENABLE(JIT) \
Modified: tags/Safari-607.1.13/Source/cmake/WebKitFeatures.cmake (237958 => 237959)
--- tags/Safari-607.1.13/Source/cmake/WebKitFeatures.cmake 2018-11-08 01:29:06 UTC (rev 237958)
+++ tags/Safari-607.1.13/Source/cmake/WebKitFeatures.cmake 2018-11-08 01:29:11 UTC (rev 237959)
@@ -68,12 +68,6 @@
set(USE_SYSTEM_MALLOC_DEFAULT OFF)
set(ENABLE_C_LOOP_DEFAULT OFF)
set(ENABLE_SAMPLING_PROFILER_DEFAULT ON)
- elseif (WTF_CPU_ARM AND WTF_OS_UNIX)
- set(ENABLE_JIT_DEFAULT OFF)
- set(ENABLE_FTL_DEFAULT OFF)
- set(USE_SYSTEM_MALLOC_DEFAULT OFF)
- set(ENABLE_C_LOOP_DEFAULT OFF)
- set(ENABLE_SAMPLING_PROFILER_DEFAULT OFF)
else ()
set(ENABLE_JIT_DEFAULT OFF)
set(ENABLE_FTL_DEFAULT OFF)