diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2021-07-28 15:10:20 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2021-07-28 22:59:08 +0200 |
commit | 99fa607245332d687d494d8d4404cf067ca21fb3 (patch) | |
tree | a8960df5ebddc076fba6206198f5abf8086a4fc5 /bridges | |
parent | 5aa74aa1e6fac571f99146ebcb6adc9feb1459ad (diff) |
Annotate the .eh_frame data
...to convince myself that it is only about the initial %rsp/%rbp fiddling, and
is not affected by the ca344be7aabf88dddde38841e6af6292ece6829b "tdf#143450: Fix
special fp+integer struct return case for gcc_*_x86-64" changes to later parts
of privateSnippetExecutor
Change-Id: I7bfad4cb5e1c2208e29c73a70874b6e9eff29eb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119610
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'bridges')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_x86-64/call.s | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s index 00909188a7b6..ee8403ab7180 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s @@ -77,39 +77,41 @@ privateSnippetExecutor: # and http://mentorembedded.github.io/cxx-abi/exceptions.pdf for more info .section .eh_frame,"a",@unwind .Lframe1: - .long .LECIE1-.LSCIE1 + .long .LECIE1-.LSCIE1 # CIE Length .LSCIE1: - .long 0x0 - .byte 0x1 - .string "zR" - .uleb128 0x1 - .sleb128 -8 - .byte 0x10 - .uleb128 0x1 - .byte 0x1b - .byte 0xc + .long 0x0 # CIE ID + .byte 0x1 # CIE Version + .string "zR" # CIE Augmentation String + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -8 # CIE Data Alignment Factor + .byte 0x10 # CIE Return Address Register: pseudo "Return Address RA" + .uleb128 0x1 # CIE Augmentation Data Length + .byte 0x1b # CIE Augmentation Data + # CIE Initial Instructions: + .byte 0xc # DW_CFA_def_cfa %rsp +8 .uleb128 0x7 .uleb128 0x8 - .byte 0x90 + .byte 0x90 # DW_CFA_offset (pseudo "Return Address RA") +1 (i.e., -8) .uleb128 0x1 .align 8 .LECIE1: .LSFDE1: - .long .LEFDE1-.LASFDE1 + .long .LEFDE1-.LASFDE1 # FDE Length .LASFDE1: - .long .LASFDE1-.Lframe1 - .long .LFB3-. - .long .LFE3-.LFB3 - .uleb128 0x0 - .byte 0x4 + .long .LASFDE1-.Lframe1 # FDE CIE Pointer + .long .LFB3-. # FDE PC Begin + .long .LFE3-.LFB3 # FDE PC Range + .uleb128 0x0 # FDE Augmentation Data Length + # FDE Call Frame Instructions: + .byte 0x4 # DW_CFA_advance_loc4 .LCFI0 .long .LCFI0-.LFB3 - .byte 0xe + .byte 0xe # DW_CFA_def_cfa_offset +16 .uleb128 0x10 - .byte 0x86 + .byte 0x86 # DW_CFA_offset %rbp +2 (i.e., -16) .uleb128 0x2 - .byte 0x4 + .byte 0x4 # DW_CFA_advance_loc4 .LCFI1 .long .LCFI1-.LCFI0 - .byte 0xd + .byte 0xd # DW_CFA_def_cfa_register %rbp .uleb128 0x6 .align 8 .LEFDE1: |