bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl | 91 ++-- bridges/source/cpp_uno/gcc3_ios_arm/helper.s | 324 +++++++-------- 2 files changed, 218 insertions(+), 197 deletions(-)
New commits: commit e669d631a746d9f2cb9dc6da707a7ed73bd9401a Author: Tor Lillqvist <t...@collabora.com> Date: Tue Oct 1 00:52:52 2013 +0300 Untabify and add mode lines Change-Id: I185befe8aebdc13df601b1151b45c62e7291b5c0 diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl index 43dd6fc..c89f2ed 100755 --- a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl +++ b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl -w # -*- tab-width: 4; indent-tabs-mode: nil; cperl-indent-level: 4 -*- # # This file is part of the LibreOffice project. # @@ -51,11 +51,11 @@ printf ("\n"); foreach my $funIndex (0 .. $nFunIndexes-1) { - foreach my $vtableOffset (0 .. $nVtableOffsets-1) - { - gen_arm ($funIndex, $vtableOffset); - gen_arm ($funIndex|0x80000000, $vtableOffset); - } + foreach my $vtableOffset (0 .. $nVtableOffsets-1) + { + gen_arm ($funIndex, $vtableOffset); + gen_arm ($funIndex|0x80000000, $vtableOffset); + } } printf ("#else\n"); @@ -65,13 +65,13 @@ foreach my $funIndex (0 .. $nFunIndexes-1) { foreach my $vtableOffset (0 .. $nVtableOffsets-1) { - foreach my $executor ('General', 'Void', 'Hyper', 'Float', 'Double', 'Class') - { - gen_x86 ($funIndex, $vtableOffset, $executor); - gen_x86 ($funIndex|0x80000000, $vtableOffset, $executor); - } + foreach my $executor ('General', 'Void', 'Hyper', 'Float', 'Double', 'Class') + { + gen_x86 ($funIndex, $vtableOffset, $executor); + gen_x86 ($funIndex|0x80000000, $vtableOffset, $executor); + } } -} + } printf ("#endif\n"); @@ -90,15 +90,17 @@ foreach my $funIndex (0 .. $nFunIndexes-1) { foreach my $vtableOffset (0 .. $nVtableOffsets-1) { - printf ("#if defined(__arm) || defined(__arm64)\n"); + printf ("#if defined(__arm) || defined(__arm64)\n"); printf (" .long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex, $vtableOffset); printf (" .long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset); - printf ("#else\n"); - foreach my $executor ('General', 'Void', 'Hyper', 'Float', 'Double', 'Class') - { + printf ("#else\n"); + foreach my $executor ('General', 'Void', 'Hyper', 'Float', 'Double', 'Class') + { printf (" .long codeSnippet_%08x_%d_%s - _codeSnippets\n", $funIndex, $vtableOffset, $executor); printf (" .long codeSnippet_%08x_%d_%s - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset, $executor); - } - printf ("#endif\n"); + } + printf ("#endif\n"); } } + +# vim:set shiftwidth=4 softtabstop=4 expandtab: commit 6a3493adb70c53a345456e220213dc645a05a155 Author: Tor Lillqvist <t...@collabora.com> Date: Tue Oct 1 00:44:02 2013 +0300 Add dummy code for the ARM64 case Change-Id: I88a871374ecc8d9d59f9b33b5198c0e6c9a2458d diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl index 822afff..43dd6fc 100755 --- a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl +++ b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl @@ -14,7 +14,12 @@ sub gen_arm ($$) { my ($funIndex, $vtableOffset) = @_; printf ("codeSnippet_%08x_%d:\n", $funIndex, $vtableOffset); + printf ("#ifdef __arm\n"); + # Note: pc is the address of instruction being executed plus 8 printf (" mov ip, pc\n"); + printf ("#else\n"); + printf (" adr x15, .+8\n"); + printf ("#endif\n"); printf (" b _privateSnippetExecutor\n"); printf (" .long %#08x\n", $funIndex); printf (" .long %d\n", $vtableOffset); @@ -31,11 +36,11 @@ sub gen_x86 ($$$) printf (".text\n"); -printf ("#ifdef __arm\n"); +printf ("#if defined(__arm) || defined(__arm64)\n"); printf ("\n"); -printf ("// Each codeSnippetX function stores pc into ip and branches to _privateSnippetExecutor\n"); -printf ("// The branch instruction is followed by two longs (that ip thus points to):\n"); +printf ("// Each codeSnippetX function stores into ip/x15 an address and branches to _privateSnippetExecutor\n"); +printf ("// The branch instruction is followed by two longs that ip/x15 points to:\n"); printf ("// - the function index, as such and with the 0x80000000 bit set\n"); printf ("// (to indicate a hidden parameter for returning large values)\n"); printf ("// - the vtable offset\n"); @@ -85,7 +90,7 @@ foreach my $funIndex (0 .. $nFunIndexes-1) { foreach my $vtableOffset (0 .. $nVtableOffsets-1) { - printf ("#ifdef __arm\n"); + printf ("#if defined(__arm) || defined(__arm64)\n"); printf (" .long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex, $vtableOffset); printf (" .long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset); printf ("#else\n"); diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s index 2f94734..27c7c04 100644 --- a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s +++ b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s @@ -19,7 +19,7 @@ #include "codesnippets.S" -#ifdef __arm +#if defined(__arm) // ARM support code for LibreOffice C++/UNO bridging // // Written by Peter Naulls <pe...@chocky.org> @@ -42,6 +42,17 @@ _privateSnippetExecutor: add sp, sp, #4 // no need to restore r4 (we didn't touch it) ldr pc, [sp], #20 // return, discarding function arguments +#elif defined(__arm64) + + .text + .align 4 + +_privateSnippetExecutor: + + // Not done yet, intentionally crash for now... + mov x15, #0 + ldr x15, [x15] + #else .text commit 883dfa4827ad29dfdc363189ac7052dbb1b866dd Author: Tor Lillqvist <t...@collabora.com> Date: Tue Oct 1 00:35:45 2013 +0300 Don't use tabs here either Change-Id: I633d73ac04ad97bb71e62a93e7d804cd253b2a31 diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl index 67701cb..822afff 100755 --- a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl +++ b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl @@ -14,19 +14,19 @@ sub gen_arm ($$) { my ($funIndex, $vtableOffset) = @_; printf ("codeSnippet_%08x_%d:\n", $funIndex, $vtableOffset); - printf ("\tmov ip, pc\n"); - printf ("\tb _privateSnippetExecutor\n"); - printf ("\t.long %#08x\n", $funIndex); - printf ("\t.long %d\n", $vtableOffset); + printf (" mov ip, pc\n"); + printf (" b _privateSnippetExecutor\n"); + printf (" .long %#08x\n", $funIndex); + printf (" .long %d\n", $vtableOffset); } sub gen_x86 ($$$) { my ($funIndex, $vtableOffset, $executor) = @_; printf ("codeSnippet_%08x_%d_%s:\n", $funIndex, $vtableOffset, $executor); - printf ("\tmovl \$%#08x, %%eax\n", $funIndex); - printf ("\tmovl \$%d, %%edx\n", $vtableOffset); - printf ("\tjmp _privateSnippetExecutor%s\n", $executor); + printf (" movl \$%#08x, %%eax\n", $funIndex); + printf (" movl \$%d, %%edx\n", $vtableOffset); + printf (" jmp _privateSnippetExecutor%s\n", $executor); } printf (".text\n"); @@ -41,7 +41,7 @@ printf ("// (to indicate a hidden parameter for returning large values)\n"); printf ("// - the vtable offset\n"); printf ("\n"); -printf ("\t.align 4\n"); +printf (" .align 4\n"); printf ("\n"); foreach my $funIndex (0 .. $nFunIndexes-1) @@ -54,7 +54,7 @@ foreach my $funIndex (0 .. $nFunIndexes-1) } printf ("#else\n"); -printf ("\t.align 1, 0x90\n"); +printf (" .align 1, 0x90\n"); foreach my $funIndex (0 .. $nFunIndexes-1) { @@ -70,15 +70,15 @@ foreach my $funIndex (0 .. $nFunIndexes-1) printf ("#endif\n"); -printf ("\t.globl _nFunIndexes\n"); +printf (" .globl _nFunIndexes\n"); printf ("_nFunIndexes:\n"); -printf ("\t.long %d\n", $nFunIndexes); +printf (" .long %d\n", $nFunIndexes); -printf ("\t.globl _nVtableOffsets\n"); +printf (" .globl _nVtableOffsets\n"); printf ("_nVtableOffsets:\n"); -printf ("\t.long %d\n", $nVtableOffsets); +printf (" .long %d\n", $nVtableOffsets); -printf ("\t.globl _codeSnippets\n"); +printf (" .globl _codeSnippets\n"); printf ("_codeSnippets:\n"); foreach my $funIndex (0 .. $nFunIndexes-1) @@ -86,13 +86,13 @@ foreach my $funIndex (0 .. $nFunIndexes-1) foreach my $vtableOffset (0 .. $nVtableOffsets-1) { printf ("#ifdef __arm\n"); - printf ("\t.long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex, $vtableOffset); - printf ("\t.long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset); + printf (" .long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex, $vtableOffset); + printf (" .long codeSnippet_%08x_%d - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset); printf ("#else\n"); foreach my $executor ('General', 'Void', 'Hyper', 'Float', 'Double', 'Class') { - printf ("\t.long codeSnippet_%08x_%d_%s - _codeSnippets\n", $funIndex, $vtableOffset, $executor); - printf ("\t.long codeSnippet_%08x_%d_%s - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset, $executor); + printf (" .long codeSnippet_%08x_%d_%s - _codeSnippets\n", $funIndex, $vtableOffset, $executor); + printf (" .long codeSnippet_%08x_%d_%s - _codeSnippets\n", $funIndex|0x80000000, $vtableOffset, $executor); } printf ("#endif\n"); } diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s index 914d4b7..2f94734 100644 --- a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s +++ b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s @@ -1,3 +1,5 @@ +// -*- Mode: Asm; tab-width: 4; tab-stop-list: (4 12 32); comment-column: 30; comment-start: "// "; indent-tabs-mode: nil -*- +// // This file is part of the LibreOffice project. // // This Source Code Form is subject to the terms of the Mozilla Public @@ -25,20 +27,20 @@ // Fixed by Michael Casadevall <mcasadev...@kubuntu.org> // Modified for iOS by Tor Lillqvist <t...@iki.fi> - .text - .align 4 + .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 + 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 + add sp, sp, #4 // no need to restore r4 (we didn't touch it) + ldr pc, [sp], #20 // return, discarding function arguments #else .text @@ -330,3 +332,5 @@ L___gxx_personality_v0$non_lazy_ptr: .destructor .align 1 #endif + +// vim:set shiftwidth=4 softtabstop=4 expandtab: commit dbd0fa72168ad9957466e447975a6ee7a63c434e Author: Tor Lillqvist <t...@collabora.com> Date: Mon Sep 30 23:55:00 2013 +0300 Use // consistently for comments in the iOS assembly sources Change-Id: I60bbf6c309130bbf868745b3ba6fc1c0729d850a diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl index 80b45fe..67701cb 100755 --- a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl +++ b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl @@ -34,11 +34,11 @@ printf (".text\n"); printf ("#ifdef __arm\n"); printf ("\n"); -printf ("@ Each codeSnippetX function stores pc into ip and branches to _privateSnippetExecutor\n"); -printf ("@ The branch instruction is followed by two longs (that ip thus points to):\n"); -printf ("@ - the function index, as such and with the 0x80000000 bit set\n"); -printf ("@ (to indicate a hidden parameter for returning large values)\n"); -printf ("@ - the vtable offset\n"); +printf ("// Each codeSnippetX function stores pc into ip and branches to _privateSnippetExecutor\n"); +printf ("// The branch instruction is followed by two longs (that ip thus points to):\n"); +printf ("// - the function index, as such and with the 0x80000000 bit set\n"); +printf ("// (to indicate a hidden parameter for returning large values)\n"); +printf ("// - the vtable offset\n"); printf ("\n"); printf ("\t.align 4\n"); diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s index 6df0c25..914d4b7 100644 --- a/bridges/source/cpp_uno/gcc3_ios_arm/helper.s +++ b/bridges/source/cpp_uno/gcc3_ios_arm/helper.s @@ -1,45 +1,44 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ +// This file is part of the LibreOffice project. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// This file incorporates work covered by the following license notice: +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed +// with this work for additional information regarding copyright +// ownership. The ASF licenses this file to you under the Apache +// License, Version 2.0 (the "License"); you may not use this file +// except in compliance with the License. You may obtain a copy of +// the License at http://www.apache.org/licenses/LICENSE-2.0 . +// #include "codesnippets.S" #ifdef __arm -@ ARM support code for LibreOffice C++/UNO bridging -@ -@ Written by Peter Naulls <pe...@chocky.org> -@ Modified by Caolan McNamara <caol...@redhat.com> -@ Fixed by Michael Casadevall <mcasadev...@kubuntu.org> -@ Modified for iOS by Tor Lillqvist <t...@iki.fi> +// ARM support code for LibreOffice C++/UNO bridging +// +// Written by Peter Naulls <pe...@chocky.org> +// Modified by Caolan McNamara <caol...@redhat.com> +// Fixed by Michael Casadevall <mcasadev...@kubuntu.org> +// Modified for iOS by Tor Lillqvist <t...@iki.fi> .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) + 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 + add sp, sp, #4 // no need to restore r4 (we didn't touch it) + ldr pc, [sp], #20 // return, discarding function arguments #else .text @@ -48,17 +47,17 @@ _privateSnippetExecutor: _privateSnippetExecutorGeneral: LFBg: movl %esp,%ecx - pushl %ebp # proper stack frame needed for exception handling + 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 + 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 + movl 16(%esp),%eax // 32bit returnValue leave ret LFEg: @@ -68,15 +67,15 @@ LFEg: _privateSnippetExecutorVoid: LFBv: movl %esp,%ecx - pushl %ebp # proper stack frame needed for exception handling + 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 + 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 @@ -87,18 +86,18 @@ LFEv: _privateSnippetExecutorHyper: LFBh: movl %esp,%ecx - pushl %ebp # proper stack frame needed for exception handling + 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 + 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 + movl 16(%esp),%eax // 64bit returnValue, lower half + movl 20(%esp),%edx // 64bit returnValue, upper half leave ret LFEh: @@ -108,17 +107,17 @@ LFEh: _privateSnippetExecutorFloat: LFBf: movl %esp,%ecx - pushl %ebp # proper stack frame needed for exception handling + 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 + 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 + flds 16(%esp) // 32bit returnValue leave ret LFEf: @@ -128,17 +127,17 @@ LFEf: _privateSnippetExecutorDouble: LFBd: movl %esp,%ecx - pushl %ebp # proper stack frame needed for exception handling + 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 + 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 + fldl 16(%esp) // 64bit returnValue leave ret LFEd: @@ -148,17 +147,17 @@ LFEd: _privateSnippetExecutorClass: LFBc: movl %esp,%ecx - pushl %ebp # proper stack frame needed for exception handling + 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 + 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 + movl 16(%esp),%eax // 32bit returnValue leave ret $4 LFEc: @@ -167,155 +166,155 @@ LFEc: .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 + .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 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 + // initial_instructions: + .byte 0x0C // DW_CFA_def_cfa %esp, 4 .byte 5 .byte 4 - .byte 0x88 # DW_CFA_offset ret, 1 + .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 + .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 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 0x0E // DW_CFA_def_cfa_offset 8 .byte 8 - .byte 0x84 # DW_CFA_offset %ebp, 2 + .byte 0x84 // DW_CFA_offset %ebp, 2 .byte 2 - .byte 0x04 # DW_CFA_advance_loc4 + .byte 0x04 // DW_CFA_advance_loc4 .long LCFIg1-LCFIg0 - .byte 0x0D # DW_CFA_def_cfa_register %ebp + .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 + .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 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 0x0E // DW_CFA_def_cfa_offset 8 .byte 8 - .byte 0x84 # DW_CFA_offset %ebp, 2 + .byte 0x84 // DW_CFA_offset %ebp, 2 .byte 2 - .byte 0x04 # DW_CFA_advance_loc4 + .byte 0x04 // DW_CFA_advance_loc4 .long LCFIv1-LCFIv0 - .byte 0x0D # DW_CFA_def_cfa_register %ebp + .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 + .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 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 0x0E // DW_CFA_def_cfa_offset 8 .byte 8 - .byte 0x84 # DW_CFA_offset %ebp, 2 + .byte 0x84 // DW_CFA_offset %ebp, 2 .byte 2 - .byte 0x04 # DW_CFA_advance_loc4 + .byte 0x04 // DW_CFA_advance_loc4 .long LCFIh1-LCFIh0 - .byte 0x0D # DW_CFA_def_cfa_register %ebp + .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 + .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 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 0x0E // DW_CFA_def_cfa_offset 8 .byte 8 - .byte 0x84 # DW_CFA_offset %ebp, 2 + .byte 0x84 // DW_CFA_offset %ebp, 2 .byte 2 - .byte 0x04 # DW_CFA_advance_loc4 + .byte 0x04 // DW_CFA_advance_loc4 .long LCFIf1-LCFIf0 - .byte 0x0D # DW_CFA_def_cfa_register %ebp + .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 + .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 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 0x0E // DW_CFA_def_cfa_offset 8 .byte 8 - .byte 0x84 # DW_CFA_offset %ebp, 2 + .byte 0x84 // DW_CFA_offset %ebp, 2 .byte 2 - .byte 0x04 # DW_CFA_advance_loc4 + .byte 0x04 // DW_CFA_advance_loc4 .long LCFId1-LCFId0 - .byte 0x0D # DW_CFA_def_cfa_register %ebp + .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 + .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 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 0x0E // DW_CFA_def_cfa_offset 8 .byte 8 - .byte 0x84 # DW_CFA_offset %ebp, 2 + .byte 0x84 // DW_CFA_offset %ebp, 2 .byte 2 - .byte 0x04 # DW_CFA_advance_loc4 + .byte 0x04 // DW_CFA_advance_loc4 .long LCFIc1-LCFIc0 - .byte 0x0D # DW_CFA_def_cfa_register %ebp + .byte 0x0D // DW_CFA_def_cfa_register %ebp .byte 4 .align 2 LEFDEc: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits