[Libreoffice-commits] .: 2 commits - bridges/Library_gcc3_linux_arm.mk bridges/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sat Sep 22 23:43:32 PDT 2012
bridges/Library_gcc3_linux_arm.mk | 4
bridges/source/cpp_uno/gcc3_ios_arm/helper.S | 343 ----------------------
bridges/source/cpp_uno/gcc3_ios_arm/helper.s | 343 ++++++++++++++++++++++
bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S | 52 ---
bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s | 52 +++
5 files changed, 399 insertions(+), 395 deletions(-)
New commits:
commit 4c56be0e063ab65577aebf4bcd3eea657705caf8
Author: David Tardon <dtardon at redhat.com>
Date: Sun Sep 23 08:41:54 2012 +0200
gb_AsmObject expects .s extension
Change-Id: I958ad58081821ff31c02df0a1a5efb8406d7a6ee
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/helper.S b/bridges/source/cpp_uno/gcc3_ios_arm/helper.S
deleted file mode 100644
index 9c5ada3..0000000
--- a/bridges/source/cpp_uno/gcc3_ios_arm/helper.S
+++ /dev/null
@@ -1,343 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "codesnippets.S"
-
-#ifdef __arm
-@ ARM support code for LibreOffice C++/UNO bridging
-@
-@ Written by Peter Naulls <peter at chocky.org>
-@ Modified by Caolan McNamara <caolanm at redhat.com>
-@ Fixed by Michael Casadevall <mcasadevall at kubuntu.org>
-@ Modified for iOS by Tor Lillqvist <tml at iki.fi>
-
- .file "helper.S"
- .text
- .align 4
-
-_privateSnippetExecutor:
- stmfd sp!, {r0-r3} @ follow other parameters on stack
- mov r0, ip @ r0 points to functionoffset/vtable
- mov r1, sp @ r1 points to this and params
- @ (see cpp2uno.cxx:codeSnippet())
- stmfd sp!, {r4,lr} @ save return address
- @ (r4 pushed to preserve stack alignment)
- bl _cpp_vtable_call
-
- add sp, sp, #4 @ no need to restore r4 (we didn't touch it)
- ldr pc, [sp], #20 @ return, discarding function arguments
-
-#else
- .text
-
-.align 1, 0x90
-_privateSnippetExecutorGeneral:
-LFBg:
- movl %esp,%ecx
- pushl %ebp # proper stack frame needed for exception handling
-LCFIg0:
- movl %esp,%ebp
-LCFIg1:
- subl $0x8,%esp # padding + 32bit returnValue
- pushl %esp # 32bit &returnValue
- pushl %ecx # 32bit pCallStack
- pushl %edx # 32bit nVtableOffset
- pushl %eax # 32bit nFunctionIndex
- call L_cpp_vtable_call$stub
- movl 16(%esp),%eax # 32bit returnValue
- leave
- ret
-LFEg:
- .long .-_privateSnippetExecutorGeneral
-
-.align 1, 0x90
-_privateSnippetExecutorVoid:
-LFBv:
- movl %esp,%ecx
- pushl %ebp # proper stack frame needed for exception handling
-LCFIv0:
- movl %esp,%ebp
-LCFIv1:
- sub $8,%esp # padding
- pushl $0 # 32bit null pointer (returnValue not used)
- pushl %ecx # 32bit pCallStack
- pushl %edx # 32bit nVtableOffset
- pushl %eax # 32bit nFunctionIndex
- call L_cpp_vtable_call$stub
- leave
- ret
-LFEv:
- .long .-_privateSnippetExecutorVoid
-
-.align 1, 0x90
-_privateSnippetExecutorHyper:
-LFBh:
- movl %esp,%ecx
- pushl %ebp # proper stack frame needed for exception handling
-LCFIh0:
- movl %esp,%ebp
-LCFIh1:
- subl $0x8,%esp # 64bit returnValue
- pushl %esp # 32bit &returnValue
- pushl %ecx # 32bit pCallStack
- pushl %edx # 32bit nVtableOffset
- pushl %eax # 32bit nFunctionIndex
- call L_cpp_vtable_call$stub
- movl 16(%esp),%eax # 64bit returnValue, lower half
- movl 20(%esp),%edx # 64bit returnValue, upper half
- leave
- ret
-LFEh:
- .long .-_privateSnippetExecutorHyper
-
-.align 1, 0x90
-_privateSnippetExecutorFloat:
-LFBf:
- movl %esp,%ecx
- pushl %ebp # proper stack frame needed for exception handling
-LCFIf0:
- movl %esp,%ebp
-LCFIf1:
- subl $0x8,%esp # padding + 32bit returnValue
- pushl %esp # 32bit &returnValue
- pushl %ecx # 32bit pCallStack
- pushl %edx # 32bit nVtableOffset
- pushl %eax # 32bit nFunctionIndex
- call L_cpp_vtable_call$stub
- flds 16(%esp) # 32bit returnValue
- leave
- ret
-LFEf:
- .long .-_privateSnippetExecutorFloat
-
-.align 1, 0x90
-_privateSnippetExecutorDouble:
-LFBd:
- movl %esp,%ecx
- pushl %ebp # proper stack frame needed for exception handling
-LCFId0:
- movl %esp,%ebp
-LCFId1:
- subl $0x8,%esp # 64bit returnValue
- pushl %esp # 32bit &returnValue
- pushl %ecx # 32bit pCallStack
- pushl %edx # 32bit nVtableOffset
- pushl %eax # 32bit nFunctionIndex
- call L_cpp_vtable_call$stub
- fldl 16(%esp) # 64bit returnValue
- leave
- ret
-LFEd:
- .long .-_privateSnippetExecutorDouble
-
-.align 1, 0x90
-_privateSnippetExecutorClass:
-LFBc:
- movl %esp,%ecx
- pushl %ebp # proper stack frame needed for exception handling
-LCFIc0:
- movl %esp,%ebp
-LCFIc1:
- subl $0x8,%esp # padding + 32bit returnValue
- pushl %esp # 32bit &returnValue
- pushl %ecx # 32bit pCallStack
- pushl %edx # 32bit nVtableOffset
- pushl %eax # 32bit nFunctionIndex
- call L_cpp_vtable_call$stub
- movl 16(%esp),%eax # 32bit returnValue
- leave
- ret $4
-LFEc:
- .long .-_privateSnippetExecutorClass
-
- .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
-EH_frame1:
- .set L$set$frame1,LECIE1-LSCIE1
- .long L$set$frame1 # length
-LSCIE1:
- .long 0 # CIE_ID
- .byte 1 # version
- .ascii "zPR\0" # augmentation
- .byte 1 # code_alignment_factor (.uleb128 1)
- .byte 0x7c # data_alignment_factor (.sleb128 -4)
- .byte 8 # return_address_register
- .byte 0x6 # augmentation size 7:
- .byte 0x9b # ???
- .long L___gxx_personality_v0$non_lazy_ptr-.
- .byte 0x10
- # initial_instructions:
- .byte 0x0C # DW_CFA_def_cfa %esp, 4
- .byte 5
- .byte 4
- .byte 0x88 # DW_CFA_offset ret, 1
- .byte 1
- .align 2
-LECIE1:
-_privateSnippetExecutorGeneral.eh:
-LSFDEg:
- .set L$set$g1,LEFDEg-LASFDEg
- .long L$set$g1 # length
-LASFDEg:
- .long LASFDEg-EH_frame1 # CIE_pointer
- .long LFBg-. # initial_location
- .long LFEg-LFBg # address_range
- .byte 0 # augmentation size 0
- # instructions:
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIg0-LFBg
- .byte 0x0E # DW_CFA_def_cfa_offset 8
- .byte 8
- .byte 0x84 # DW_CFA_offset %ebp, 2
- .byte 2
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIg1-LCFIg0
- .byte 0x0D # DW_CFA_def_cfa_register %ebp
- .byte 4
- .align 2
-LEFDEg:
-_privateSnippetExecutorVoid.eh:
-LSFDEv:
- .set L$set$v1,LEFDEv-LASFDEv
- .long L$set$v1 # length
-LASFDEv:
- .long LASFDEv-EH_frame1 # CIE_pointer
- .long LFBv-. # initial_location
- .long LFEv-LFBv # address_range
- .byte 0 # augmentation size 0
- # instructions:
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIv0-LFBv
- .byte 0x0E # DW_CFA_def_cfa_offset 8
- .byte 8
- .byte 0x84 # DW_CFA_offset %ebp, 2
- .byte 2
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIv1-LCFIv0
- .byte 0x0D # DW_CFA_def_cfa_register %ebp
- .byte 4
- .align 2
-LEFDEv:
-_privateSnippetExecutorHyper.eh:
-LSFDEh:
- .set L$set$h1,LEFDEh-LASFDEh
- .long L$set$h1 # length
-LASFDEh:
- .long LASFDEh-EH_frame1 # CIE_pointer
- .long LFBh-. # initial_location
- .long LFEh-LFBh # address_range
- .byte 0 # augmentation size 0
- # instructions:
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIh0-LFBh
- .byte 0x0E # DW_CFA_def_cfa_offset 8
- .byte 8
- .byte 0x84 # DW_CFA_offset %ebp, 2
- .byte 2
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIh1-LCFIh0
- .byte 0x0D # DW_CFA_def_cfa_register %ebp
- .byte 4
- .align 2
-LEFDEh:
-_privateSnippetExecutorFloat.eh:
-LSFDEf:
- .set L$set$f1,LEFDEf-LASFDEf
- .long L$set$f1 # length
-LASFDEf:
- .long LASFDEf-EH_frame1 # CIE_pointer
- .long LFBf-. # initial_location
- .long LFEf-LFBf # address_range
- .byte 0 # augmentation size 0
- # instructions:
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIf0-LFBf
- .byte 0x0E # DW_CFA_def_cfa_offset 8
- .byte 8
- .byte 0x84 # DW_CFA_offset %ebp, 2
- .byte 2
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIf1-LCFIf0
- .byte 0x0D # DW_CFA_def_cfa_register %ebp
- .byte 4
- .align 2
-LEFDEf:
-_privateSnippetExecutorDouble.eh:
-LSFDEd:
- .set L$set$d1,LEFDEd-LASFDEd
- .long L$set$d1 # length
-LASFDEd:
- .long LASFDEd-EH_frame1 # CIE_pointer
- .long LFBd-. # initial_location
- .long LFEd-LFBd # address_range
- .byte 0 # augmentation size 0
- # instructions:
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFId0-LFBd
- .byte 0x0E # DW_CFA_def_cfa_offset 8
- .byte 8
- .byte 0x84 # DW_CFA_offset %ebp, 2
- .byte 2
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFId1-LCFId0
- .byte 0x0D # DW_CFA_def_cfa_register %ebp
- .byte 4
- .align 2
-LEFDEd:
-_privateSnippetExecutorClass.eh:
-LSFDEc:
- .set L$set$c1,LEFDEc-LASFDEc
- .long L$set$c1 # length
-LASFDEc:
- .long LASFDEc-EH_frame1 # CIE_pointer
- .long LFBc-. # initial_location
- .long LFEc-LFBc # address_range
- .byte 0 # augmentation size 0
- # instructions:
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIc0-LFBc
- .byte 0x0E # DW_CFA_def_cfa_offset 8
- .byte 8
- .byte 0x84 # DW_CFA_offset %ebp, 2
- .byte 2
- .byte 0x04 # DW_CFA_advance_loc4
- .long LCFIc1-LCFIc0
- .byte 0x0D # DW_CFA_def_cfa_register %ebp
- .byte 4
- .align 2
-LEFDEc:
- .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
-L_cpp_vtable_call$stub:
- .indirect_symbol _cpp_vtable_call
- hlt ; hlt ; hlt ; hlt ; hlt
- .section __IMPORT,__pointers,non_lazy_symbol_pointers
-L___gxx_personality_v0$non_lazy_ptr:
- .indirect_symbol ___gxx_personality_v0
- .long 0
- .constructor
- .destructor
- .align 1
-#endif
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s
new file mode 100644
index 0000000..9c5ada3
--- /dev/null
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s
@@ -0,0 +1,343 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "codesnippets.S"
+
+#ifdef __arm
+@ ARM support code for LibreOffice C++/UNO bridging
+@
+@ Written by Peter Naulls <peter at chocky.org>
+@ Modified by Caolan McNamara <caolanm at redhat.com>
+@ Fixed by Michael Casadevall <mcasadevall at kubuntu.org>
+@ Modified for iOS by Tor Lillqvist <tml at iki.fi>
+
+ .file "helper.S"
+ .text
+ .align 4
+
+_privateSnippetExecutor:
+ stmfd sp!, {r0-r3} @ follow other parameters on stack
+ mov r0, ip @ r0 points to functionoffset/vtable
+ mov r1, sp @ r1 points to this and params
+ @ (see cpp2uno.cxx:codeSnippet())
+ stmfd sp!, {r4,lr} @ save return address
+ @ (r4 pushed to preserve stack alignment)
+ bl _cpp_vtable_call
+
+ add sp, sp, #4 @ no need to restore r4 (we didn't touch it)
+ ldr pc, [sp], #20 @ return, discarding function arguments
+
+#else
+ .text
+
+.align 1, 0x90
+_privateSnippetExecutorGeneral:
+LFBg:
+ movl %esp,%ecx
+ pushl %ebp # proper stack frame needed for exception handling
+LCFIg0:
+ movl %esp,%ebp
+LCFIg1:
+ subl $0x8,%esp # padding + 32bit returnValue
+ pushl %esp # 32bit &returnValue
+ pushl %ecx # 32bit pCallStack
+ pushl %edx # 32bit nVtableOffset
+ pushl %eax # 32bit nFunctionIndex
+ call L_cpp_vtable_call$stub
+ movl 16(%esp),%eax # 32bit returnValue
+ leave
+ ret
+LFEg:
+ .long .-_privateSnippetExecutorGeneral
+
+.align 1, 0x90
+_privateSnippetExecutorVoid:
+LFBv:
+ movl %esp,%ecx
+ pushl %ebp # proper stack frame needed for exception handling
+LCFIv0:
+ movl %esp,%ebp
+LCFIv1:
+ sub $8,%esp # padding
+ pushl $0 # 32bit null pointer (returnValue not used)
+ pushl %ecx # 32bit pCallStack
+ pushl %edx # 32bit nVtableOffset
+ pushl %eax # 32bit nFunctionIndex
+ call L_cpp_vtable_call$stub
+ leave
+ ret
+LFEv:
+ .long .-_privateSnippetExecutorVoid
+
+.align 1, 0x90
+_privateSnippetExecutorHyper:
+LFBh:
+ movl %esp,%ecx
+ pushl %ebp # proper stack frame needed for exception handling
+LCFIh0:
+ movl %esp,%ebp
+LCFIh1:
+ subl $0x8,%esp # 64bit returnValue
+ pushl %esp # 32bit &returnValue
+ pushl %ecx # 32bit pCallStack
+ pushl %edx # 32bit nVtableOffset
+ pushl %eax # 32bit nFunctionIndex
+ call L_cpp_vtable_call$stub
+ movl 16(%esp),%eax # 64bit returnValue, lower half
+ movl 20(%esp),%edx # 64bit returnValue, upper half
+ leave
+ ret
+LFEh:
+ .long .-_privateSnippetExecutorHyper
+
+.align 1, 0x90
+_privateSnippetExecutorFloat:
+LFBf:
+ movl %esp,%ecx
+ pushl %ebp # proper stack frame needed for exception handling
+LCFIf0:
+ movl %esp,%ebp
+LCFIf1:
+ subl $0x8,%esp # padding + 32bit returnValue
+ pushl %esp # 32bit &returnValue
+ pushl %ecx # 32bit pCallStack
+ pushl %edx # 32bit nVtableOffset
+ pushl %eax # 32bit nFunctionIndex
+ call L_cpp_vtable_call$stub
+ flds 16(%esp) # 32bit returnValue
+ leave
+ ret
+LFEf:
+ .long .-_privateSnippetExecutorFloat
+
+.align 1, 0x90
+_privateSnippetExecutorDouble:
+LFBd:
+ movl %esp,%ecx
+ pushl %ebp # proper stack frame needed for exception handling
+LCFId0:
+ movl %esp,%ebp
+LCFId1:
+ subl $0x8,%esp # 64bit returnValue
+ pushl %esp # 32bit &returnValue
+ pushl %ecx # 32bit pCallStack
+ pushl %edx # 32bit nVtableOffset
+ pushl %eax # 32bit nFunctionIndex
+ call L_cpp_vtable_call$stub
+ fldl 16(%esp) # 64bit returnValue
+ leave
+ ret
+LFEd:
+ .long .-_privateSnippetExecutorDouble
+
+.align 1, 0x90
+_privateSnippetExecutorClass:
+LFBc:
+ movl %esp,%ecx
+ pushl %ebp # proper stack frame needed for exception handling
+LCFIc0:
+ movl %esp,%ebp
+LCFIc1:
+ subl $0x8,%esp # padding + 32bit returnValue
+ pushl %esp # 32bit &returnValue
+ pushl %ecx # 32bit pCallStack
+ pushl %edx # 32bit nVtableOffset
+ pushl %eax # 32bit nFunctionIndex
+ call L_cpp_vtable_call$stub
+ movl 16(%esp),%eax # 32bit returnValue
+ leave
+ ret $4
+LFEc:
+ .long .-_privateSnippetExecutorClass
+
+ .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
+EH_frame1:
+ .set L$set$frame1,LECIE1-LSCIE1
+ .long L$set$frame1 # length
+LSCIE1:
+ .long 0 # CIE_ID
+ .byte 1 # version
+ .ascii "zPR\0" # augmentation
+ .byte 1 # code_alignment_factor (.uleb128 1)
+ .byte 0x7c # data_alignment_factor (.sleb128 -4)
+ .byte 8 # return_address_register
+ .byte 0x6 # augmentation size 7:
+ .byte 0x9b # ???
+ .long L___gxx_personality_v0$non_lazy_ptr-.
+ .byte 0x10
+ # initial_instructions:
+ .byte 0x0C # DW_CFA_def_cfa %esp, 4
+ .byte 5
+ .byte 4
+ .byte 0x88 # DW_CFA_offset ret, 1
+ .byte 1
+ .align 2
+LECIE1:
+_privateSnippetExecutorGeneral.eh:
+LSFDEg:
+ .set L$set$g1,LEFDEg-LASFDEg
+ .long L$set$g1 # length
+LASFDEg:
+ .long LASFDEg-EH_frame1 # CIE_pointer
+ .long LFBg-. # initial_location
+ .long LFEg-LFBg # address_range
+ .byte 0 # augmentation size 0
+ # instructions:
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIg0-LFBg
+ .byte 0x0E # DW_CFA_def_cfa_offset 8
+ .byte 8
+ .byte 0x84 # DW_CFA_offset %ebp, 2
+ .byte 2
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIg1-LCFIg0
+ .byte 0x0D # DW_CFA_def_cfa_register %ebp
+ .byte 4
+ .align 2
+LEFDEg:
+_privateSnippetExecutorVoid.eh:
+LSFDEv:
+ .set L$set$v1,LEFDEv-LASFDEv
+ .long L$set$v1 # length
+LASFDEv:
+ .long LASFDEv-EH_frame1 # CIE_pointer
+ .long LFBv-. # initial_location
+ .long LFEv-LFBv # address_range
+ .byte 0 # augmentation size 0
+ # instructions:
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIv0-LFBv
+ .byte 0x0E # DW_CFA_def_cfa_offset 8
+ .byte 8
+ .byte 0x84 # DW_CFA_offset %ebp, 2
+ .byte 2
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIv1-LCFIv0
+ .byte 0x0D # DW_CFA_def_cfa_register %ebp
+ .byte 4
+ .align 2
+LEFDEv:
+_privateSnippetExecutorHyper.eh:
+LSFDEh:
+ .set L$set$h1,LEFDEh-LASFDEh
+ .long L$set$h1 # length
+LASFDEh:
+ .long LASFDEh-EH_frame1 # CIE_pointer
+ .long LFBh-. # initial_location
+ .long LFEh-LFBh # address_range
+ .byte 0 # augmentation size 0
+ # instructions:
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIh0-LFBh
+ .byte 0x0E # DW_CFA_def_cfa_offset 8
+ .byte 8
+ .byte 0x84 # DW_CFA_offset %ebp, 2
+ .byte 2
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIh1-LCFIh0
+ .byte 0x0D # DW_CFA_def_cfa_register %ebp
+ .byte 4
+ .align 2
+LEFDEh:
+_privateSnippetExecutorFloat.eh:
+LSFDEf:
+ .set L$set$f1,LEFDEf-LASFDEf
+ .long L$set$f1 # length
+LASFDEf:
+ .long LASFDEf-EH_frame1 # CIE_pointer
+ .long LFBf-. # initial_location
+ .long LFEf-LFBf # address_range
+ .byte 0 # augmentation size 0
+ # instructions:
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIf0-LFBf
+ .byte 0x0E # DW_CFA_def_cfa_offset 8
+ .byte 8
+ .byte 0x84 # DW_CFA_offset %ebp, 2
+ .byte 2
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIf1-LCFIf0
+ .byte 0x0D # DW_CFA_def_cfa_register %ebp
+ .byte 4
+ .align 2
+LEFDEf:
+_privateSnippetExecutorDouble.eh:
+LSFDEd:
+ .set L$set$d1,LEFDEd-LASFDEd
+ .long L$set$d1 # length
+LASFDEd:
+ .long LASFDEd-EH_frame1 # CIE_pointer
+ .long LFBd-. # initial_location
+ .long LFEd-LFBd # address_range
+ .byte 0 # augmentation size 0
+ # instructions:
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFId0-LFBd
+ .byte 0x0E # DW_CFA_def_cfa_offset 8
+ .byte 8
+ .byte 0x84 # DW_CFA_offset %ebp, 2
+ .byte 2
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFId1-LCFId0
+ .byte 0x0D # DW_CFA_def_cfa_register %ebp
+ .byte 4
+ .align 2
+LEFDEd:
+_privateSnippetExecutorClass.eh:
+LSFDEc:
+ .set L$set$c1,LEFDEc-LASFDEc
+ .long L$set$c1 # length
+LASFDEc:
+ .long LASFDEc-EH_frame1 # CIE_pointer
+ .long LFBc-. # initial_location
+ .long LFEc-LFBc # address_range
+ .byte 0 # augmentation size 0
+ # instructions:
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIc0-LFBc
+ .byte 0x0E # DW_CFA_def_cfa_offset 8
+ .byte 8
+ .byte 0x84 # DW_CFA_offset %ebp, 2
+ .byte 2
+ .byte 0x04 # DW_CFA_advance_loc4
+ .long LCFIc1-LCFIc0
+ .byte 0x0D # DW_CFA_def_cfa_register %ebp
+ .byte 4
+ .align 2
+LEFDEc:
+ .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
+L_cpp_vtable_call$stub:
+ .indirect_symbol _cpp_vtable_call
+ hlt ; hlt ; hlt ; hlt ; hlt
+ .section __IMPORT,__pointers,non_lazy_symbol_pointers
+L___gxx_personality_v0$non_lazy_ptr:
+ .indirect_symbol ___gxx_personality_v0
+ .long 0
+ .constructor
+ .destructor
+ .align 1
+#endif
commit 492f9139c1033b3f069880bff8e7f2857cbca111
Author: David Tardon <dtardon at redhat.com>
Date: Sun Sep 23 08:40:15 2012 +0200
add forgotten asm file to build
Change-Id: I5c86e369649e71d785af06437b2af633d6805b8d
diff --git a/bridges/Library_gcc3_linux_arm.mk b/bridges/Library_gcc3_linux_arm.mk
index 81c29d7..95cc915 100644
--- a/bridges/Library_gcc3_linux_arm.mk
+++ b/bridges/Library_gcc3_linux_arm.mk
@@ -45,6 +45,10 @@ $(eval $(call gb_Library_use_libraries,gcc3_uno,\
$(gb_STDLIBS) \
))
+$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
+ bridges/source/cpp_uno/gcc3_linux_arm/armhelper \
+))
+
$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
bridges/source/cpp_uno/shared/bridge \
bridges/source/cpp_uno/shared/component \
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
deleted file mode 100644
index 27148dc..0000000
--- a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
+++ /dev/null
@@ -1,52 +0,0 @@
-@ ARM support code for OpenOffice C++/UNO bridging
-@
-@ Written by Peter Naulls <peter at chocky.org>
-@ Modified by Caolan McNamara <caolanm at redhat.com>
-@ Fixed by Michael Casadevall <mcasadevall at kubuntu.org>
-
-#ifdef __ARM_EABI__
-# define UNWIND
-#else
-# define UNWIND @
-#endif
-
-@ If the VFP ABI variant (armhf in Debian/Ubuntu) is used, an additional extra 64 bytes
-@ are taken up on the stack (the equivalent of the 8 double precision VFP registers)
-
-#ifdef __ARM_PCS_VFP
-# define PAD 80
-# define DISCARDED 84
-#else
-# define PAD 16
-# define DISCARDED 20
-#endif
-
- .file "armhelper.s"
- .text
- .align 4
- .global privateSnippetExecutor
- .type privateSnippetExecutor, %function
-privateSnippetExecutor:
- UNWIND .fnstart @ start of unwinder entry
-
- stmfd sp!, {r0-r3} @ follow other parameters on stack
- mov r0, ip @ r0 points to functionoffset/vtable
- mov r1, sp @ r1 points to this and params
-#ifdef __ARM_PCS_VFP
- vpush {d0-d7} @ floating point parameter on stack
-#endif
- UNWIND .pad #PAD @ throw this data away on exception
- @ (see cppuno.cxx:codeSnippet())
- stmfd sp!, {r4,lr} @ save return address
- @ (r4 pushed to preserve stack alignment)
- UNWIND .save {r4,lr} @ restore these regs on exception
-
- bl cpp_vtable_call(PLT)
-
- add sp, sp, #4 @ no need to restore r4 (we didn't touch it)
- ldr pc, [sp], #DISCARDED @ return, discarding function arguments
-
- UNWIND .fnend @ end of unwinder entry
-
- .size privateSnippetExecutor, . - privateSnippetExecutor
- .section .note.GNU-stack,"",%progbits
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s
new file mode 100644
index 0000000..27148dc
--- /dev/null
+++ b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s
@@ -0,0 +1,52 @@
+@ ARM support code for OpenOffice C++/UNO bridging
+@
+@ Written by Peter Naulls <peter at chocky.org>
+@ Modified by Caolan McNamara <caolanm at redhat.com>
+@ Fixed by Michael Casadevall <mcasadevall at kubuntu.org>
+
+#ifdef __ARM_EABI__
+# define UNWIND
+#else
+# define UNWIND @
+#endif
+
+@ If the VFP ABI variant (armhf in Debian/Ubuntu) is used, an additional extra 64 bytes
+@ are taken up on the stack (the equivalent of the 8 double precision VFP registers)
+
+#ifdef __ARM_PCS_VFP
+# define PAD 80
+# define DISCARDED 84
+#else
+# define PAD 16
+# define DISCARDED 20
+#endif
+
+ .file "armhelper.s"
+ .text
+ .align 4
+ .global privateSnippetExecutor
+ .type privateSnippetExecutor, %function
+privateSnippetExecutor:
+ UNWIND .fnstart @ start of unwinder entry
+
+ stmfd sp!, {r0-r3} @ follow other parameters on stack
+ mov r0, ip @ r0 points to functionoffset/vtable
+ mov r1, sp @ r1 points to this and params
+#ifdef __ARM_PCS_VFP
+ vpush {d0-d7} @ floating point parameter on stack
+#endif
+ UNWIND .pad #PAD @ throw this data away on exception
+ @ (see cppuno.cxx:codeSnippet())
+ stmfd sp!, {r4,lr} @ save return address
+ @ (r4 pushed to preserve stack alignment)
+ UNWIND .save {r4,lr} @ restore these regs on exception
+
+ bl cpp_vtable_call(PLT)
+
+ add sp, sp, #4 @ no need to restore r4 (we didn't touch it)
+ ldr pc, [sp], #DISCARDED @ return, discarding function arguments
+
+ UNWIND .fnend @ end of unwinder entry
+
+ .size privateSnippetExecutor, . - privateSnippetExecutor
+ .section .note.GNU-stack,"",%progbits
More information about the Libreoffice-commits
mailing list