Comment 69 for bug 417009

Revision history for this message
Loïc Minier (lool) wrote :

ARM folks came up with this patch which seems to fix the issue:
--- armhelper.s 2007-12-12 15:35:44.000000000 +0000
+++ armhelper.s 2010-03-11 16:22:29.000000000 +0000
@@ -10,13 +10,5 @@
 privateSnippetExecutor:
         stmfd sp!, {r0-r3} @ follow other parameters on stack
  mov r0, ip @ r0 points to functionoffset/vtable
- mov ip, sp @ fix up the ip
- stmfd sp!, {fp,ip,lr,pc} @ 8 x 4 => stack remains 8 aligned
- sub fp, ip, #4 @ set frame pointer
-
- add r1, sp, #16 @ r1 points to this and params
- bl cpp_vtable_call(PLT)
-
- add sp, sp, #32 @ restore stack
- ldr fp, [sp, #-32] @ restore frame pointer
- ldr pc, [sp, #-24] @ return
+ mov r1, sp @ r1 points to this and params
+ b cpp_vtable_call(PLT)