merge the formfield patch from ooo-build
[ooovba.git] / bridges / source / cpp_uno / gcc3_linux_arm / armhelper.s
blob8fd1a38e4f51255714cfd5fa51cb8d2b52409d4b
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>
5 .file "armhelper.s"
6 .text
7 .align 4
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