1 @ ARM support code for OpenOffice C+
+/UNO bridging
3 @ Written by Peter Naulls
<peter@chocky.org
>
4 @ Modified by Caolan McNamara
<caolanm@redhat.com
>
8 .global privateSnippetExecutor
9 .type privateSnippetExecutor, %function
10 privateSnippetExecutor
:
11 stmfd sp
!, {r0-
r3} @ follow other parameters on stack
12 mov
r0, ip @
r0 points to functionoffset
/vtable
13 mov ip
, sp @ fix up the ip
14 stmfd sp
!, {fp
,ip
,lr,pc
} @
8 x
4 => stack remains
8 aligned
15 sub fp
, ip
, #4 @ set frame pointer
17 add r1, sp
, #16 @ r1 points to this and params
18 bl cpp_vtable_call
(PLT
)
20 add sp
, sp
, #32 @ restore stack
21 ldr fp
, [sp
, #-32] @ restore frame pointer
22 ldr pc
, [sp
, #-24] @ return