Modified: trunk/Source/_javascript_Core/ChangeLog (163178 => 163179)
--- trunk/Source/_javascript_Core/ChangeLog 2014-01-31 18:49:27 UTC (rev 163178)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-01-31 18:59:59 UTC (rev 163179)
@@ -1,3 +1,15 @@
+2014-01-31 Gabor Rapcsanyi <rga...@webkit.org>
+
+ Fix the ARM Thumb2 build after jsCStack branch merge
+ https://bugs.webkit.org/show_bug.cgi?id=127903
+
+ Reviewed by Michael Saboff.
+
+ SP register cannot be used as a destination register of SUB or ADD on Thumb mode.
+
+ * llint/LowLevelInterpreter.asm:
+ * llint/LowLevelInterpreter32_64.asm:
+
2014-01-31 Julien Brianceau <jbria...@cisco.com>
[arm] Add missing pushPair/popPair implementations in MacroAssemblerARM.h
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm (163178 => 163179)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2014-01-31 18:49:27 UTC (rev 163178)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2014-01-31 18:59:59 UTC (rev 163179)
@@ -339,7 +339,13 @@
end
macro callToJavaScriptEpilogue()
- addp CallFrameHeaderSlots * 8, cfr, sp
+ if ARMv7
+ addp CallFrameHeaderSlots * 8, cfr, t4
+ move t4, sp
+ else
+ addp CallFrameHeaderSlots * 8, cfr, sp
+ end
+
loadp CallerFrame[cfr], cfr
if X86
@@ -368,7 +374,12 @@
loadi CodeBlock::m_numCalleeRegisters[codeBlock], scratch
lshiftp 3, scratch
addp maxFrameExtentForSlowPathCall, scratch
- subp cfr, scratch, sp
+ if ARMv7
+ subp cfr, scratch, scratch
+ move scratch, sp
+ else
+ subp cfr, scratch, sp
+ end
end
macro restoreStackPointerAfterCall()
@@ -398,7 +409,12 @@
slowPath,
macro (callee)
btpz t1, .dontUpdateSP
- addp CallerFrameAndPCSize, t1, sp
+ if ARMv7
+ addp CallerFrameAndPCSize, t1, t1
+ move t1, sp
+ else
+ addp CallerFrameAndPCSize, t1, sp
+ end
.dontUpdateSP:
if C_LOOP
cloopCallJSFunction callee
@@ -956,7 +972,12 @@
move t1, sp
else
# The calleeFrame is not stack aligned, move down by CallerFrameAndPCSize to align
- subp t1, CallerFrameAndPCSize, sp
+ if ARMv7
+ subp t1, CallerFrameAndPCSize, t2
+ move t2, sp
+ else
+ subp t1, CallerFrameAndPCSize, sp
+ end
end
slowPathForCall(_llint_slow_path_call_varargs)
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (163178 => 163179)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm 2014-01-31 18:49:27 UTC (rev 163178)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm 2014-01-31 18:59:59 UTC (rev 163179)
@@ -238,7 +238,12 @@
# before we start copying the args from the protoCallFrame below.
bpaeq temp1, VM::m_jsStackLimit[vm], .stackHeightOK
- subp cfr, 8, sp
+ if ARMv7
+ subp cfr, 8, temp2
+ move temp2, sp
+ else
+ subp cfr, 8, sp
+ end
if C_LOOP
move entry, temp2