summaryrefslogtreecommitdiff
path: root/patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm
diff options
context:
space:
mode:
authorLandry Breuil <landry@rhaalovely.net>2014-03-07 12:30:57 +0100
committerLandry Breuil <landry@rhaalovely.net>2014-03-07 12:30:57 +0100
commit14842b32b65c6ff3f93427d5762041acf17c77f4 (patch)
treeead979553fcc09bd0c3052188fa0e0c3f313fa03 /patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm
Initial import of webkit 2.2.4 port
Diffstat (limited to 'patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm')
-rw-r--r--patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm48
1 files changed, 48 insertions, 0 deletions
diff --git a/patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm b/patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm
new file mode 100644
index 0000000..e5188b0
--- /dev/null
+++ b/patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm
@@ -0,0 +1,48 @@
+$OpenBSD: patch-Source_JavaScriptCore_llint_LowLevelInterpreter_asm,v 1.2 2013/10/06 14:03:42 landry Exp $
+https://bugs.webkit.org/show_bug.cgi?id=103128
+https://bug-103128-attachments.webkit.org/attachment.cgi?id=202076
+Last chunk: https://bug-103128-attachments.webkit.org/attachment.cgi?id=202651
+--- Source/JavaScriptCore/llint/LowLevelInterpreter.asm.orig Fri Sep 20 09:24:34 2013
++++ Source/JavaScriptCore/llint/LowLevelInterpreter.asm Sun Oct 6 14:48:27 2013
+@@ -109,6 +109,12 @@ else
+ const PayloadOffset = 0
+ end
+
++if JSVALUE64
++ const CellOffset = 0
++else
++ const CellOffset = PayloadOffset
++end
++
+ # Constant for reasoning about butterflies.
+ const IsArray = 1
+ const IndexingShapeMask = 30
+@@ -276,13 +282,13 @@ macro assertNotConstant(index)
+ end
+
+ macro functionForCallCodeBlockGetter(targetRegister)
+- loadp Callee[cfr], targetRegister
++ loadp Callee + CellOffset[cfr], targetRegister
+ loadp JSFunction::m_executable[targetRegister], targetRegister
+ loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister
+ end
+
+ macro functionForConstructCodeBlockGetter(targetRegister)
+- loadp Callee[cfr], targetRegister
++ loadp Callee + CellOffset[cfr], targetRegister
+ loadp JSFunction::m_executable[targetRegister], targetRegister
+ loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister
+ end
+@@ -657,7 +663,11 @@ _llint_op_jngreatereq:
+ _llint_op_loop_hint:
+ traceExecution()
+ loadp JITStackFrame::vm[sp], t1
+- loadb VM::watchdog+Watchdog::m_timerDidFire[t1], t0
++ if FOUR_BYTE_BOOL
++ loadi VM::watchdog+Watchdog::m_timerDidFire[t1], t0
++ else
++ loadb VM::watchdog+Watchdog::m_timerDidFire[t1], t0
++ end
+ btbnz t0, .handleWatchdogTimer
+ .afterWatchdogTimerCheck:
+ checkSwitchToJITForLoop()