summaryrefslogtreecommitdiff
path: root/sdk/recipes/patches/spidermonkey/arm-unknown-riscos-1.8.5/MethodJIT.p
blob: 2d7ddb0a5c5162394f8cfa824f9d658c10930710 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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"
 );