diff options
Diffstat (limited to 'sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p')
-rw-r--r-- | sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p new file mode 100644 index 0000000..2d7ddb0 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p @@ -0,0 +1,67 @@ +--- js/src/methodjit/MethodJIT.cpp 2012-12-10 19:03:08.000000000 +0000 ++++ js/src/methodjit/MethodJIT.cpp 2012-12-10 19:04:11.000000000 +0000 +@@ -433,7 +433,7 @@ + "ldr r1, [r11, #24]" "\n" /* fp->rval data */ + "ldr r2, [r11, #28]" "\n" /* fp->rval type */ + "ldr r11, [sp, #28]" "\n" /* load f.fp */ +- "bx lr" "\n" ++ "mov pc, lr" "\n" + ); + + asm volatile ( +@@ -487,12 +487,12 @@ + " mov r11, r1" "\n" + + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" ++" bl " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" ++" bl " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" + + /* Call the compiled JavaScript function. */ +-" bx r4" "\n" ++" mov pc, r4" "\n" + ); + + asm volatile ( +@@ -505,7 +505,7 @@ + + /* Tidy up. */ + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" ++" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" + + /* Skip past the parameters we pushed (such as cx and the like). */ + " add sp, sp, #(4*7 + 4*4)" "\n" +@@ -524,17 +524,17 @@ + " mov r0, sp" "\n" + + /* Call the utility function that sets up the internal throw routine. */ +-" blx " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" ++" bl " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" + + /* If js_InternalThrow found a scripted handler, jump to it. Otherwise, tidy + * up and return. */ + " cmp r0, #0" "\n" + " it ne" "\n" +-" bxne r0" "\n" ++" movne pc, r0" "\n" + + /* Tidy up, then return '0' to represent an unhandled exception. */ + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" ++" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" + " add sp, sp, #(4*7 + 4*4)" "\n" + " mov r0, #0" "\n" + " pop {r4-r11,pc}" "\n" +@@ -551,7 +551,8 @@ + * The arguments are identical to those for js_* except that the target function should be in + * 'ip'. */ + " push {ip,lr}" "\n" +-" blx ip" "\n" ++" mov lr, pc" "\n" ++" mov pc, ip" "\n" + " pop {ip,pc}" "\n" + ); + |