Import test suite from libunwind-35.1
This commit is contained in:
Родитель
d8b8956c1f
Коммит
17e95e4106
|
@ -0,0 +1,24 @@
|
|||
These test cases where extracted from Apple's libunwind-35.1, where they
|
||||
are used to validate Apple's compact frame and dwarf unwinding implementation.
|
||||
|
||||
A custom build script (build.sh) may be used to regenerate the test binaries.
|
||||
|
||||
The test cases themselves are licensed under libunwind's license:
|
||||
|
||||
Copyright (c) 2008-2011 Apple Inc. All rights reserved.
|
||||
|
||||
This file contains Original Code and/or Modifications of Original Code
|
||||
as defined in and that are subject to the Apple Public Source License
|
||||
Version 2.0 (the 'License'). You may not use this file except in
|
||||
compliance with the License. Please obtain a copy of the License at
|
||||
http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
file.
|
||||
|
||||
The Original Code and all software distributed under the License are
|
||||
distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
Please see the License for the specific language governing rights and
|
||||
limitations under the License.
|
||||
|
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_disable_compact_frame.s.1
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_disable_compact_frame.s.1
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.2
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.2
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.3
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.3
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.4
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.4
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.5
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frame.s.5
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless.s.6
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless.s.6
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless.s.7
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless.s.7
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless_big.s.8
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless_big.s.8
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless_big.s.9
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_frameless_big.s.9
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_unusual.s.10
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_unusual.s.10
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_unusual.s.11
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_64_unusual.s.11
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_disable_compact_frame.s.12
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_disable_compact_frame.s.12
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.13
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.13
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.14
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.14
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.15
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.15
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.16
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frame.s.16
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless.s.17
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless.s.17
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless.s.18
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless.s.18
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless_big.s.19
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless_big.s.19
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless_big.s.20
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_frameless_big.s.20
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_unusual.s.21
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_unusual.s.21
Executable file
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_unusual.s.22
Executable file
Двоичные данные
Resources/Tests/PLCrashAsyncDwarfEncodingTests/bins/tbin.unwind_test_x86_unusual.s.22
Executable file
Двоичный файл не отображается.
|
@ -0,0 +1,54 @@
|
|||
#!/bin/sh
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Copyright (c) 2010-2013, Plausible Labs Cooperative, Inc.
|
||||
#
|
||||
# Author: Landon Fuller <landonf@plausible.coop>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# ``Software''), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
process() {
|
||||
local file=$1
|
||||
local opts=`echo $2`
|
||||
local count=$3
|
||||
|
||||
eval cc -o bins/tbin.$file.${count} ${file} ${opts}
|
||||
}
|
||||
|
||||
main() {
|
||||
local ifs_bak=$IFS
|
||||
local ifs_nl="
|
||||
"
|
||||
|
||||
IFS=$ifs_nl
|
||||
local count="1"
|
||||
for opt in `grep -H "TEST-OPTIONS:" *.s`; do
|
||||
IFS=$ifs_back
|
||||
local fname=`echo "${opt}" | awk -F : '{print $1}'`
|
||||
local opts=`echo "${opt}" | cut -d ' ' -f 3-`
|
||||
process "$fname" "${opts}" "${count}"
|
||||
IFS=$ifs_nl
|
||||
count=`expr $count + 1`
|
||||
done
|
||||
}
|
||||
|
||||
main
|
|
@ -0,0 +1,46 @@
|
|||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "libunwind.h"
|
||||
|
||||
extern int unwind_tester(void*);
|
||||
extern void* unwind_tester_list[];
|
||||
|
||||
int main()
|
||||
{
|
||||
// loop over all function pointers in unwind_tester_list
|
||||
// and call unwind_tester() on each one. If it returns
|
||||
// non-zero, then that test failed.
|
||||
void** p;
|
||||
for(p=unwind_tester_list; *p != NULL; ++p) {
|
||||
//fprintf(stderr, "unwind_tester(%p)\n", *p);
|
||||
if ( unwind_tester(*p) )
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// called by test function
|
||||
// we unwind through the test function
|
||||
// and resume at caller (unwind_tester)
|
||||
void uwind_to_main()
|
||||
{
|
||||
unw_cursor_t cursor;
|
||||
unw_context_t uc;
|
||||
unw_word_t offset;
|
||||
|
||||
unw_getcontext(&uc);
|
||||
unw_init_local(&cursor, &uc);
|
||||
if ( unw_step(&cursor) > 0 ) {
|
||||
// now in test function
|
||||
if ( unw_step(&cursor) > 0 ) {
|
||||
// now in unwind_tester
|
||||
unw_resume(&cursor);
|
||||
}
|
||||
}
|
||||
// error if we got here
|
||||
exit(1);
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
|
||||
#
|
||||
# This is a generic function to test that restoring registers during unwinding work correctly.
|
||||
#
|
||||
|
||||
.text
|
||||
.globl _unwind_tester
|
||||
_unwind_tester:
|
||||
LFB2:
|
||||
pushl %ebp
|
||||
LCFI0:
|
||||
movl %esp, %ebp
|
||||
LCFI1:
|
||||
subl $56, %esp
|
||||
LCFI2:
|
||||
movl %ebx, -12(%ebp)
|
||||
LCFI3:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI4:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI5:
|
||||
# load magic values into non-volatile registers
|
||||
movl $0x12344321, %ebx
|
||||
movl $0x56788765, %esi
|
||||
movl $0xABCDDCBA, %edi
|
||||
# call test function which will invoke unwinder which "returns" here
|
||||
call *8(%ebp)
|
||||
# verify that non-volatile registers still contain magic values
|
||||
cmpl $0x12344321, %ebx
|
||||
jne L2
|
||||
cmpl $0x56788765, %esi
|
||||
jne L2
|
||||
cmpl $0xABCDDCBA, %edi
|
||||
jne L2
|
||||
movl $0, %eax
|
||||
jmp L3
|
||||
L2: movl $1, %eax
|
||||
L3:
|
||||
movl -12(%ebp), %ebx
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE2:
|
||||
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x7c # sleb128 -4; CIE Data Alignment Factor
|
||||
.byte 0x8 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 2
|
||||
LECIE1:
|
||||
|
||||
.globl _unwind_tester.eh
|
||||
_unwind_tester.eh:
|
||||
LSFDE1:
|
||||
.set L$set$1,LEFDE1-LASFDE1
|
||||
.long L$set$1 # FDE Length
|
||||
LASFDE1:
|
||||
.long LASFDE1-EH_frame1 # FDE CIE offset
|
||||
.long LFB2-. # FDE initial location
|
||||
.set L$set$2,LFE2-LFB2
|
||||
.long L$set$2 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$3,LCFI0-LFB2
|
||||
.long L$set$3
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$4,LCFI1-LCFI0
|
||||
.long L$set$4
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$5,LCFI5-LCFI1
|
||||
.long L$set$5
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE1:
|
||||
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
|
||||
#
|
||||
# This is a generic function to test that restoring registers during unwinding work correctly.
|
||||
#
|
||||
|
||||
.text
|
||||
.globl _unwind_tester
|
||||
_unwind_tester:
|
||||
LFB3:
|
||||
pushq %rbp
|
||||
LCFI45:
|
||||
movq %rsp, %rbp
|
||||
LCFI46:
|
||||
movq %rbx, -40(%rbp)
|
||||
LCFI47:
|
||||
movq %r12, -32(%rbp)
|
||||
LCFI48:
|
||||
movq %r13, -24(%rbp)
|
||||
LCFI49:
|
||||
movq %r14, -16(%rbp)
|
||||
LCFI50:
|
||||
movq %r15, -8(%rbp)
|
||||
LCFI51:
|
||||
subq $48, %rsp
|
||||
LCFI52:
|
||||
# load magic values into non-volatile registers
|
||||
movq $0x1234567887654321, %rbx
|
||||
movq $0x02468ACEECA86420, %r12
|
||||
movq $0x13579BDFFDB97531, %r13
|
||||
movq $0x1122334455667788, %r14
|
||||
movq $0x0022446688AACCEE, %r15
|
||||
# call test function which will invoke unwinder which "returns" here
|
||||
call *%rdi
|
||||
# verify that non-volatile registers still contain magic values
|
||||
movq $0x1234567887654321, %rax
|
||||
cmpq %rax, %rbx
|
||||
jne L2
|
||||
movq $0x02468ACEECA86420, %rax
|
||||
cmpq %rax, %r12
|
||||
jne L2
|
||||
movq $0x13579BDFFDB97531, %rax
|
||||
cmpq %rax, %r13
|
||||
jne L2
|
||||
movq $0x1122334455667788, %rax
|
||||
cmpq %rax, %r14
|
||||
jne L2
|
||||
movq $0x0022446688AACCEE, %rax
|
||||
cmpq %rax, %r15
|
||||
jne L2
|
||||
movl $0, %eax
|
||||
jmp L3
|
||||
L2: movl $1, %eax
|
||||
L3:
|
||||
movq -40(%rbp), %rbx
|
||||
movq -32(%rbp), %r12
|
||||
movq -24(%rbp), %r13
|
||||
movq -16(%rbp), %r14
|
||||
movq -8(%rbp), %r15
|
||||
leave
|
||||
ret
|
||||
LFE3:
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x78 # sleb128 -8; CIE Data Alignment Factor
|
||||
.byte 0x10 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x7 # uleb128 0x7
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x90 # DW_CFA_offset, column 0x10
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 3
|
||||
LECIE1:
|
||||
|
||||
.globl _unwind_tester.eh
|
||||
_unwind_tester.eh:
|
||||
LSFDE23:
|
||||
.set L$set$52,LEFDE23-LASFDE23
|
||||
.long L$set$52 # FDE Length
|
||||
LASFDE23:
|
||||
.long LASFDE23-EH_frame1 # FDE CIE offset
|
||||
.quad LFB3-. # FDE initial location
|
||||
.set L$set$53,LFE3-LFB3
|
||||
.quad L$set$53 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$54,LCFI45-LFB3
|
||||
.long L$set$54
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x10 # uleb128 0x10
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$55,LCFI46-LCFI45
|
||||
.long L$set$55
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$56,LCFI52-LCFI46
|
||||
.long L$set$56
|
||||
.byte 0x8f # DW_CFA_offset, column 0xf
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x7 # uleb128 0x7
|
||||
.align 3
|
||||
LEFDE23:
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,599 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64
|
||||
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.quad _test_no_reg
|
||||
.quad _test_rbx
|
||||
.quad _test_rbx_r12
|
||||
.quad _test_rbx_r14
|
||||
.quad _test_rbx_r12_r13
|
||||
.quad _test_rbx_r12_r13_r14
|
||||
.quad _test_r14_r13_r12_rbx
|
||||
.quad _test_rbx_r12_r13_r14_r15
|
||||
.quad _test_r13_rbx_r14_r15_r12
|
||||
.quad 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
LFE14:
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB13:
|
||||
pushq %rbp
|
||||
LCFI2:
|
||||
movq %rsp, %rbp
|
||||
LCFI3:
|
||||
call _uwind_to_main
|
||||
leave
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
.globl _test_rbx
|
||||
_test_rbx:
|
||||
LFB10:
|
||||
pushq %rbp
|
||||
LCFI8:
|
||||
movq %rsp, %rbp
|
||||
LCFI9:
|
||||
pushq %rbx
|
||||
LCFI10:
|
||||
subq $8, %rsp
|
||||
LCFI11:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
addq $8, %rsp
|
||||
popq %rbx
|
||||
leave
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_rbx_r12
|
||||
_test_rbx_r12:
|
||||
LFB8:
|
||||
pushq %rbp
|
||||
LCFI16:
|
||||
movq %rsp, %rbp
|
||||
LCFI17:
|
||||
movq %rbx, -16(%rbp)
|
||||
LCFI18:
|
||||
movq %r12, -8(%rbp)
|
||||
LCFI19:
|
||||
subq $16, %rsp
|
||||
LCFI20:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
leave
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
.globl _test_rbx_r14
|
||||
_test_rbx_r14:
|
||||
LFB8a:
|
||||
pushq %rbp
|
||||
LCFI16a:
|
||||
movq %rsp, %rbp
|
||||
LCFI17a:
|
||||
movq %rbx, -16(%rbp)
|
||||
LCFI18a:
|
||||
movq %r14, -8(%rbp)
|
||||
LCFI19a:
|
||||
subq $16, %rsp
|
||||
LCFI20a:
|
||||
movq $0, %rbx
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r14
|
||||
leave
|
||||
ret
|
||||
LFE8a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13
|
||||
_test_rbx_r12_r13:
|
||||
LFB6:
|
||||
pushq %rbp
|
||||
LCFI26:
|
||||
movq %rsp, %rbp
|
||||
LCFI27:
|
||||
movq %rbx, -24(%rbp)
|
||||
LCFI28:
|
||||
movq %r12, -16(%rbp)
|
||||
LCFI29:
|
||||
movq %r13, -8(%rbp)
|
||||
LCFI30:
|
||||
subq $32, %rsp
|
||||
LCFI31:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
call _uwind_to_main
|
||||
movq -24(%rbp), %rbx
|
||||
movq -16(%rbp), %r12
|
||||
movq -8(%rbp), %r13
|
||||
leave
|
||||
ret
|
||||
LFE6:
|
||||
|
||||
.globl _test_rbx_r12_r13_r14
|
||||
_test_rbx_r12_r13_r14:
|
||||
LFB4:
|
||||
pushq %rbp
|
||||
LCFI38:
|
||||
movq %rsp, %rbp
|
||||
LCFI39:
|
||||
movq %rbx, -32(%rbp)
|
||||
LCFI40:
|
||||
movq %r12, -24(%rbp)
|
||||
LCFI41:
|
||||
movq %r13, -16(%rbp)
|
||||
LCFI42:
|
||||
movq %r14, -8(%rbp)
|
||||
LCFI43:
|
||||
subq $32, %rsp
|
||||
LCFI44:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
movq 16(%rsp), %r13
|
||||
movq 24(%rsp), %r14
|
||||
leave
|
||||
ret
|
||||
LFE4:
|
||||
|
||||
.globl _test_r14_r13_r12_rbx
|
||||
_test_r14_r13_r12_rbx:
|
||||
LFB4a:
|
||||
pushq %rbp
|
||||
LCFI38a:
|
||||
movq %rsp, %rbp
|
||||
LCFI39a:
|
||||
movq %r14, -32(%rbp)
|
||||
LCFI40a:
|
||||
movq %r13, -24(%rbp)
|
||||
LCFI41a:
|
||||
movq %r12, -16(%rbp)
|
||||
LCFI42a:
|
||||
movq %rbx, -8(%rbp)
|
||||
LCFI43a:
|
||||
subq $32, %rsp
|
||||
LCFI44a:
|
||||
movq $0, %r14
|
||||
movq $0, %r13
|
||||
movq $0, %r12
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
movq -32(%rbp), %r14
|
||||
movq -24(%rbp), %r13
|
||||
movq -16(%rbp), %r12
|
||||
movq -8(%rbp), %rbx
|
||||
leave
|
||||
ret
|
||||
LFE4a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15
|
||||
_test_rbx_r12_r13_r14_r15:
|
||||
LFB3:
|
||||
pushq %rbp
|
||||
LCFI45:
|
||||
movq %rsp, %rbp
|
||||
LCFI46:
|
||||
movq %rbx, -40(%rbp)
|
||||
LCFI47:
|
||||
movq %r12, -32(%rbp)
|
||||
LCFI48:
|
||||
movq %r13, -24(%rbp)
|
||||
LCFI49:
|
||||
movq %r14, -16(%rbp)
|
||||
LCFI50:
|
||||
movq %r15, -8(%rbp)
|
||||
LCFI51:
|
||||
subq $48, %rsp
|
||||
LCFI52:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq -40(%rbp), %rbx
|
||||
movq -32(%rbp), %r12
|
||||
movq -24(%rbp), %r13
|
||||
movq -16(%rbp), %r14
|
||||
movq -8(%rbp), %r15
|
||||
leave
|
||||
ret
|
||||
LFE3:
|
||||
|
||||
|
||||
.globl _test_r13_rbx_r14_r15_r12
|
||||
_test_r13_rbx_r14_r15_r12:
|
||||
LFB3a:
|
||||
pushq %rbp
|
||||
LCFI45a:
|
||||
movq %rsp, %rbp
|
||||
LCFI46a:
|
||||
movq %r13, -40(%rbp)
|
||||
LCFI47a:
|
||||
movq %rbx, -32(%rbp)
|
||||
LCFI48a:
|
||||
movq %r14, -24(%rbp)
|
||||
LCFI49a:
|
||||
movq %r15, -16(%rbp)
|
||||
LCFI50a:
|
||||
movq %r12, -8(%rbp)
|
||||
LCFI51a:
|
||||
subq $48, %rsp
|
||||
LCFI52a:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
movq $0, %r15
|
||||
call _uwind_to_main
|
||||
movq -40(%rbp), %r13
|
||||
movq -32(%rbp), %rbx
|
||||
movq -24(%rbp), %r14
|
||||
movq -16(%rbp), %r15
|
||||
movq -8(%rbp), %r12
|
||||
leave
|
||||
ret
|
||||
LFE3a:
|
||||
|
||||
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0
|
||||
LSCIE1:
|
||||
.long 0x0
|
||||
.byte 0x1
|
||||
.ascii "zR\0"
|
||||
.byte 0x1
|
||||
.byte 0x78
|
||||
.byte 0x10
|
||||
.byte 0x1
|
||||
.byte 0x10
|
||||
.byte 0xc
|
||||
.byte 0x7
|
||||
.byte 0x8
|
||||
.byte 0x90 // DW_CFA_offset(ret_addr, -8)
|
||||
.byte 0x1
|
||||
.byte 0x90 // DW_CFA_offset(ret_addr, -8)
|
||||
.byte 0x1 // this repeat is idiom that means don't create compact unwind info
|
||||
.align 3
|
||||
LECIE1:
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE3:
|
||||
.set L$set$5,LEFDE3-LASFDE3
|
||||
.long L$set$5
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1
|
||||
.quad LFB13-.
|
||||
.set L$set$6,LFE13-LFB13
|
||||
.quad L$set$6
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$7,LCFI2-LFB13
|
||||
.long L$set$7
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$8,LCFI3-LCFI2
|
||||
.long L$set$8
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.align 3
|
||||
LEFDE3:
|
||||
|
||||
.globl _test_rbx.eh
|
||||
_test_rbx.eh:
|
||||
LSFDE9:
|
||||
.set L$set$17,LEFDE9-LASFDE9
|
||||
.long L$set$17
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1
|
||||
.quad LFB10-.
|
||||
.set L$set$18,LFE10-LFB10
|
||||
.quad L$set$18
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$19,LCFI8-LFB10
|
||||
.long L$set$19
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$20,LCFI9-LCFI8
|
||||
.long L$set$20
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$21,LCFI11-LCFI9
|
||||
.long L$set$21
|
||||
.byte 0x83
|
||||
.byte 0x3
|
||||
.align 3
|
||||
LEFDE9:
|
||||
|
||||
.globl _test_rbx_r12.eh
|
||||
_test_rbx_r12.eh:
|
||||
LSFDE13:
|
||||
.set L$set$27,LEFDE13-LASFDE13
|
||||
.long L$set$27
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1
|
||||
.quad LFB8-.
|
||||
.set L$set$28,LFE8-LFB8
|
||||
.quad L$set$28
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$29,LCFI16-LFB8
|
||||
.long L$set$29
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$30,LCFI17-LCFI16
|
||||
.long L$set$30
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$31,LCFI20-LCFI17
|
||||
.long L$set$31
|
||||
.byte 0x8c
|
||||
.byte 0x3
|
||||
.byte 0x83
|
||||
.byte 0x4
|
||||
.align 3
|
||||
LEFDE13:
|
||||
|
||||
.globl _test_rbx_r14.eh
|
||||
_test_rbx_r14.eh:
|
||||
LSFDE13a:
|
||||
.set L$set$27a,LEFDE13a-LASFDE13a
|
||||
.long L$set$27a
|
||||
LASFDE13a:
|
||||
.long LASFDE13a-EH_frame1
|
||||
.quad LFB8a-.
|
||||
.set L$set$28a,LFE8a-LFB8a
|
||||
.quad L$set$28a
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$29a,LCFI16a-LFB8a
|
||||
.long L$set$29a
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$30a,LCFI17a-LCFI16a
|
||||
.long L$set$30a
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$31a,LCFI20a-LCFI17a
|
||||
.long L$set$31a
|
||||
.byte 0x8e
|
||||
.byte 0x3
|
||||
.byte 0x83
|
||||
.byte 0x4
|
||||
.align 3
|
||||
LEFDE13a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13.eh
|
||||
_test_rbx_r12_r13.eh:
|
||||
LSFDE17:
|
||||
.set L$set$37,LEFDE17-LASFDE17
|
||||
.long L$set$37
|
||||
LASFDE17:
|
||||
.long LASFDE17-EH_frame1
|
||||
.quad LFB6-.
|
||||
.set L$set$38,LFE6-LFB6
|
||||
.quad L$set$38
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$39,LCFI26-LFB6
|
||||
.long L$set$39
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$40,LCFI27-LCFI26
|
||||
.long L$set$40
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$41,LCFI31-LCFI27
|
||||
.long L$set$41
|
||||
.byte 0x8d
|
||||
.byte 0x3
|
||||
.byte 0x8c
|
||||
.byte 0x4
|
||||
.byte 0x83
|
||||
.byte 0x5
|
||||
.align 3
|
||||
LEFDE17:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14.eh
|
||||
_test_rbx_r12_r13_r14.eh:
|
||||
LSFDE21:
|
||||
.set L$set$47,LEFDE21-LASFDE21
|
||||
.long L$set$47
|
||||
LASFDE21:
|
||||
.long LASFDE21-EH_frame1
|
||||
.quad LFB4-.
|
||||
.set L$set$48,LFE4-LFB4
|
||||
.quad L$set$48
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$49,LCFI38-LFB4
|
||||
.long L$set$49
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$50,LCFI39-LCFI38
|
||||
.long L$set$50
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$51,LCFI44-LCFI39
|
||||
.long L$set$51
|
||||
.byte 0x8e
|
||||
.byte 0x3
|
||||
.byte 0x8d
|
||||
.byte 0x4
|
||||
.byte 0x8c
|
||||
.byte 0x5
|
||||
.byte 0x83
|
||||
.byte 0x6
|
||||
.align 3
|
||||
LEFDE21:
|
||||
|
||||
.globl _test_r14_r13_r12_rbx.eh
|
||||
_test_r14_r13_r12_rbx.eh:
|
||||
LSFDE21a:
|
||||
.set L$set$47a,LEFDE21a-LASFDE21a
|
||||
.long L$set$47a
|
||||
LASFDE21a:
|
||||
.long LASFDE21a-EH_frame1
|
||||
.quad LFB4a-.
|
||||
.set L$set$48a,LFE4a-LFB4a
|
||||
.quad L$set$48a
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$49a,LCFI38a-LFB4a
|
||||
.long L$set$49a
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$50a,LCFI39a-LCFI38a
|
||||
.long L$set$50a
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$51a,LCFI44a-LCFI39a
|
||||
.long L$set$51a
|
||||
.byte 0x8e
|
||||
.byte 0x6
|
||||
.byte 0x8d
|
||||
.byte 0x5
|
||||
.byte 0x8c
|
||||
.byte 0x4
|
||||
.byte 0x83
|
||||
.byte 0x3
|
||||
.align 3
|
||||
LEFDE21a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15.eh
|
||||
_test_rbx_r12_r13_r14_r15.eh:
|
||||
LSFDE23:
|
||||
.set L$set$52,LEFDE23-LASFDE23
|
||||
.long L$set$52
|
||||
LASFDE23:
|
||||
.long LASFDE23-EH_frame1
|
||||
.quad LFB3-.
|
||||
.set L$set$53,LFE3-LFB3
|
||||
.quad L$set$53
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$54,LCFI45-LFB3
|
||||
.long L$set$54
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$55,LCFI46-LCFI45
|
||||
.long L$set$55
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$56,LCFI52-LCFI46
|
||||
.long L$set$56
|
||||
.byte 0x8f
|
||||
.byte 0x3
|
||||
.byte 0x8e
|
||||
.byte 0x4
|
||||
.byte 0x8d
|
||||
.byte 0x5
|
||||
.byte 0x8c
|
||||
.byte 0x6
|
||||
.byte 0x83
|
||||
.byte 0x7
|
||||
.align 3
|
||||
LEFDE23:
|
||||
|
||||
|
||||
.globl _test_r13_rbx_r14_r15_r12.eh
|
||||
_test_r13_rbx_r14_r15_r12.eh:
|
||||
LSFDE23a:
|
||||
.set L$set$52a,LEFDE23a-LASFDE23a
|
||||
.long L$set$52a
|
||||
LASFDE23a:
|
||||
.long LASFDE23a-EH_frame1
|
||||
.quad LFB3a-.
|
||||
.set L$set$53a,LFE3a-LFB3a
|
||||
.quad L$set$53a
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$54a,LCFI45a-LFB3a
|
||||
.long L$set$54a
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$55a,LCFI46a-LCFI45a
|
||||
.long L$set$55a
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$56a,LCFI52a-LCFI46a
|
||||
.long L$set$56a
|
||||
.byte 0x8c
|
||||
.byte 0x3
|
||||
.byte 0x8f
|
||||
.byte 0x4
|
||||
.byte 0x8e
|
||||
.byte 0x5
|
||||
.byte 0x83
|
||||
.byte 0x6
|
||||
.byte 0x8d
|
||||
.byte 0x7
|
||||
.align 3
|
||||
LEFDE23a:
|
||||
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,674 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -DUSE_COMPACT_UNWIND=1
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -DUSE_EH_FRAME=1
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -DUSE_COMPACT_UNWIND=1 -DUSE_EH_FRAME=1
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -DUSE_EH_FRAME=1 -Wl,-no_compact_unwind
|
||||
|
||||
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.quad _test_no_reg
|
||||
.quad _test_rbx
|
||||
.quad _test_rbx_r12
|
||||
.quad _test_rbx_r14
|
||||
.quad _test_rbx_r12_r13
|
||||
.quad _test_rbx_r12_r13_r14
|
||||
.quad _test_r14_r13_r12_rbx
|
||||
.quad _test_rbx_r12_r13_r14_r15
|
||||
.quad _test_r13_rbx_r14_r15_r12
|
||||
.quad 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
LFE14:
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB13:
|
||||
pushq %rbp
|
||||
LCFI2:
|
||||
movq %rsp, %rbp
|
||||
LCFI3:
|
||||
call _uwind_to_main
|
||||
leave
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
.globl _test_rbx
|
||||
_test_rbx:
|
||||
LFB10:
|
||||
pushq %rbp
|
||||
LCFI8:
|
||||
movq %rsp, %rbp
|
||||
LCFI9:
|
||||
pushq %rbx
|
||||
LCFI10:
|
||||
subq $8, %rsp
|
||||
LCFI11:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
addq $8, %rsp
|
||||
popq %rbx
|
||||
leave
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_rbx_r12
|
||||
_test_rbx_r12:
|
||||
LFB8:
|
||||
pushq %rbp
|
||||
LCFI16:
|
||||
movq %rsp, %rbp
|
||||
LCFI17:
|
||||
movq %rbx, -16(%rbp)
|
||||
LCFI18:
|
||||
movq %r12, -8(%rbp)
|
||||
LCFI19:
|
||||
subq $16, %rsp
|
||||
LCFI20:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
leave
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
.globl _test_rbx_r14
|
||||
_test_rbx_r14:
|
||||
LFB8a:
|
||||
pushq %rbp
|
||||
LCFI16a:
|
||||
movq %rsp, %rbp
|
||||
LCFI17a:
|
||||
movq %rbx, -16(%rbp)
|
||||
LCFI18a:
|
||||
movq %r14, -8(%rbp)
|
||||
LCFI19a:
|
||||
subq $16, %rsp
|
||||
LCFI20a:
|
||||
movq $0, %rbx
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r14
|
||||
leave
|
||||
ret
|
||||
LFE8a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13
|
||||
_test_rbx_r12_r13:
|
||||
LFB6:
|
||||
pushq %rbp
|
||||
LCFI26:
|
||||
movq %rsp, %rbp
|
||||
LCFI27:
|
||||
movq %rbx, -24(%rbp)
|
||||
LCFI28:
|
||||
movq %r12, -16(%rbp)
|
||||
LCFI29:
|
||||
movq %r13, -8(%rbp)
|
||||
LCFI30:
|
||||
subq $32, %rsp
|
||||
LCFI31:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
call _uwind_to_main
|
||||
movq -24(%rbp), %rbx
|
||||
movq -16(%rbp), %r12
|
||||
movq -8(%rbp), %r13
|
||||
leave
|
||||
ret
|
||||
LFE6:
|
||||
|
||||
.globl _test_rbx_r12_r13_r14
|
||||
_test_rbx_r12_r13_r14:
|
||||
LFB4:
|
||||
pushq %rbp
|
||||
LCFI38:
|
||||
movq %rsp, %rbp
|
||||
LCFI39:
|
||||
movq %rbx, -32(%rbp)
|
||||
LCFI40:
|
||||
movq %r12, -24(%rbp)
|
||||
LCFI41:
|
||||
movq %r13, -16(%rbp)
|
||||
LCFI42:
|
||||
movq %r14, -8(%rbp)
|
||||
LCFI43:
|
||||
subq $32, %rsp
|
||||
LCFI44:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
movq 16(%rsp), %r13
|
||||
movq 24(%rsp), %r14
|
||||
leave
|
||||
ret
|
||||
LFE4:
|
||||
|
||||
.globl _test_r14_r13_r12_rbx
|
||||
_test_r14_r13_r12_rbx:
|
||||
LFB4a:
|
||||
pushq %rbp
|
||||
LCFI38a:
|
||||
movq %rsp, %rbp
|
||||
LCFI39a:
|
||||
movq %r14, -32(%rbp)
|
||||
LCFI40a:
|
||||
movq %r13, -24(%rbp)
|
||||
LCFI41a:
|
||||
movq %r12, -16(%rbp)
|
||||
LCFI42a:
|
||||
movq %rbx, -8(%rbp)
|
||||
LCFI43a:
|
||||
subq $32, %rsp
|
||||
LCFI44a:
|
||||
movq $0, %r14
|
||||
movq $0, %r13
|
||||
movq $0, %r12
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
movq -32(%rbp), %r14
|
||||
movq -24(%rbp), %r13
|
||||
movq -16(%rbp), %r12
|
||||
movq -8(%rbp), %rbx
|
||||
leave
|
||||
ret
|
||||
LFE4a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15
|
||||
_test_rbx_r12_r13_r14_r15:
|
||||
LFB3:
|
||||
pushq %rbp
|
||||
LCFI45:
|
||||
movq %rsp, %rbp
|
||||
LCFI46:
|
||||
movq %rbx, -40(%rbp)
|
||||
LCFI47:
|
||||
movq %r12, -32(%rbp)
|
||||
LCFI48:
|
||||
movq %r13, -24(%rbp)
|
||||
LCFI49:
|
||||
movq %r14, -16(%rbp)
|
||||
LCFI50:
|
||||
movq %r15, -8(%rbp)
|
||||
LCFI51:
|
||||
subq $48, %rsp
|
||||
LCFI52:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq -40(%rbp), %rbx
|
||||
movq -32(%rbp), %r12
|
||||
movq -24(%rbp), %r13
|
||||
movq -16(%rbp), %r14
|
||||
movq -8(%rbp), %r15
|
||||
leave
|
||||
ret
|
||||
LFE3:
|
||||
|
||||
|
||||
.globl _test_r13_rbx_r14_r15_r12
|
||||
_test_r13_rbx_r14_r15_r12:
|
||||
LFB3a:
|
||||
pushq %rbp
|
||||
LCFI45a:
|
||||
movq %rsp, %rbp
|
||||
LCFI46a:
|
||||
movq %r13, -40(%rbp)
|
||||
LCFI47a:
|
||||
movq %rbx, -32(%rbp)
|
||||
LCFI48a:
|
||||
movq %r14, -24(%rbp)
|
||||
LCFI49a:
|
||||
movq %r15, -16(%rbp)
|
||||
LCFI50a:
|
||||
movq %r12, -8(%rbp)
|
||||
LCFI51a:
|
||||
subq $48, %rsp
|
||||
LCFI52a:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
movq $0, %r15
|
||||
call _uwind_to_main
|
||||
movq -40(%rbp), %r13
|
||||
movq -32(%rbp), %rbx
|
||||
movq -24(%rbp), %r14
|
||||
movq -16(%rbp), %r15
|
||||
movq -8(%rbp), %r12
|
||||
leave
|
||||
ret
|
||||
LFE3a:
|
||||
|
||||
|
||||
|
||||
#if USE_EH_FRAME
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0
|
||||
LSCIE1:
|
||||
.long 0x0
|
||||
.byte 0x1
|
||||
.ascii "zR\0"
|
||||
.byte 0x1
|
||||
.byte 0x78
|
||||
.byte 0x10
|
||||
.byte 0x1
|
||||
.byte 0x10
|
||||
.byte 0xc
|
||||
.byte 0x7
|
||||
.byte 0x8
|
||||
.byte 0x90
|
||||
.byte 0x1
|
||||
.align 3
|
||||
LECIE1:
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE3:
|
||||
.set L$set$5,LEFDE3-LASFDE3
|
||||
.long L$set$5
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1
|
||||
.quad LFB13-.
|
||||
.set L$set$6,LFE13-LFB13
|
||||
.quad L$set$6
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$7,LCFI2-LFB13
|
||||
.long L$set$7
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$8,LCFI3-LCFI2
|
||||
.long L$set$8
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.align 3
|
||||
LEFDE3:
|
||||
|
||||
.globl _test_rbx.eh
|
||||
_test_rbx.eh:
|
||||
LSFDE9:
|
||||
.set L$set$17,LEFDE9-LASFDE9
|
||||
.long L$set$17
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1
|
||||
.quad LFB10-.
|
||||
.set L$set$18,LFE10-LFB10
|
||||
.quad L$set$18
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$19,LCFI8-LFB10
|
||||
.long L$set$19
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$20,LCFI9-LCFI8
|
||||
.long L$set$20
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$21,LCFI11-LCFI9
|
||||
.long L$set$21
|
||||
.byte 0x83
|
||||
.byte 0x3
|
||||
.align 3
|
||||
LEFDE9:
|
||||
|
||||
.globl _test_rbx_r12.eh
|
||||
_test_rbx_r12.eh:
|
||||
LSFDE13:
|
||||
.set L$set$27,LEFDE13-LASFDE13
|
||||
.long L$set$27
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1
|
||||
.quad LFB8-.
|
||||
.set L$set$28,LFE8-LFB8
|
||||
.quad L$set$28
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$29,LCFI16-LFB8
|
||||
.long L$set$29
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$30,LCFI17-LCFI16
|
||||
.long L$set$30
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$31,LCFI20-LCFI17
|
||||
.long L$set$31
|
||||
.byte 0x8c
|
||||
.byte 0x3
|
||||
.byte 0x83
|
||||
.byte 0x4
|
||||
.align 3
|
||||
LEFDE13:
|
||||
|
||||
.globl _test_rbx_r14.eh
|
||||
_test_rbx_r14.eh:
|
||||
LSFDE13a:
|
||||
.set L$set$27a,LEFDE13a-LASFDE13a
|
||||
.long L$set$27a
|
||||
LASFDE13a:
|
||||
.long LASFDE13a-EH_frame1
|
||||
.quad LFB8a-.
|
||||
.set L$set$28a,LFE8a-LFB8a
|
||||
.quad L$set$28a
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$29a,LCFI16a-LFB8a
|
||||
.long L$set$29a
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$30a,LCFI17a-LCFI16a
|
||||
.long L$set$30a
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$31a,LCFI20a-LCFI17a
|
||||
.long L$set$31a
|
||||
.byte 0x8e
|
||||
.byte 0x3
|
||||
.byte 0x83
|
||||
.byte 0x4
|
||||
.align 3
|
||||
LEFDE13a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13.eh
|
||||
_test_rbx_r12_r13.eh:
|
||||
LSFDE17:
|
||||
.set L$set$37,LEFDE17-LASFDE17
|
||||
.long L$set$37
|
||||
LASFDE17:
|
||||
.long LASFDE17-EH_frame1
|
||||
.quad LFB6-.
|
||||
.set L$set$38,LFE6-LFB6
|
||||
.quad L$set$38
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$39,LCFI26-LFB6
|
||||
.long L$set$39
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$40,LCFI27-LCFI26
|
||||
.long L$set$40
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$41,LCFI31-LCFI27
|
||||
.long L$set$41
|
||||
.byte 0x8d
|
||||
.byte 0x3
|
||||
.byte 0x8c
|
||||
.byte 0x4
|
||||
.byte 0x83
|
||||
.byte 0x5
|
||||
.align 3
|
||||
LEFDE17:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14.eh
|
||||
_test_rbx_r12_r13_r14.eh:
|
||||
LSFDE21:
|
||||
.set L$set$47,LEFDE21-LASFDE21
|
||||
.long L$set$47
|
||||
LASFDE21:
|
||||
.long LASFDE21-EH_frame1
|
||||
.quad LFB4-.
|
||||
.set L$set$48,LFE4-LFB4
|
||||
.quad L$set$48
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$49,LCFI38-LFB4
|
||||
.long L$set$49
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$50,LCFI39-LCFI38
|
||||
.long L$set$50
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$51,LCFI44-LCFI39
|
||||
.long L$set$51
|
||||
.byte 0x8e
|
||||
.byte 0x3
|
||||
.byte 0x8d
|
||||
.byte 0x4
|
||||
.byte 0x8c
|
||||
.byte 0x5
|
||||
.byte 0x83
|
||||
.byte 0x6
|
||||
.align 3
|
||||
LEFDE21:
|
||||
|
||||
.globl _test_r14_r13_r12_rbx.eh
|
||||
_test_r14_r13_r12_rbx.eh:
|
||||
LSFDE21a:
|
||||
.set L$set$47a,LEFDE21a-LASFDE21a
|
||||
.long L$set$47a
|
||||
LASFDE21a:
|
||||
.long LASFDE21a-EH_frame1
|
||||
.quad LFB4a-.
|
||||
.set L$set$48a,LFE4a-LFB4a
|
||||
.quad L$set$48a
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$49a,LCFI38a-LFB4a
|
||||
.long L$set$49a
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$50a,LCFI39a-LCFI38a
|
||||
.long L$set$50a
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$51a,LCFI44a-LCFI39a
|
||||
.long L$set$51a
|
||||
.byte 0x8e
|
||||
.byte 0x6
|
||||
.byte 0x8d
|
||||
.byte 0x5
|
||||
.byte 0x8c
|
||||
.byte 0x4
|
||||
.byte 0x83
|
||||
.byte 0x3
|
||||
.align 3
|
||||
LEFDE21a:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15.eh
|
||||
_test_rbx_r12_r13_r14_r15.eh:
|
||||
LSFDE23:
|
||||
.set L$set$52,LEFDE23-LASFDE23
|
||||
.long L$set$52
|
||||
LASFDE23:
|
||||
.long LASFDE23-EH_frame1
|
||||
.quad LFB3-.
|
||||
.set L$set$53,LFE3-LFB3
|
||||
.quad L$set$53
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$54,LCFI45-LFB3
|
||||
.long L$set$54
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$55,LCFI46-LCFI45
|
||||
.long L$set$55
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$56,LCFI52-LCFI46
|
||||
.long L$set$56
|
||||
.byte 0x8f
|
||||
.byte 0x3
|
||||
.byte 0x8e
|
||||
.byte 0x4
|
||||
.byte 0x8d
|
||||
.byte 0x5
|
||||
.byte 0x8c
|
||||
.byte 0x6
|
||||
.byte 0x83
|
||||
.byte 0x7
|
||||
.align 3
|
||||
LEFDE23:
|
||||
|
||||
|
||||
.globl _test_r13_rbx_r14_r15_r12.eh
|
||||
_test_r13_rbx_r14_r15_r12.eh:
|
||||
LSFDE23a:
|
||||
.set L$set$52a,LEFDE23a-LASFDE23a
|
||||
.long L$set$52a
|
||||
LASFDE23a:
|
||||
.long LASFDE23a-EH_frame1
|
||||
.quad LFB3a-.
|
||||
.set L$set$53a,LFE3a-LFB3a
|
||||
.quad L$set$53a
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$54a,LCFI45a-LFB3a
|
||||
.long L$set$54a
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$55a,LCFI46a-LCFI45a
|
||||
.long L$set$55a
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$56a,LCFI52a-LCFI46a
|
||||
.long L$set$56a
|
||||
.byte 0x8c
|
||||
.byte 0x3
|
||||
.byte 0x8f
|
||||
.byte 0x4
|
||||
.byte 0x8e
|
||||
.byte 0x5
|
||||
.byte 0x83
|
||||
.byte 0x6
|
||||
.byte 0x8d
|
||||
.byte 0x7
|
||||
.align 3
|
||||
LEFDE23a:
|
||||
#endif // USE_EH_FRAME
|
||||
|
||||
|
||||
|
||||
#if USE_COMPACT_UNWIND
|
||||
|
||||
.section __LD,__compact_unwind,regular,debug
|
||||
|
||||
.quad _test_no_reg
|
||||
.set L101,LFE13-_test_no_reg
|
||||
.long L101
|
||||
.long 0x01000000
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_rbx
|
||||
.set L102,LFE10-_test_rbx
|
||||
.long L102
|
||||
.long 0x01010001
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_rbx_r12
|
||||
.set L103,LFE8-_test_rbx_r12
|
||||
.long L103
|
||||
.long 0x01020011
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_rbx_r14
|
||||
.set L104,LFE8a-_test_rbx_r14
|
||||
.long L104
|
||||
.long 0x01020021
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_rbx_r12_r13
|
||||
.set L105,LFE6-_test_rbx_r12_r13
|
||||
.long L105
|
||||
.long 0x010300D1
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_rbx_r12_r13_r14
|
||||
.set L106,LFE4-_test_rbx_r12_r13_r14
|
||||
.long L106
|
||||
.long 0x010408D1
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_r14_r13_r12_rbx
|
||||
.set L107,LFE4a-_test_r14_r13_r12_rbx
|
||||
.long L107
|
||||
.long 0x0104029C
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_rbx_r12_r13_r14_r15
|
||||
.set L108,LFE3-_test_rbx_r12_r13_r14_r15
|
||||
.long L108
|
||||
.long 0x010558D1
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
.quad _test_r13_rbx_r14_r15_r12
|
||||
.set L109,LFE3a-_test_r13_rbx_r14_r15_r12
|
||||
.long L109
|
||||
.long 0x01052B0B
|
||||
.quad 0
|
||||
.quad 0
|
||||
|
||||
#endif // USE_COMPACT_UNWIND
|
||||
|
||||
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,583 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.quad _test_no_reg
|
||||
.quad _test_rbx
|
||||
.quad _test_rbx_r12
|
||||
.quad _test_rbx_r12_r13
|
||||
.quad _test_rbx_r12_r13_r14
|
||||
.quad _test_rbx_r12_r13_r14_r15
|
||||
.quad _test_rbx_rbp
|
||||
.quad _test_rbx_rbp_r12
|
||||
.quad _test_rbx_rbp_r12_r13
|
||||
.quad _test_rbx_rbp_r12_r13_r14
|
||||
.quad _test_rbx_rbp_r12_r13_r14_r15
|
||||
.quad 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB13:
|
||||
subq $8, %rsp
|
||||
LCFI0:
|
||||
call _uwind_to_main
|
||||
addq $8, %rsp
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
.globl _test_rbx
|
||||
_test_rbx:
|
||||
LFB10:
|
||||
pushq %rbx
|
||||
LCFI3:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
popq %rbx
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_rbx_r12
|
||||
_test_rbx_r12:
|
||||
LFB8:
|
||||
movq %rbx, -16(%rsp)
|
||||
LCFI5:
|
||||
movq %r12, -8(%rsp)
|
||||
LCFI6:
|
||||
subq $24, %rsp
|
||||
LCFI7:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq 8(%rsp), %rbx
|
||||
movq 16(%rsp), %r12
|
||||
addq $24, %rsp
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp
|
||||
_test_rbx_rbp:
|
||||
LFB7:
|
||||
movq %rbx, -16(%rsp)
|
||||
LCFI8:
|
||||
movq %rbp, -8(%rsp)
|
||||
LCFI9:
|
||||
subq $24, %rsp
|
||||
LCFI10:
|
||||
movq $0, %rbp
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
movq 8(%rsp), %rbx
|
||||
movq 16(%rsp), %rbp
|
||||
addq $24, %rsp
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13
|
||||
_test_rbx_r12_r13:
|
||||
LFB6:
|
||||
movq %rbx, -24(%rsp)
|
||||
LCFI11:
|
||||
movq %r12, -16(%rsp)
|
||||
LCFI12:
|
||||
movq %r13, -8(%rsp)
|
||||
LCFI13:
|
||||
subq $24, %rsp
|
||||
LCFI14:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
movq 16(%rsp), %r13
|
||||
addq $24, %rsp
|
||||
ret
|
||||
LFE6:
|
||||
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14
|
||||
_test_rbx_r12_r13_r14:
|
||||
LFB4:
|
||||
movq %rbx, -32(%rsp)
|
||||
LCFI19:
|
||||
movq %r12, -24(%rsp)
|
||||
LCFI20:
|
||||
movq %r13, -16(%rsp)
|
||||
LCFI21:
|
||||
movq %r14, -8(%rsp)
|
||||
LCFI22:
|
||||
subq $40, %rsp
|
||||
LCFI23:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq 8(%rsp), %rbx
|
||||
movq 16(%rsp), %r12
|
||||
movq 24(%rsp), %r13
|
||||
movq 32(%rsp), %r14
|
||||
addq $40, %rsp
|
||||
ret
|
||||
LFE4:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15
|
||||
_test_rbx_r12_r13_r14_r15:
|
||||
LFB3:
|
||||
movq %rbx, -40(%rsp)
|
||||
LCFI24:
|
||||
movq %r12, -32(%rsp)
|
||||
LCFI25:
|
||||
movq %r13, -24(%rsp)
|
||||
LCFI26:
|
||||
movq %r14, -16(%rsp)
|
||||
LCFI27:
|
||||
movq %r15, -8(%rsp)
|
||||
LCFI28:
|
||||
subq $40, %rsp
|
||||
LCFI29:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
movq $0, %r15
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
movq 16(%rsp), %r13
|
||||
movq 24(%rsp), %r14
|
||||
movq 32(%rsp), %r15
|
||||
addq $40, %rsp
|
||||
ret
|
||||
LFE3:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14_r15
|
||||
_test_rbx_rbp_r12_r13_r14_r15:
|
||||
LFB2:
|
||||
movq %rbx, -48(%rsp)
|
||||
LCFI30:
|
||||
movq %rbp, -40(%rsp)
|
||||
LCFI31:
|
||||
movq %r12, -32(%rsp)
|
||||
LCFI32:
|
||||
movq %r13, -24(%rsp)
|
||||
LCFI33:
|
||||
movq %r14, -16(%rsp)
|
||||
LCFI34:
|
||||
movq %r15, -8(%rsp)
|
||||
LCFI35:
|
||||
subq $72, %rsp
|
||||
LCFI36:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
movq $0, %r15
|
||||
call _uwind_to_main
|
||||
movq 24(%rsp), %rbx
|
||||
movq 32(%rsp), %rbp
|
||||
movq 40(%rsp), %r12
|
||||
movq 48(%rsp), %r13
|
||||
movq 56(%rsp), %r14
|
||||
movq 64(%rsp), %r15
|
||||
addq $72, %rsp
|
||||
ret
|
||||
LFE2:
|
||||
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12
|
||||
_test_rbx_rbp_r12:
|
||||
LFB11:
|
||||
movq %rbx, -24(%rsp)
|
||||
movq %rbp, -16(%rsp)
|
||||
movq %r12, -8(%rsp)
|
||||
subq $24, %rsp
|
||||
LCFI11a:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %rbp
|
||||
movq 16(%rsp), %r12
|
||||
addq $24, %rsp
|
||||
ret
|
||||
LFE11:
|
||||
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13
|
||||
_test_rbx_rbp_r12_r13:
|
||||
LFB457:
|
||||
movq %rbx, -32(%rsp)
|
||||
movq %rbp, -24(%rsp)
|
||||
movq %r12, -16(%rsp)
|
||||
movq %r13, -8(%rsp)
|
||||
subq $40, %rsp
|
||||
LFB457a:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
call _uwind_to_main
|
||||
movq 8(%rsp), %rbx
|
||||
movq 16(%rsp), %rbp
|
||||
movq 24(%rsp), %r12
|
||||
movq 32(%rsp), %r13
|
||||
addq $40, %rsp
|
||||
ret
|
||||
LFE457:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14
|
||||
_test_rbx_rbp_r12_r13_r14:
|
||||
LFB17:
|
||||
movq %rbx, -40(%rsp)
|
||||
movq %rbp, -32(%rsp)
|
||||
movq %r12, -24(%rsp)
|
||||
movq %r13, -16(%rsp)
|
||||
movq %r14, -8(%rsp)
|
||||
subq $40, %rsp
|
||||
LFB17a:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %rbp
|
||||
movq 16(%rsp), %r12
|
||||
movq 24(%rsp), %r13
|
||||
movq 32(%rsp), %r14
|
||||
addq $40, %rsp
|
||||
ret
|
||||
LFE17:
|
||||
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x78 # sleb128 -8; CIE Data Alignment Factor
|
||||
.byte 0x10 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x7 # uleb128 0x7
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x90 # DW_CFA_offset, column 0x10
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 3
|
||||
LECIE1:
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE3:
|
||||
.set L$set$3,LEFDE3-LASFDE3
|
||||
.long L$set$3 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.quad LFB13-. # FDE initial location
|
||||
.set L$set$4,LFE13-LFB13
|
||||
.quad L$set$4 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$5,LCFI0-LFB13
|
||||
.long L$set$5
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x10 # uleb128 0x10
|
||||
.align 3
|
||||
LEFDE3:
|
||||
|
||||
.globl _test_rbx.eh
|
||||
_test_rbx.eh:
|
||||
LSFDE9:
|
||||
.set L$set$12,LEFDE9-LASFDE9
|
||||
.long L$set$12 # FDE Length
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1 # FDE CIE offset
|
||||
.quad LFB10-. # FDE initial location
|
||||
.set L$set$13,LFE10-LFB10
|
||||
.quad L$set$13 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14,LCFI3-LFB10
|
||||
.long L$set$14
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x10 # uleb128 0x10
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 3
|
||||
LEFDE9:
|
||||
|
||||
.globl _test_rbx_r12.eh
|
||||
_test_rbx_r12.eh:
|
||||
LSFDE13:
|
||||
.set L$set$18,LEFDE13-LASFDE13
|
||||
.long L$set$18 # FDE Length
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1 # FDE CIE offset
|
||||
.quad LFB8-. # FDE initial location
|
||||
.set L$set$19,LFE8-LFB8
|
||||
.quad L$set$19 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$20,LCFI7-LFB8
|
||||
.long L$set$20
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 3
|
||||
LEFDE13:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp.eh
|
||||
_test_rbx_rbp.eh:
|
||||
LSFDE14:
|
||||
.set L$set$21,LEFDE14-LASFDE14
|
||||
.long L$set$21 # FDE Length
|
||||
LASFDE14:
|
||||
.long LASFDE14-EH_frame1 # FDE CIE offset
|
||||
.quad LFB7-. # FDE initial location
|
||||
.set L$set$22,LFE7-LFB7
|
||||
.quad L$set$22 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23,LCFI10-LFB7
|
||||
.long L$set$23
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 3
|
||||
LEFDE14:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13.eh
|
||||
_test_rbx_r12_r13.eh:
|
||||
LSFDE17:
|
||||
.set L$set$24,LEFDE17-LASFDE17
|
||||
.long L$set$24 # FDE Length
|
||||
LASFDE17:
|
||||
.long LASFDE17-EH_frame1 # FDE CIE offset
|
||||
.quad LFB6-. # FDE initial location
|
||||
.set L$set$25,LFE6-LFB6
|
||||
.quad L$set$25 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$26,LCFI14-LFB6
|
||||
.long L$set$26
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 3
|
||||
LEFDE17:
|
||||
|
||||
.globl _test_rbx_r12_r13_r14.eh
|
||||
_test_rbx_r12_r13_r14.eh:
|
||||
LSFDE21:
|
||||
.set L$set$30,LEFDE21-LASFDE21
|
||||
.long L$set$30 # FDE Length
|
||||
LASFDE21:
|
||||
.long LASFDE21-EH_frame1 # FDE CIE offset
|
||||
.quad LFB4-. # FDE initial location
|
||||
.set L$set$31,LFE4-LFB4
|
||||
.quad L$set$31 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32,LCFI23-LFB4
|
||||
.long L$set$32
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x30 # uleb128 0x30
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 3
|
||||
LEFDE21:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15.eh
|
||||
_test_rbx_r12_r13_r14_r15.eh:
|
||||
LSFDE23:
|
||||
.set L$set$33,LEFDE23-LASFDE23
|
||||
.long L$set$33 # FDE Length
|
||||
LASFDE23:
|
||||
.long LASFDE23-EH_frame1 # FDE CIE offset
|
||||
.quad LFB3-. # FDE initial location
|
||||
.set L$set$34,LFE3-LFB3
|
||||
.quad L$set$34 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$35,LCFI29-LFB3
|
||||
.long L$set$35
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x30 # uleb128 0x30
|
||||
.byte 0x8f # DW_CFA_offset, column 0xf
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.align 3
|
||||
LEFDE23:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14_r15.eh
|
||||
_test_rbx_rbp_r12_r13_r14_r15.eh:
|
||||
LSFDE25:
|
||||
.set L$set$36,LEFDE25-LASFDE25
|
||||
.long L$set$36 # FDE Length
|
||||
LASFDE25:
|
||||
.long LASFDE25-EH_frame1 # FDE CIE offset
|
||||
.quad LFB2-. # FDE initial location
|
||||
.set L$set$37,LFE2-LFB2
|
||||
.quad L$set$37 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$38,LCFI36-LFB2
|
||||
.long L$set$38
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x50 # uleb128 0x50
|
||||
.byte 0x8f # DW_CFA_offset, column 0xf
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x7 # uleb128 0x7
|
||||
.align 3
|
||||
LEFDE25:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12.eh
|
||||
_test_rbx_rbp_r12.eh:
|
||||
LSFDE11:
|
||||
.set L$set$24a,LEFDE11-LASFDE11
|
||||
.long L$set$24a # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.quad LFB11-. # FDE initial location
|
||||
.set L$set$25a,LFE11-LFB11
|
||||
.quad L$set$25a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$26a,LCFI11a-LFB11
|
||||
.long L$set$26a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 3
|
||||
LEFDE11:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13.eh
|
||||
_test_rbx_rbp_r12_r13.eh:
|
||||
.set L$set$30a,LEFDE457-LASFDE457
|
||||
.long L$set$30a # FDE Length
|
||||
LASFDE457:
|
||||
.long LASFDE457-EH_frame1 # FDE CIE offset
|
||||
.quad LFB457-. # FDE initial location
|
||||
.set L$set$31a,LFE457-LFB457
|
||||
.quad L$set$31a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32a,LCFI23-LFB4
|
||||
.long L$set$32a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x30 # uleb128 0x30
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 3
|
||||
LEFDE457:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14.eh
|
||||
_test_rbx_rbp_r12_r13_r14.eh:
|
||||
.set L$set$33a,LEFDE117-LASFDE117
|
||||
.long L$set$33a # FDE Length
|
||||
LASFDE117:
|
||||
.long LASFDE117-EH_frame1 # FDE CIE offset
|
||||
.quad LFB17-. # FDE initial location
|
||||
.set L$set$34a,LFE17-LFB17
|
||||
.quad L$set$34a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$35a,LCFI29-LFB3
|
||||
.long L$set$35a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x30 # uleb128 0x30
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.align 3
|
||||
LEFDE117:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,598 @@
|
|||
|
||||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.quad _test_no_reg
|
||||
.quad _test_rbx
|
||||
.quad _test_rbx_r12
|
||||
.quad _test_rbx_r12_r13
|
||||
.quad _test_rbx_r12_r13_r14
|
||||
.quad _test_rbx_r12_r13_r14_r15
|
||||
.quad _test_rbx_rbp
|
||||
.quad _test_rbx_rbp_r12
|
||||
.quad _test_rbx_rbp_r12_r13
|
||||
.quad _test_rbx_rbp_r12_r13_r14
|
||||
.quad _test_rbx_rbp_r12_r13_r14_r15
|
||||
.quad 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB13:
|
||||
subq $160008, %rsp
|
||||
LCFI0:
|
||||
call _uwind_to_main
|
||||
addq $160008, %rsp
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
|
||||
.globl _test_rbx
|
||||
_test_rbx:
|
||||
LFB10:
|
||||
pushq %rbx
|
||||
LCFI3:
|
||||
subq $160000, %rsp
|
||||
LCFI4:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
addq $160000, %rsp
|
||||
popq %rbx
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_rbx_r12
|
||||
_test_rbx_r12:
|
||||
LFB8:
|
||||
movq %rbx, -16(%rsp)
|
||||
LCFI7:
|
||||
movq %r12, -8(%rsp)
|
||||
LCFI8:
|
||||
subq $160024, %rsp
|
||||
LCFI9:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq 160008(%rsp), %rbx
|
||||
movq 160016(%rsp), %r12
|
||||
addq $160024, %rsp
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp
|
||||
_test_rbx_rbp:
|
||||
LFB7:
|
||||
movq %rbx, -16(%rsp)
|
||||
LCFI10:
|
||||
movq %rbp, -8(%rsp)
|
||||
LCFI11:
|
||||
subq $160024, %rsp
|
||||
LCFI12:
|
||||
movq $0, %rbp
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
movq 160008(%rsp), %rbx
|
||||
movq 160016(%rsp), %rbp
|
||||
addq $160024, %rsp
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13
|
||||
_test_rbx_r12_r13:
|
||||
LFB6:
|
||||
movq %rbx, -24(%rsp)
|
||||
LCFI13:
|
||||
movq %r12, -16(%rsp)
|
||||
LCFI14:
|
||||
movq %r13, -8(%rsp)
|
||||
LCFI15:
|
||||
subq $160024, %rsp
|
||||
LCFI16:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
call _uwind_to_main
|
||||
movq 160000(%rsp), %rbx
|
||||
movq 160008(%rsp), %r12
|
||||
movq 160016(%rsp), %r13
|
||||
addq $160024, %rsp
|
||||
ret
|
||||
LFE6:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12
|
||||
_test_rbx_rbp_r12:
|
||||
LFB9:
|
||||
movq %rbx, -24(%rsp)
|
||||
movq %rbp, -16(%rsp)
|
||||
movq %r12, -8(%rsp)
|
||||
subq $160024, %rsp
|
||||
LCFI9a:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq 160000(%rsp), %rbx
|
||||
movq 160008(%rsp), %rbp
|
||||
movq 160016(%rsp), %r12
|
||||
addq $160024, %rsp
|
||||
ret
|
||||
LFE9:
|
||||
|
||||
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14
|
||||
_test_rbx_r12_r13_r14:
|
||||
LFB4:
|
||||
movq %rbx, -32(%rsp)
|
||||
LCFI21:
|
||||
movq %r12, -24(%rsp)
|
||||
LCFI22:
|
||||
movq %r13, -16(%rsp)
|
||||
LCFI23:
|
||||
movq %r14, -8(%rsp)
|
||||
LCFI24:
|
||||
subq $160040, %rsp
|
||||
LCFI25:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq 160008(%rsp), %rbx
|
||||
movq 160016(%rsp), %r12
|
||||
movq 160024(%rsp), %r13
|
||||
movq 160032(%rsp), %r14
|
||||
addq $160040, %rsp
|
||||
ret
|
||||
LFE4:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15
|
||||
_test_rbx_r12_r13_r14_r15:
|
||||
LFB3:
|
||||
movq %rbx, -40(%rsp)
|
||||
LCFI26:
|
||||
movq %r12, -32(%rsp)
|
||||
LCFI27:
|
||||
movq %r13, -24(%rsp)
|
||||
LCFI28:
|
||||
movq %r14, -16(%rsp)
|
||||
LCFI29:
|
||||
movq %r15, -8(%rsp)
|
||||
LCFI30:
|
||||
subq $160040, %rsp
|
||||
LCFI31:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
movq $0, %r15
|
||||
call _uwind_to_main
|
||||
movq 160000(%rsp), %rbx
|
||||
movq 160008(%rsp), %r12
|
||||
movq 160016(%rsp), %r13
|
||||
movq 160024(%rsp), %r14
|
||||
movq 160032(%rsp), %r15
|
||||
addq $160040, %rsp
|
||||
ret
|
||||
LFE3:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14_r15
|
||||
_test_rbx_rbp_r12_r13_r14_r15:
|
||||
LFB2:
|
||||
movq %rbx, -48(%rsp)
|
||||
LCFI32:
|
||||
movq %rbp, -40(%rsp)
|
||||
LCFI33:
|
||||
movq %r12, -32(%rsp)
|
||||
LCFI34:
|
||||
movq %r13, -24(%rsp)
|
||||
LCFI35:
|
||||
movq %r14, -16(%rsp)
|
||||
LCFI36:
|
||||
movq %r15, -8(%rsp)
|
||||
LCFI37:
|
||||
subq $160072, %rsp
|
||||
LCFI38:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
movq $0, %r15
|
||||
call _uwind_to_main
|
||||
movq 160024(%rsp), %rbx
|
||||
movq 160032(%rsp), %rbp
|
||||
movq 160040(%rsp), %r12
|
||||
movq 160048(%rsp), %r13
|
||||
movq 160056(%rsp), %r14
|
||||
movq 160064(%rsp), %r15
|
||||
addq $160072, %rsp
|
||||
ret
|
||||
LFE2:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13
|
||||
_test_rbx_rbp_r12_r13:
|
||||
LFB457:
|
||||
movq %rbx, -32(%rsp)
|
||||
LCFI18:
|
||||
movq %rbp, -24(%rsp)
|
||||
LCFI19:
|
||||
movq %r12, -16(%rsp)
|
||||
movq %r13, -8(%rsp)
|
||||
subq $160040, %rsp
|
||||
LCFI20:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
call _uwind_to_main
|
||||
movq 160008(%rsp), %rbx
|
||||
movq 160016(%rsp), %rbp
|
||||
movq 160024(%rsp), %r12
|
||||
movq 160032(%rsp), %r13
|
||||
addq $160040, %rsp
|
||||
ret
|
||||
LFE457:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14
|
||||
_test_rbx_rbp_r12_r13_r14:
|
||||
LFB17:
|
||||
movq %rbx, -40(%rsp)
|
||||
movq %rbp, -32(%rsp)
|
||||
movq %r12, -24(%rsp)
|
||||
movq %r13, -16(%rsp)
|
||||
movq %r14, -8(%rsp)
|
||||
subq $160040, %rsp
|
||||
LFB17a:
|
||||
movq $0, %rbx
|
||||
movq $0, %rbp
|
||||
movq $0, %r12
|
||||
movq $0, %r13
|
||||
movq $0, %r14
|
||||
call _uwind_to_main
|
||||
movq 160000(%rsp), %rbx
|
||||
movq 160008(%rsp), %rbp
|
||||
movq 160016(%rsp), %r12
|
||||
movq 160024(%rsp), %r13
|
||||
movq 160032(%rsp), %r14
|
||||
addq $160040, %rsp
|
||||
ret
|
||||
LFE17:
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x78 # sleb128 -8; CIE Data Alignment Factor
|
||||
.byte 0x10 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x7 # uleb128 0x7
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x90 # DW_CFA_offset, column 0x10
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 3
|
||||
LECIE1:
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE3:
|
||||
.set L$set$3,LEFDE3-LASFDE3
|
||||
.long L$set$3 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.quad LFB13-. # FDE initial location
|
||||
.set L$set$4,LFE13-LFB13
|
||||
.quad L$set$4 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$5,LCFI0-LFB13
|
||||
.long L$set$5
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x90,0xe2,0x9 # uleb128 0x27110
|
||||
.align 3
|
||||
LEFDE3:
|
||||
|
||||
|
||||
.globl _test_rbx.eh
|
||||
_test_rbx.eh:
|
||||
LSFDE9:
|
||||
.set L$set$12,LEFDE9-LASFDE9
|
||||
.long L$set$12 # FDE Length
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1 # FDE CIE offset
|
||||
.quad LFB10-. # FDE initial location
|
||||
.set L$set$13,LFE10-LFB10
|
||||
.quad L$set$13 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14,LCFI3-LFB10
|
||||
.long L$set$14
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x10 # uleb128 0x10
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$15,LCFI4-LCFI3
|
||||
.long L$set$15
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x90,0xe2,0x9 # uleb128 0x27110
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 3
|
||||
LEFDE9:
|
||||
|
||||
|
||||
.globl _test_rbx_r12.eh
|
||||
_test_rbx_r12.eh:
|
||||
LSFDE13:
|
||||
.set L$set$20,LEFDE13-LASFDE13
|
||||
.long L$set$20 # FDE Length
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1 # FDE CIE offset
|
||||
.quad LFB8-. # FDE initial location
|
||||
.set L$set$21,LFE8-LFB8
|
||||
.quad L$set$21 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22,LCFI9-LFB8
|
||||
.long L$set$22
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xe2,0x9 # uleb128 0x27120
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 3
|
||||
LEFDE13:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp.eh
|
||||
_test_rbx_rbp.eh:
|
||||
LSFDE14:
|
||||
.set L$set$23,LEFDE14-LASFDE14
|
||||
.long L$set$23 # FDE Length
|
||||
LASFDE14:
|
||||
.long LASFDE14-EH_frame1 # FDE CIE offset
|
||||
.quad LFB7-. # FDE initial location
|
||||
.set L$set$24,LFE7-LFB7
|
||||
.quad L$set$24 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$25,LCFI12-LFB7
|
||||
.long L$set$25
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xe2,0x9 # uleb128 0x27120
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 3
|
||||
LEFDE14:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13.eh
|
||||
_test_rbx_r12_r13.eh:
|
||||
LSFDE17:
|
||||
.set L$set$26,LEFDE17-LASFDE17
|
||||
.long L$set$26 # FDE Length
|
||||
LASFDE17:
|
||||
.long LASFDE17-EH_frame1 # FDE CIE offset
|
||||
.quad LFB6-. # FDE initial location
|
||||
.set L$set$27,LFE6-LFB6
|
||||
.quad L$set$27 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$28,LCFI16-LFB6
|
||||
.long L$set$28
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xe2,0x9 # uleb128 0x27120
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 3
|
||||
LEFDE17:
|
||||
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14.eh
|
||||
_test_rbx_r12_r13_r14.eh:
|
||||
LSFDE21:
|
||||
.set L$set$32,LEFDE21-LASFDE21
|
||||
.long L$set$32 # FDE Length
|
||||
LASFDE21:
|
||||
.long LASFDE21-EH_frame1 # FDE CIE offset
|
||||
.quad LFB4-. # FDE initial location
|
||||
.set L$set$33,LFE4-LFB4
|
||||
.quad L$set$33 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34,LCFI25-LFB4
|
||||
.long L$set$34
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xb0,0xe2,0x9 # uleb128 0x27130
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 3
|
||||
LEFDE21:
|
||||
|
||||
|
||||
.globl _test_rbx_r12_r13_r14_r15.eh
|
||||
_test_rbx_r12_r13_r14_r15.eh:
|
||||
LSFDE23:
|
||||
.set L$set$35,LEFDE23-LASFDE23
|
||||
.long L$set$35 # FDE Length
|
||||
LASFDE23:
|
||||
.long LASFDE23-EH_frame1 # FDE CIE offset
|
||||
.quad LFB3-. # FDE initial location
|
||||
.set L$set$36,LFE3-LFB3
|
||||
.quad L$set$36 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$37,LCFI31-LFB3
|
||||
.long L$set$37
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xb0,0xe2,0x9 # uleb128 0x27130
|
||||
.byte 0x8f # DW_CFA_offset, column 0xf
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.align 3
|
||||
LEFDE23:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14_r15.eh
|
||||
_test_rbx_rbp_r12_r13_r14_r15.eh:
|
||||
LSFDE25:
|
||||
.set L$set$38,LEFDE25-LASFDE25
|
||||
.long L$set$38 # FDE Length
|
||||
LASFDE25:
|
||||
.long LASFDE25-EH_frame1 # FDE CIE offset
|
||||
.quad LFB2-. # FDE initial location
|
||||
.set L$set$39,LFE2-LFB2
|
||||
.quad L$set$39 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$40,LCFI38-LFB2
|
||||
.long L$set$40
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xd0,0xe2,0x9 # uleb128 0x27150
|
||||
.byte 0x8f # DW_CFA_offset, column 0xf
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x7 # uleb128 0x7
|
||||
.align 3
|
||||
LEFDE25:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13.eh
|
||||
_test_rbx_rbp_r12_r13.eh:
|
||||
LSFDE11:
|
||||
.set L$set$17a,LEFDE11-LASFDE11
|
||||
.long L$set$17a # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.quad LFB457-. # FDE initial location
|
||||
.set L$set$18a,LFE457-LFB457
|
||||
.quad L$set$18a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19a,LCFI20-LFB457
|
||||
.long L$set$19a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xb0,0xe2,0x9 # uleb128 0x27130
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 3
|
||||
LEFDE11:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12_r13_r14.eh
|
||||
_test_rbx_rbp_r12_r13_r14.eh:
|
||||
LSFDE7:
|
||||
.set L$set$35a,LEFDE7-LASFDE7
|
||||
.long L$set$35a # FDE Length
|
||||
LASFDE7:
|
||||
.long LASFDE7-EH_frame1 # FDE CIE offset
|
||||
.quad LFB17-. # FDE initial location
|
||||
.set L$set$36a,LFE17-LFB17
|
||||
.quad L$set$36a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$37a,LFB17a-LFB17
|
||||
.long L$set$37a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xb0,0xe2,0x9 # uleb128 0x27130
|
||||
.byte 0x8e # DW_CFA_offset, column 0xe
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x8d # DW_CFA_offset, column 0xd
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x6 # uleb128 0x6
|
||||
.align 3
|
||||
LEFDE7:
|
||||
|
||||
|
||||
.globl _test_rbx_rbp_r12.eh
|
||||
_test_rbx_rbp_r12.eh:
|
||||
LSFDE19:
|
||||
.set L$set$26a,LEFDE19-LASFDE19
|
||||
.long L$set$26a # FDE Length
|
||||
LASFDE19:
|
||||
.long LASFDE19-EH_frame1 # FDE CIE offset
|
||||
.quad LFB9-. # FDE initial location
|
||||
.set L$set$27a,LFE9-LFB9
|
||||
.quad L$set$27a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$28a,LCFI9a-LFB9
|
||||
.long L$set$28a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xe2,0x9 # uleb128 0x27120
|
||||
.byte 0x8c # DW_CFA_offset, column 0xc
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 3
|
||||
LEFDE19:
|
||||
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,311 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind
|
||||
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.quad _test_no_reg
|
||||
.quad Ltest_rbx
|
||||
.quad _test_rbx_pad_r12
|
||||
.quad _test_rbx_same_value
|
||||
.quad _test_rbx_same_register
|
||||
.quad 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
.globl _test_big_frameless_stack_odd_dwarf
|
||||
_test_big_frameless_stack_odd_dwarf:
|
||||
L100:
|
||||
subq $160016, %rsp
|
||||
L102:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
addq $160016, %rsp
|
||||
ret
|
||||
L103:
|
||||
|
||||
|
||||
LFE14:
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB13:
|
||||
pushq %rbp
|
||||
LCFI2:
|
||||
movq %rsp, %rbp
|
||||
LCFI3:
|
||||
call _uwind_to_main
|
||||
leave
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
Ltest_rbx:
|
||||
LFB10:
|
||||
pushq %rbp
|
||||
LCFI8:
|
||||
movq %rsp, %rbp
|
||||
LCFI9:
|
||||
pushq %rbx
|
||||
LCFI10:
|
||||
subq $8, %rsp
|
||||
LCFI11:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
addq $8, %rsp
|
||||
popq %rbx
|
||||
leave
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_rbx_pad_r12
|
||||
_test_rbx_pad_r12:
|
||||
LFB8:
|
||||
pushq %rbp
|
||||
LCFI16:
|
||||
movq %rsp, %rbp
|
||||
LCFI17:
|
||||
movq %rbx, -56(%rbp)
|
||||
LCFI18:
|
||||
movq %r12, -8(%rbp)
|
||||
LCFI19:
|
||||
subq $64, %rsp
|
||||
LCFI20:
|
||||
movq $0, %rbx
|
||||
movq $0, %r12
|
||||
call _uwind_to_main
|
||||
movq (%rsp), %rbx
|
||||
movq 8(%rsp), %r12
|
||||
leave
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
.globl _test_rbx_same_value
|
||||
_test_rbx_same_value:
|
||||
LFB10b:
|
||||
jmp L33
|
||||
pushq %rbx
|
||||
LCFI3b:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
popq %rbx
|
||||
ret
|
||||
L33:
|
||||
pushq $0
|
||||
call _uwind_to_main
|
||||
popq %rax
|
||||
ret
|
||||
LFE10b:
|
||||
|
||||
|
||||
.globl _test_rbx_same_register
|
||||
_test_rbx_same_register:
|
||||
LFB10c:
|
||||
jmp L34
|
||||
pushq %rbx
|
||||
LCFI3c:
|
||||
movq $0, %rbx
|
||||
call _uwind_to_main
|
||||
popq %rbx
|
||||
ret
|
||||
L34:
|
||||
pushq $0
|
||||
call _uwind_to_main
|
||||
popq %rax
|
||||
ret
|
||||
LFE10c:
|
||||
|
||||
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0
|
||||
LSCIE1:
|
||||
.long 0x0
|
||||
.byte 0x1
|
||||
.ascii "zR\0"
|
||||
.byte 0x1
|
||||
.byte 0x78
|
||||
.byte 0x10
|
||||
.byte 0x1
|
||||
.byte 0x10
|
||||
.byte 0xc
|
||||
.byte 0x7
|
||||
.byte 0x8
|
||||
.byte 0x90
|
||||
.byte 0x1
|
||||
.align 3
|
||||
LECIE1:
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE3:
|
||||
.set L$set$5,LEFDE3-LASFDE3
|
||||
.long L$set$5
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1
|
||||
.quad LFB13-.
|
||||
.set L$set$6,LFE13-LFB13
|
||||
.quad L$set$6
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$7,LCFI2-LFB13
|
||||
.long L$set$7
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$8,LCFI3-LCFI2
|
||||
.long L$set$8
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.align 3
|
||||
LEFDE3:
|
||||
|
||||
Ltest_rbx.eh:
|
||||
LSFDE9:
|
||||
.set L$set$17,LEFDE9-LASFDE9
|
||||
.long L$set$17
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1
|
||||
.quad LFB10-.
|
||||
.set L$set$18,LFE10-LFB10
|
||||
.quad L$set$18
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$19,LCFI8-LFB10
|
||||
.long L$set$19
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$20,LCFI9-LCFI8
|
||||
.long L$set$20
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$21,LCFI11-LCFI9
|
||||
.long L$set$21
|
||||
.byte 0x83
|
||||
.byte 0x3
|
||||
.align 3
|
||||
LEFDE9:
|
||||
|
||||
.globl _test_rbx_pad_r12.eh
|
||||
_test_rbx_pad_r12.eh:
|
||||
LSFDE13:
|
||||
.set L$set$27,LEFDE13-LASFDE13
|
||||
.long L$set$27
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1
|
||||
.quad LFB8-.
|
||||
.set L$set$28,LFE8-LFB8
|
||||
.quad L$set$28
|
||||
.byte 0x0
|
||||
.byte 0x4
|
||||
.set L$set$29,LCFI16-LFB8
|
||||
.long L$set$29
|
||||
.byte 0xe
|
||||
.byte 0x10
|
||||
.byte 0x86
|
||||
.byte 0x2
|
||||
.byte 0x4
|
||||
.set L$set$30,LCFI17-LCFI16
|
||||
.long L$set$30
|
||||
.byte 0xd
|
||||
.byte 0x6
|
||||
.byte 0x4
|
||||
.set L$set$31,LCFI20-LCFI17
|
||||
.long L$set$31
|
||||
.byte 0x8c
|
||||
.byte 0x3
|
||||
.byte 0x83
|
||||
.byte 0x9
|
||||
.align 3
|
||||
LEFDE13:
|
||||
|
||||
|
||||
|
||||
.globl _test_big_frameless_stack_odd_dwarf.eh
|
||||
_test_big_frameless_stack_odd_dwarf.eh:
|
||||
.set L$set$12a,LEFDE9a-LASFDE9a
|
||||
.long L$set$12a # FDE Length
|
||||
LASFDE9a:
|
||||
.long LASFDE9a-EH_frame1 # FDE CIE offset
|
||||
.quad L100-. # FDE initial location
|
||||
.set L$set$13a,L103-L100
|
||||
.quad L$set$13a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.long 7
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x07 # uleb128 7
|
||||
.byte 0x90,0xe2,0x9 # uleb128 0x27110
|
||||
.align 3
|
||||
LEFDE9a:
|
||||
|
||||
|
||||
.globl _test_rbx_same_value.eh
|
||||
_test_rbx_same_value.eh:
|
||||
LSFDE9b:
|
||||
.set L$set$12,LEFDE9b-LASFDE9b
|
||||
.long L$set$12 # FDE Length
|
||||
LASFDE9b:
|
||||
.long LASFDE9b-EH_frame1 # FDE CIE offset
|
||||
.quad LFB10b-. # FDE initial location
|
||||
.set L$set$13,LFE10b-LFB10b
|
||||
.quad L$set$13 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14,LCFI3b-LFB10b
|
||||
.long L$set$14
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x10 # uleb128 0x10
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$15,L33-LCFI3b
|
||||
.long L$set$15
|
||||
.byte 0x08 # DW_CFA_same_value
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 3
|
||||
LEFDE9b:
|
||||
|
||||
|
||||
.globl _test_rbx_same_register.eh
|
||||
_test_rbx_same_register.eh:
|
||||
LSFDE9c:
|
||||
.set L$set$12c,LEFDE9c-LASFDE9c
|
||||
.long L$set$12c # FDE Length
|
||||
LASFDE9c:
|
||||
.long LASFDE9c-EH_frame1 # FDE CIE offset
|
||||
.quad LFB10c-. # FDE initial location
|
||||
.set L$set$16c,LFE10c-LFB10c
|
||||
.quad L$set$16c # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$17c,LCFI3c-LFB10c
|
||||
.long L$set$17c
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x10 # uleb128 0x10
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18c,L34-LCFI3c
|
||||
.long L$set$18c
|
||||
.byte 0x09 # DW_CFA_register
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 3
|
||||
LEFDE9c:
|
||||
|
||||
|
|
@ -0,0 +1,589 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.long _test_no_reg
|
||||
.long _test_ebx
|
||||
.long _test_esi
|
||||
.long _test_edi
|
||||
.long _test_ebx_esi
|
||||
.long _test_esi_edi
|
||||
.long _test_ebx_edi
|
||||
.long _test_ebx_esi_edi
|
||||
.long _test_edi_esi_ebx
|
||||
.long _test_pad_ebx_edi
|
||||
.long 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
.globl _test_ebx
|
||||
_test_ebx:
|
||||
LFB13:
|
||||
pushl %ebp
|
||||
LCFI2:
|
||||
movl %esp, %ebp
|
||||
LCFI3:
|
||||
pushl %ebx
|
||||
LCFI4:
|
||||
subl $20, %esp
|
||||
LCFI5:
|
||||
movl $0, %ebx
|
||||
call _uwind_to_main
|
||||
addl $20, %esp
|
||||
popl %ebx
|
||||
leave
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB12:
|
||||
pushl %ebp
|
||||
LCFI6:
|
||||
movl %esp, %ebp
|
||||
LCFI7:
|
||||
subl $24, %esp
|
||||
LCFI8:
|
||||
call _uwind_to_main
|
||||
leave
|
||||
ret
|
||||
LFE12:
|
||||
|
||||
.globl _test_esi
|
||||
_test_esi:
|
||||
LFB10:
|
||||
pushl %ebp
|
||||
LCFI13:
|
||||
movl %esp, %ebp
|
||||
LCFI14:
|
||||
pushl %esi
|
||||
LCFI15:
|
||||
subl $20, %esp
|
||||
LCFI16:
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
addl $20, %esp
|
||||
popl %esi
|
||||
leave
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
.globl _test_edi
|
||||
_test_edi:
|
||||
LFB11:
|
||||
pushl %ebp
|
||||
LCFI9:
|
||||
movl %esp, %ebp
|
||||
LCFI10:
|
||||
pushl %edi
|
||||
LCFI11:
|
||||
subl $20, %esp
|
||||
LCFI12:
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
addl $20, %esp
|
||||
popl %edi
|
||||
leave
|
||||
ret
|
||||
LFE11:
|
||||
|
||||
.globl _test_ebx_esi
|
||||
_test_ebx_esi:
|
||||
LFB9:
|
||||
pushl %ebp
|
||||
LCFI17:
|
||||
movl %esp, %ebp
|
||||
LCFI18:
|
||||
subl $24, %esp
|
||||
LCFI19:
|
||||
movl %ebx, -8(%ebp)
|
||||
LCFI20:
|
||||
movl %esi, -4(%ebp)
|
||||
LCFI21:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -8(%ebp), %ebx
|
||||
movl -4(%ebp), %esi
|
||||
leave
|
||||
ret
|
||||
LFE9:
|
||||
|
||||
|
||||
.globl _test_esi_edi
|
||||
_test_esi_edi:
|
||||
LFB8:
|
||||
pushl %ebp
|
||||
LCFI22:
|
||||
movl %esp, %ebp
|
||||
LCFI23:
|
||||
subl $24, %esp
|
||||
LCFI24:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI25:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI26:
|
||||
movl $0, %edi
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
.globl _test_ebx_edi
|
||||
_test_ebx_edi:
|
||||
LFB91:
|
||||
pushl %ebp
|
||||
LCFI171:
|
||||
movl %esp, %ebp
|
||||
LCFI181:
|
||||
subl $24, %esp
|
||||
LCFI191:
|
||||
movl %ebx, -8(%ebp)
|
||||
LCFI201:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI211:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -8(%ebp), %ebx
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE91:
|
||||
|
||||
.globl _test_ebx_esi_edi
|
||||
_test_ebx_esi_edi:
|
||||
LFB7:
|
||||
pushl %ebp
|
||||
LCFI27:
|
||||
movl %esp, %ebp
|
||||
LCFI28:
|
||||
subl $40, %esp
|
||||
LCFI29:
|
||||
movl %ebx, -12(%ebp)
|
||||
LCFI30:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI31:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI32:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -12(%ebp), %ebx
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.globl _test_edi_esi_ebx
|
||||
_test_edi_esi_ebx:
|
||||
LFB7a:
|
||||
pushl %ebp
|
||||
LCFI27a:
|
||||
movl %esp, %ebp
|
||||
LCFI28a:
|
||||
subl $40, %esp
|
||||
LCFI29a:
|
||||
movl %edi, -12(%ebp)
|
||||
LCFI30a:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI31a:
|
||||
movl %ebx, -4(%ebp)
|
||||
LCFI32a:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -12(%ebp), %edi
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %ebx
|
||||
leave
|
||||
ret
|
||||
LFE7a:
|
||||
|
||||
|
||||
|
||||
.globl _test_pad_ebx_edi
|
||||
_test_pad_ebx_edi:
|
||||
LFB91a:
|
||||
pushl %ebp
|
||||
LCFI171a:
|
||||
movl %esp, %ebp
|
||||
LCFI181a:
|
||||
subl $88, %esp
|
||||
LCFI191a:
|
||||
movl %ebx, -72(%ebp)
|
||||
LCFI201a:
|
||||
movl %edi, -68(%ebp)
|
||||
LCFI211a:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -72(%ebp), %ebx
|
||||
movl -68(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE91a:
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x7c # sleb128 -4; CIE Data Alignment Factor
|
||||
.byte 0x8 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8 // duplicate save in CIE means disable compact unwind encoding
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 2
|
||||
LECIE1:
|
||||
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE5:
|
||||
.set L$set$6,LEFDE5-LASFDE5
|
||||
.long L$set$6 # FDE Length
|
||||
LASFDE5:
|
||||
.long LASFDE5-EH_frame1 # FDE CIE offset
|
||||
.long LFB12-. # FDE initial location
|
||||
.set L$set$7,LFE12-LFB12
|
||||
.long L$set$7 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$8,LCFI6-LFB12
|
||||
.long L$set$8
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$9,LCFI7-LCFI6
|
||||
.long L$set$9
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE5:
|
||||
|
||||
|
||||
.globl _test_ebx.eh
|
||||
_test_ebx.eh:
|
||||
LSFDE3:
|
||||
.set L$set$1,LEFDE3-LASFDE3
|
||||
.long L$set$1 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.long LFB13-. # FDE initial location
|
||||
.set L$set$2,LFE13-LFB13
|
||||
.long L$set$2 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$3,LCFI2-LFB13
|
||||
.long L$set$3
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$4,LCFI3-LCFI2
|
||||
.long L$set$4
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$5,LCFI5-LCFI3
|
||||
.long L$set$5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE3:
|
||||
|
||||
|
||||
.globl _test_esi.eh
|
||||
_test_esi.eh:
|
||||
LSFDE9:
|
||||
.set L$set$15,LEFDE9-LASFDE9
|
||||
.long L$set$15 # FDE Length
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1 # FDE CIE offset
|
||||
.long LFB10-. # FDE initial location
|
||||
.set L$set$16,LFE10-LFB10
|
||||
.long L$set$16 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$17,LCFI13-LFB10
|
||||
.long L$set$17
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18,LCFI14-LCFI13
|
||||
.long L$set$18
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19,LCFI16-LCFI14
|
||||
.long L$set$19
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE9:
|
||||
|
||||
|
||||
.globl _test_edi.eh
|
||||
_test_edi.eh:
|
||||
LSFDE10:
|
||||
.set L$set$15a,LEFDE10-LASFDE10
|
||||
.long L$set$15a # FDE Length
|
||||
LASFDE10:
|
||||
.long LASFDE10-EH_frame1 # FDE CIE offset
|
||||
.long LFB11-. # FDE initial location
|
||||
.set L$set$16a,LFE11-LFB11
|
||||
.long L$set$16a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$17a,LCFI9-LFB11
|
||||
.long L$set$17a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18a,LCFI10-LCFI9
|
||||
.long L$set$18a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19a,LCFI12-LCFI10
|
||||
.long L$set$19a
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE10:
|
||||
|
||||
.globl _test_ebx_esi.eh
|
||||
_test_ebx_esi.eh:
|
||||
LSFDE11:
|
||||
.set L$set$20,LEFDE11-LASFDE11
|
||||
.long L$set$20 # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.long LFB9-. # FDE initial location
|
||||
.set L$set$21,LFE9-LFB9
|
||||
.long L$set$21 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22,LCFI17-LFB9
|
||||
.long L$set$22
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23,LCFI18-LCFI17
|
||||
.long L$set$23
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24,LCFI21-LCFI18
|
||||
.long L$set$24
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE11:
|
||||
|
||||
.globl _test_esi_edi.eh
|
||||
_test_esi_edi.eh:
|
||||
LSFDE13:
|
||||
.set L$set$25,LEFDE13-LASFDE13
|
||||
.long L$set$25 # FDE Length
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1 # FDE CIE offset
|
||||
.long LFB8-. # FDE initial location
|
||||
.set L$set$26,LFE8-LFB8
|
||||
.long L$set$26 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$27,LCFI22-LFB8
|
||||
.long L$set$27
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$28,LCFI23-LCFI22
|
||||
.long L$set$28
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$29,LCFI26-LCFI23
|
||||
.long L$set$29
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE13:
|
||||
|
||||
.globl _test_ebx_edi.eh
|
||||
_test_ebx_edi.eh:
|
||||
LSFDE111:
|
||||
.set L$set$20a,LEFDE11-LASFDE11
|
||||
.long L$set$20a # FDE Length
|
||||
LASFDE111:
|
||||
.long LASFDE111-EH_frame1 # FDE CIE offset
|
||||
.long LFB91-. # FDE initial location
|
||||
.set L$set$21a,LFE91-LFB91
|
||||
.long L$set$21a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22a,LCFI171-LFB91
|
||||
.long L$set$22a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23a,LCFI181-LCFI171
|
||||
.long L$set$23a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24a,LCFI211-LCFI181
|
||||
.long L$set$24a
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE111:
|
||||
|
||||
.globl _test_ebx_esi_edi.eh
|
||||
_test_ebx_esi_edi.eh:
|
||||
LSFDE15:
|
||||
.set L$set$30,LEFDE15-LASFDE15
|
||||
.long L$set$30 # FDE Length
|
||||
LASFDE15:
|
||||
.long LASFDE15-EH_frame1 # FDE CIE offset
|
||||
.long LFB7-. # FDE initial location
|
||||
.set L$set$31,LFE7-LFB7
|
||||
.long L$set$31 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32,LCFI27-LFB7
|
||||
.long L$set$32
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33,LCFI28-LCFI27
|
||||
.long L$set$33
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34,LCFI32-LCFI28
|
||||
.long L$set$34
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE15:
|
||||
|
||||
|
||||
.globl _test_edi_esi_ebx.eh
|
||||
_test_edi_esi_ebx.eh:
|
||||
LSFDE15a:
|
||||
.set L$set$30a,LEFDE15a-LASFDE15a
|
||||
.long L$set$30a # FDE Length
|
||||
LASFDE15a:
|
||||
.long LASFDE15a-EH_frame1 # FDE CIE offset
|
||||
.long LFB7a-. # FDE initial location
|
||||
.set L$set$31a,LFE7a-LFB7a
|
||||
.long L$set$31a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32a,LCFI27a-LFB7a
|
||||
.long L$set$32a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33a,LCFI28a-LCFI27a
|
||||
.long L$set$33a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34a,LCFI32a-LCFI28a
|
||||
.long L$set$34a
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE15a:
|
||||
|
||||
|
||||
.globl _test_pad_ebx_edi.eh
|
||||
_test_pad_ebx_edi.eh:
|
||||
LSFDE111a:
|
||||
.set L$set$20b,LEFDE111a-LASFDE111a
|
||||
.long L$set$20b # FDE Length
|
||||
LASFDE111a:
|
||||
.long LASFDE111a-EH_frame1 # FDE CIE offset
|
||||
.long LFB91a-. # FDE initial location
|
||||
.set L$set$21b,LFE91a-LFB91a
|
||||
.long L$set$21b # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22b,LCFI171a-LFB91a
|
||||
.long L$set$22b
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23b,LCFI181a-LCFI171a
|
||||
.long L$set$23b
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24b,LCFI211a-LCFI181a
|
||||
.long L$set$24b
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x13 # uleb128 0x13
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x14 # uleb128 0x14
|
||||
.align 2
|
||||
LEFDE111a:
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,671 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -DUSE_COMPACT_UNWIND=1
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -DUSE_EH_FRAME=1
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -DUSE_COMPACT_UNWIND=1 -DUSE_EH_FRAME=1
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -DUSE_EH_FRAME=1 -Wl,-no_compact_unwind
|
||||
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.long _test_no_reg
|
||||
.long _test_ebx
|
||||
.long _test_esi
|
||||
.long _test_edi
|
||||
.long _test_ebx_esi
|
||||
.long _test_esi_edi
|
||||
.long _test_ebx_edi
|
||||
.long _test_ebx_esi_edi
|
||||
.long _test_edi_esi_ebx
|
||||
.long _test_pad_ebx_edi
|
||||
.long 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
.globl _test_ebx
|
||||
_test_ebx:
|
||||
LFB13:
|
||||
pushl %ebp
|
||||
LCFI2:
|
||||
movl %esp, %ebp
|
||||
LCFI3:
|
||||
pushl %ebx
|
||||
LCFI4:
|
||||
subl $20, %esp
|
||||
LCFI5:
|
||||
movl $0, %ebx
|
||||
call _uwind_to_main
|
||||
addl $20, %esp
|
||||
popl %ebx
|
||||
leave
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB12:
|
||||
pushl %ebp
|
||||
LCFI6:
|
||||
movl %esp, %ebp
|
||||
LCFI7:
|
||||
subl $24, %esp
|
||||
LCFI8:
|
||||
call _uwind_to_main
|
||||
leave
|
||||
ret
|
||||
LFE12:
|
||||
|
||||
.globl _test_esi
|
||||
_test_esi:
|
||||
LFB10:
|
||||
pushl %ebp
|
||||
LCFI13:
|
||||
movl %esp, %ebp
|
||||
LCFI14:
|
||||
pushl %esi
|
||||
LCFI15:
|
||||
subl $20, %esp
|
||||
LCFI16:
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
addl $20, %esp
|
||||
popl %esi
|
||||
leave
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
.globl _test_edi
|
||||
_test_edi:
|
||||
LFB11:
|
||||
pushl %ebp
|
||||
LCFI9:
|
||||
movl %esp, %ebp
|
||||
LCFI10:
|
||||
pushl %edi
|
||||
LCFI11:
|
||||
subl $20, %esp
|
||||
LCFI12:
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
addl $20, %esp
|
||||
popl %edi
|
||||
leave
|
||||
ret
|
||||
LFE11:
|
||||
|
||||
.globl _test_ebx_esi
|
||||
_test_ebx_esi:
|
||||
LFB9:
|
||||
pushl %ebp
|
||||
LCFI17:
|
||||
movl %esp, %ebp
|
||||
LCFI18:
|
||||
subl $24, %esp
|
||||
LCFI19:
|
||||
movl %ebx, -8(%ebp)
|
||||
LCFI20:
|
||||
movl %esi, -4(%ebp)
|
||||
LCFI21:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -8(%ebp), %ebx
|
||||
movl -4(%ebp), %esi
|
||||
leave
|
||||
ret
|
||||
LFE9:
|
||||
|
||||
|
||||
.globl _test_esi_edi
|
||||
_test_esi_edi:
|
||||
LFB8:
|
||||
pushl %ebp
|
||||
LCFI22:
|
||||
movl %esp, %ebp
|
||||
LCFI23:
|
||||
subl $24, %esp
|
||||
LCFI24:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI25:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI26:
|
||||
movl $0, %edi
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
.globl _test_ebx_edi
|
||||
_test_ebx_edi:
|
||||
LFB91:
|
||||
pushl %ebp
|
||||
LCFI171:
|
||||
movl %esp, %ebp
|
||||
LCFI181:
|
||||
subl $24, %esp
|
||||
LCFI191:
|
||||
movl %ebx, -8(%ebp)
|
||||
LCFI201:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI211:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -8(%ebp), %ebx
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE91:
|
||||
|
||||
.globl _test_ebx_esi_edi
|
||||
_test_ebx_esi_edi:
|
||||
LFB7:
|
||||
pushl %ebp
|
||||
LCFI27:
|
||||
movl %esp, %ebp
|
||||
LCFI28:
|
||||
subl $40, %esp
|
||||
LCFI29:
|
||||
movl %ebx, -12(%ebp)
|
||||
LCFI30:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI31:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI32:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -12(%ebp), %ebx
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.globl _test_edi_esi_ebx
|
||||
_test_edi_esi_ebx:
|
||||
LFB7a:
|
||||
pushl %ebp
|
||||
LCFI27a:
|
||||
movl %esp, %ebp
|
||||
LCFI28a:
|
||||
subl $40, %esp
|
||||
LCFI29a:
|
||||
movl %edi, -12(%ebp)
|
||||
LCFI30a:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI31a:
|
||||
movl %ebx, -4(%ebp)
|
||||
LCFI32a:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -12(%ebp), %edi
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %ebx
|
||||
leave
|
||||
ret
|
||||
LFE7a:
|
||||
|
||||
|
||||
|
||||
.globl _test_pad_ebx_edi
|
||||
_test_pad_ebx_edi:
|
||||
LFB91a:
|
||||
pushl %ebp
|
||||
LCFI171a:
|
||||
movl %esp, %ebp
|
||||
LCFI181a:
|
||||
subl $88, %esp
|
||||
LCFI191a:
|
||||
movl %ebx, -72(%ebp)
|
||||
LCFI201a:
|
||||
movl %edi, -68(%ebp)
|
||||
LCFI211a:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -72(%ebp), %ebx
|
||||
movl -68(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE91a:
|
||||
|
||||
|
||||
#if USE_EH_FRAME
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x7c # sleb128 -4; CIE Data Alignment Factor
|
||||
.byte 0x8 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 2
|
||||
LECIE1:
|
||||
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE5:
|
||||
.set L$set$6,LEFDE5-LASFDE5
|
||||
.long L$set$6 # FDE Length
|
||||
LASFDE5:
|
||||
.long LASFDE5-EH_frame1 # FDE CIE offset
|
||||
.long LFB12-. # FDE initial location
|
||||
.set L$set$7,LFE12-LFB12
|
||||
.long L$set$7 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$8,LCFI6-LFB12
|
||||
.long L$set$8
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$9,LCFI7-LCFI6
|
||||
.long L$set$9
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE5:
|
||||
|
||||
|
||||
.globl _test_ebx.eh
|
||||
_test_ebx.eh:
|
||||
LSFDE3:
|
||||
.set L$set$1,LEFDE3-LASFDE3
|
||||
.long L$set$1 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.long LFB13-. # FDE initial location
|
||||
.set L$set$2,LFE13-LFB13
|
||||
.long L$set$2 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$3,LCFI2-LFB13
|
||||
.long L$set$3
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$4,LCFI3-LCFI2
|
||||
.long L$set$4
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$5,LCFI5-LCFI3
|
||||
.long L$set$5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE3:
|
||||
|
||||
|
||||
.globl _test_esi.eh
|
||||
_test_esi.eh:
|
||||
LSFDE9:
|
||||
.set L$set$15,LEFDE9-LASFDE9
|
||||
.long L$set$15 # FDE Length
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1 # FDE CIE offset
|
||||
.long LFB10-. # FDE initial location
|
||||
.set L$set$16,LFE10-LFB10
|
||||
.long L$set$16 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$17,LCFI13-LFB10
|
||||
.long L$set$17
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18,LCFI14-LCFI13
|
||||
.long L$set$18
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19,LCFI16-LCFI14
|
||||
.long L$set$19
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE9:
|
||||
|
||||
|
||||
.globl _test_edi.eh
|
||||
_test_edi.eh:
|
||||
LSFDE10:
|
||||
.set L$set$15a,LEFDE10-LASFDE10
|
||||
.long L$set$15a # FDE Length
|
||||
LASFDE10:
|
||||
.long LASFDE10-EH_frame1 # FDE CIE offset
|
||||
.long LFB11-. # FDE initial location
|
||||
.set L$set$16a,LFE11-LFB11
|
||||
.long L$set$16a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$17a,LCFI9-LFB11
|
||||
.long L$set$17a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18a,LCFI10-LCFI9
|
||||
.long L$set$18a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19a,LCFI12-LCFI10
|
||||
.long L$set$19a
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE10:
|
||||
|
||||
.globl _test_ebx_esi.eh
|
||||
_test_ebx_esi.eh:
|
||||
LSFDE11:
|
||||
.set L$set$20,LEFDE11-LASFDE11
|
||||
.long L$set$20 # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.long LFB9-. # FDE initial location
|
||||
.set L$set$21,LFE9-LFB9
|
||||
.long L$set$21 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22,LCFI17-LFB9
|
||||
.long L$set$22
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23,LCFI18-LCFI17
|
||||
.long L$set$23
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24,LCFI21-LCFI18
|
||||
.long L$set$24
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE11:
|
||||
|
||||
.globl _test_esi_edi.eh
|
||||
_test_esi_edi.eh:
|
||||
LSFDE13:
|
||||
.set L$set$25,LEFDE13-LASFDE13
|
||||
.long L$set$25 # FDE Length
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1 # FDE CIE offset
|
||||
.long LFB8-. # FDE initial location
|
||||
.set L$set$26,LFE8-LFB8
|
||||
.long L$set$26 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$27,LCFI22-LFB8
|
||||
.long L$set$27
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$28,LCFI23-LCFI22
|
||||
.long L$set$28
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$29,LCFI26-LCFI23
|
||||
.long L$set$29
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE13:
|
||||
|
||||
.globl _test_ebx_edi.eh
|
||||
_test_ebx_edi.eh:
|
||||
LSFDE111:
|
||||
.set L$set$20a,LEFDE11-LASFDE11
|
||||
.long L$set$20a # FDE Length
|
||||
LASFDE111:
|
||||
.long LASFDE111-EH_frame1 # FDE CIE offset
|
||||
.long LFB91-. # FDE initial location
|
||||
.set L$set$21a,LFE91-LFB91
|
||||
.long L$set$21a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22a,LCFI171-LFB91
|
||||
.long L$set$22a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23a,LCFI181-LCFI171
|
||||
.long L$set$23a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24a,LCFI211-LCFI181
|
||||
.long L$set$24a
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE111:
|
||||
|
||||
.globl _test_ebx_esi_edi.eh
|
||||
_test_ebx_esi_edi.eh:
|
||||
LSFDE15:
|
||||
.set L$set$30,LEFDE15-LASFDE15
|
||||
.long L$set$30 # FDE Length
|
||||
LASFDE15:
|
||||
.long LASFDE15-EH_frame1 # FDE CIE offset
|
||||
.long LFB7-. # FDE initial location
|
||||
.set L$set$31,LFE7-LFB7
|
||||
.long L$set$31 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32,LCFI27-LFB7
|
||||
.long L$set$32
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33,LCFI28-LCFI27
|
||||
.long L$set$33
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34,LCFI32-LCFI28
|
||||
.long L$set$34
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE15:
|
||||
|
||||
|
||||
.globl _test_edi_esi_ebx.eh
|
||||
_test_edi_esi_ebx.eh:
|
||||
LSFDE15a:
|
||||
.set L$set$30a,LEFDE15a-LASFDE15a
|
||||
.long L$set$30a # FDE Length
|
||||
LASFDE15a:
|
||||
.long LASFDE15a-EH_frame1 # FDE CIE offset
|
||||
.long LFB7a-. # FDE initial location
|
||||
.set L$set$31a,LFE7a-LFB7a
|
||||
.long L$set$31a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32a,LCFI27a-LFB7a
|
||||
.long L$set$32a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33a,LCFI28a-LCFI27a
|
||||
.long L$set$33a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34a,LCFI32a-LCFI28a
|
||||
.long L$set$34a
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE15a:
|
||||
|
||||
|
||||
.globl _test_pad_ebx_edi.eh
|
||||
_test_pad_ebx_edi.eh:
|
||||
LSFDE111a:
|
||||
.set L$set$20b,LEFDE111a-LASFDE111a
|
||||
.long L$set$20b # FDE Length
|
||||
LASFDE111a:
|
||||
.long LASFDE111a-EH_frame1 # FDE CIE offset
|
||||
.long LFB91a-. # FDE initial location
|
||||
.set L$set$21b,LFE91a-LFB91a
|
||||
.long L$set$21b # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22b,LCFI171a-LFB91a
|
||||
.long L$set$22b
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23b,LCFI181a-LCFI171a
|
||||
.long L$set$23b
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24b,LCFI211a-LCFI181a
|
||||
.long L$set$24b
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x13 # uleb128 0x13
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x14 # uleb128 0x14
|
||||
.align 2
|
||||
LEFDE111a:
|
||||
#endif // USE_EH_FRAME
|
||||
|
||||
|
||||
|
||||
#if USE_COMPACT_UNWIND
|
||||
|
||||
.section __LD,__compact_unwind,regular,debug
|
||||
|
||||
.long _test_no_reg
|
||||
.set L101,LFE13-_test_no_reg
|
||||
.long L101
|
||||
.long 0x01000000
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_ebx
|
||||
.set L102,LFE13-_test_ebx
|
||||
.long L102
|
||||
.long 0x01010001
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_esi
|
||||
.set L103,LFE10-_test_esi
|
||||
.long L103
|
||||
.long 0x01010005
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_edi
|
||||
.set L104,LFE11-_test_edi
|
||||
.long L104
|
||||
.long 0x01010004
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_ebx_esi
|
||||
.set L105,LFE9-_test_ebx_esi
|
||||
.long L105
|
||||
.long 0x01020029
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_esi_edi
|
||||
.set L106,LFE8-_test_esi_edi
|
||||
.long L106
|
||||
.long 0x01020025
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_ebx_edi
|
||||
.set L107,LFE91-_test_ebx_edi
|
||||
.long L107
|
||||
.long 0x01020021
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_ebx_esi_edi
|
||||
.set L108,LFE7-_test_ebx_esi_edi
|
||||
.long L108
|
||||
.long 0x01030129
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_edi_esi_ebx
|
||||
.set L109,LFE7a-_test_edi_esi_ebx
|
||||
.long L109
|
||||
.long 0x0103006C
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
.long _test_pad_ebx_edi
|
||||
.set L110,LFE91a-_test_pad_ebx_edi
|
||||
.long L110
|
||||
.long 0x01120021
|
||||
.long 0
|
||||
.long 0
|
||||
|
||||
#endif // USE_COMPACT_UNWIND
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,516 @@
|
|||
|
||||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -Wl,-no_compact_unwind
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.long _test_no_reg
|
||||
.long _test_ebx
|
||||
.long _test_esi
|
||||
.long _test_edi
|
||||
.long _test_ebx_esi
|
||||
.long _test_esi_edi
|
||||
.long _test_esi_edi_ebp
|
||||
.long _test_ebx_esi_edi
|
||||
.long _test_ebx_esi_edi_ebp
|
||||
.long _test_esi_ebp_ebx_edi
|
||||
.long 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
.globl _test_ebx
|
||||
_test_ebx:
|
||||
LFB13:
|
||||
pushl %ebx
|
||||
LCFI0:
|
||||
subl $24, %esp
|
||||
LCFI1:
|
||||
movl $0, %ebx
|
||||
call _uwind_to_main
|
||||
addl $24, %esp
|
||||
popl %ebx
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB12:
|
||||
subl $28, %esp
|
||||
LCFI2:
|
||||
call _uwind_to_main
|
||||
addl $28, %esp
|
||||
ret
|
||||
LFE12:
|
||||
|
||||
|
||||
.globl _test_esi
|
||||
_test_esi:
|
||||
LFB10:
|
||||
pushl %esi
|
||||
LCFI5:
|
||||
subl $24, %esp
|
||||
LCFI6:
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
addl $24, %esp
|
||||
popl %esi
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_edi
|
||||
_test_edi:
|
||||
LFB11:
|
||||
pushl %edi
|
||||
LCFI3:
|
||||
subl $24, %esp
|
||||
LCFI4:
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
addl $24, %esp
|
||||
popl %edi
|
||||
ret
|
||||
LFE11:
|
||||
|
||||
|
||||
.globl _test_ebx_esi
|
||||
_test_ebx_esi:
|
||||
LFB9:
|
||||
subl $28, %esp
|
||||
LCFI7:
|
||||
movl %ebx, 20(%esp)
|
||||
LCFI8:
|
||||
movl %esi, 24(%esp)
|
||||
LCFI9:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl 20(%esp), %ebx
|
||||
movl 24(%esp), %esi
|
||||
addl $28, %esp
|
||||
ret
|
||||
LFE9:
|
||||
|
||||
|
||||
.globl _test_esi_edi
|
||||
_test_esi_edi:
|
||||
LFB8:
|
||||
subl $28, %esp
|
||||
LCFI10:
|
||||
movl %esi, 20(%esp)
|
||||
LCFI11:
|
||||
movl %edi, 24(%esp)
|
||||
LCFI12:
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl 20(%esp), %esi
|
||||
movl 24(%esp), %edi
|
||||
addl $28, %esp
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi
|
||||
_test_ebx_esi_edi:
|
||||
LFB7:
|
||||
subl $28, %esp
|
||||
LCFI13:
|
||||
movl %ebx, 16(%esp)
|
||||
LCFI14:
|
||||
movl %esi, 20(%esp)
|
||||
LCFI15:
|
||||
movl %edi, 24(%esp)
|
||||
LCFI16:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl 16(%esp), %ebx
|
||||
movl 20(%esp), %esi
|
||||
movl 24(%esp), %edi
|
||||
addl $28, %esp
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.globl _test_esi_edi_ebp
|
||||
_test_esi_edi_ebp:
|
||||
LFB6:
|
||||
subl $28, %esp
|
||||
LCFI17:
|
||||
movl %esi, 16(%esp)
|
||||
LCFI18:
|
||||
movl %edi, 20(%esp)
|
||||
LCFI19:
|
||||
movl %ebp, 24(%esp)
|
||||
LCFI20:
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
movl $0, %ebp
|
||||
call _uwind_to_main
|
||||
movl 16(%esp), %esi
|
||||
movl 20(%esp), %edi
|
||||
movl 24(%esp), %ebp
|
||||
addl $28, %esp
|
||||
ret
|
||||
LFE6:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi_ebp
|
||||
_test_ebx_esi_edi_ebp:
|
||||
LFB5:
|
||||
subl $60, %esp
|
||||
LCFI21:
|
||||
movl %ebx, 44(%esp)
|
||||
LCFI22:
|
||||
movl %esi, 48(%esp)
|
||||
LCFI23:
|
||||
movl %edi, 52(%esp)
|
||||
LCFI24:
|
||||
movl %ebp, 56(%esp)
|
||||
LCFI25:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
movl $0, %ebp
|
||||
call _uwind_to_main
|
||||
movl 44(%esp), %ebx
|
||||
movl 48(%esp), %esi
|
||||
movl 52(%esp), %edi
|
||||
movl 56(%esp), %ebp
|
||||
addl $60, %esp
|
||||
ret
|
||||
LFE5:
|
||||
|
||||
.globl _test_esi_ebp_ebx_edi
|
||||
_test_esi_ebp_ebx_edi:
|
||||
LFB5a:
|
||||
subl $60, %esp
|
||||
LCFI21a:
|
||||
movl %esi, 44(%esp)
|
||||
LCFI22a:
|
||||
movl %ebp, 48(%esp)
|
||||
LCFI23a:
|
||||
movl %ebx, 52(%esp)
|
||||
LCFI24a:
|
||||
movl %edi, 56(%esp)
|
||||
LCFI25a:
|
||||
movl $0, %esi
|
||||
movl $0, %ebp
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl 44(%esp), %esi
|
||||
movl 48(%esp), %ebp
|
||||
movl 52(%esp), %ebx
|
||||
movl 56(%esp), %edi
|
||||
addl $60, %esp
|
||||
ret
|
||||
LFE5a:
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x7c # sleb128 -4; CIE Data Alignment Factor
|
||||
.byte 0x8 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 2
|
||||
LECIE1:
|
||||
|
||||
|
||||
.globl _test_ebx.eh
|
||||
_test_ebx.eh:
|
||||
LSFDE3:
|
||||
.set L$set$1,LEFDE3-LASFDE3
|
||||
.long L$set$1 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.long LFB13-. # FDE initial location
|
||||
.set L$set$2,LFE13-LFB13
|
||||
.long L$set$2 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$3,LCFI0-LFB13
|
||||
.long L$set$3
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$4,LCFI1-LCFI0
|
||||
.long L$set$4
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 2
|
||||
LEFDE3:
|
||||
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE5:
|
||||
.set L$set$5,LEFDE5-LASFDE5
|
||||
.long L$set$5 # FDE Length
|
||||
LASFDE5:
|
||||
.long LASFDE5-EH_frame1 # FDE CIE offset
|
||||
.long LFB12-. # FDE initial location
|
||||
.set L$set$6,LFE12-LFB12
|
||||
.long L$set$6 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$7,LCFI2-LFB12
|
||||
.long L$set$7
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.align 2
|
||||
LEFDE5:
|
||||
|
||||
|
||||
.globl _test_esi.eh
|
||||
_test_esi.eh:
|
||||
LSFDE9:
|
||||
.set L$set$12,LEFDE9-LASFDE9
|
||||
.long L$set$12 # FDE Length
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1 # FDE CIE offset
|
||||
.long LFB10-. # FDE initial location
|
||||
.set L$set$13,LFE10-LFB10
|
||||
.long L$set$13 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14,LCFI5-LFB10
|
||||
.long L$set$14
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$15,LCFI6-LCFI5
|
||||
.long L$set$15
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 2
|
||||
LEFDE9:
|
||||
|
||||
|
||||
.globl _test_edi.eh
|
||||
_test_edi.eh:
|
||||
LSFDE10:
|
||||
.set L$set$12a,LEFDE10-LASFDE10
|
||||
.long L$set$12a # FDE Length
|
||||
LASFDE10:
|
||||
.long LASFDE10-EH_frame1 # FDE CIE offset
|
||||
.long LFB11-. # FDE initial location
|
||||
.set L$set$13a,LFE11-LFB11
|
||||
.long L$set$13a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14a,LCFI3-LFB11
|
||||
.long L$set$14a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$15a,LCFI4-LCFI3
|
||||
.long L$set$15a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 2
|
||||
LEFDE10:
|
||||
|
||||
|
||||
|
||||
.globl _test_ebx_esi.eh
|
||||
_test_ebx_esi.eh:
|
||||
LSFDE11:
|
||||
.set L$set$16,LEFDE11-LASFDE11
|
||||
.long L$set$16 # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.long LFB9-. # FDE initial location
|
||||
.set L$set$17,LFE9-LFB9
|
||||
.long L$set$17 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18,LCFI7-LFB9
|
||||
.long L$set$18
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19,LCFI9-LCFI7
|
||||
.long L$set$19
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE11:
|
||||
|
||||
|
||||
.globl _test_esi_edi.eh
|
||||
_test_esi_edi.eh:
|
||||
LSFDE13:
|
||||
.set L$set$20,LEFDE13-LASFDE13
|
||||
.long L$set$20 # FDE Length
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1 # FDE CIE offset
|
||||
.long LFB8-. # FDE initial location
|
||||
.set L$set$21,LFE8-LFB8
|
||||
.long L$set$21 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22,LCFI10-LFB8
|
||||
.long L$set$22
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23,LCFI12-LCFI10
|
||||
.long L$set$23
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE13:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi.eh
|
||||
_test_ebx_esi_edi.eh:
|
||||
LSFDE15:
|
||||
.set L$set$24,LEFDE15-LASFDE15
|
||||
.long L$set$24 # FDE Length
|
||||
LASFDE15:
|
||||
.long LASFDE15-EH_frame1 # FDE CIE offset
|
||||
.long LFB7-. # FDE initial location
|
||||
.set L$set$25,LFE7-LFB7
|
||||
.long L$set$25 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$26,LCFI13-LFB7
|
||||
.long L$set$26
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$27,LCFI16-LCFI13
|
||||
.long L$set$27
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE15:
|
||||
|
||||
|
||||
.globl _test_esi_edi_ebp.eh
|
||||
_test_esi_edi_ebp.eh:
|
||||
LSFDE17:
|
||||
.set L$set$28,LEFDE17-LASFDE17
|
||||
.long L$set$28 # FDE Length
|
||||
LASFDE17:
|
||||
.long LASFDE17-EH_frame1 # FDE CIE offset
|
||||
.long LFB6-. # FDE initial location
|
||||
.set L$set$29,LFE6-LFB6
|
||||
.long L$set$29 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$30,LCFI17-LFB6
|
||||
.long L$set$30
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x20 # uleb128 0x20
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$31,LCFI20-LCFI17
|
||||
.long L$set$31
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE17:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi_ebp.eh
|
||||
_test_ebx_esi_edi_ebp.eh:
|
||||
LSFDE19:
|
||||
.set L$set$32,LEFDE19-LASFDE19
|
||||
.long L$set$32 # FDE Length
|
||||
LASFDE19:
|
||||
.long LASFDE19-EH_frame1 # FDE CIE offset
|
||||
.long LFB5-. # FDE initial location
|
||||
.set L$set$33,LFE5-LFB5
|
||||
.long L$set$33 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34,LCFI21-LFB5
|
||||
.long L$set$34
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x40 # uleb128 0x40
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$35,LCFI25-LCFI21
|
||||
.long L$set$35
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE19:
|
||||
|
||||
.globl _test_esi_ebp_ebx_edi.eh
|
||||
_test_esi_ebp_ebx_edi.eh:
|
||||
LSFDE19a:
|
||||
.set L$set$32a,LEFDE19a-LASFDE19a
|
||||
.long L$set$32a # FDE Length
|
||||
LASFDE19a:
|
||||
.long LASFDE19a-EH_frame1 # FDE CIE offset
|
||||
.long LFB5a-. # FDE initial location
|
||||
.set L$set$33a,LFE5a-LFB5a
|
||||
.long L$set$33a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34a,LCFI21a-LFB5a
|
||||
.long L$set$34a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x40 # uleb128 0x40
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$35a,LCFI25a-LCFI21a
|
||||
.long L$set$35a
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE19a:
|
||||
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,516 @@
|
|||
|
||||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -Wl,-no_compact_unwind
|
||||
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.long _test_no_reg
|
||||
.long _test_ebx
|
||||
.long _test_esi
|
||||
.long _test_edi
|
||||
.long _test_ebx_esi
|
||||
.long _test_esi_edi
|
||||
.long _test_esi_edi_ebp
|
||||
.long _test_ebx_esi_edi
|
||||
.long _test_ebx_esi_ebp
|
||||
.long _test_ebx_esi_edi_ebp
|
||||
.long 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
.globl _test_ebx
|
||||
_test_ebx:
|
||||
LFB13:
|
||||
pushl %ebx
|
||||
LCFI0:
|
||||
subl $80024, %esp
|
||||
LCFI1:
|
||||
movl $0, %ebx
|
||||
call _uwind_to_main
|
||||
addl $80024, %esp
|
||||
popl %ebx
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
.globl _test_no_reg
|
||||
_test_no_reg:
|
||||
LFB12:
|
||||
subl $80028, %esp
|
||||
LCFI2:
|
||||
call _uwind_to_main
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE12:
|
||||
|
||||
|
||||
.globl _test_esi
|
||||
_test_esi:
|
||||
LFB10:
|
||||
pushl %esi
|
||||
LCFI5:
|
||||
subl $80024, %esp
|
||||
LCFI6:
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
addl $80024, %esp
|
||||
popl %esi
|
||||
ret
|
||||
LFE10:
|
||||
|
||||
|
||||
.globl _test_edi
|
||||
_test_edi:
|
||||
LFB11:
|
||||
pushl %edi
|
||||
LCFI3:
|
||||
subl $80024, %esp
|
||||
LCFI4:
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
addl $80024, %esp
|
||||
popl %edi
|
||||
ret
|
||||
LFE11:
|
||||
|
||||
|
||||
.globl _test_ebx_esi
|
||||
_test_ebx_esi:
|
||||
LFB9:
|
||||
nop
|
||||
subl $80028, %esp
|
||||
LCFI7:
|
||||
movl %ebx, 80020(%esp)
|
||||
LCFI8:
|
||||
movl %esi, 80024(%esp)
|
||||
LCFI9:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl 80020(%esp), %ebx
|
||||
movl 80024(%esp), %esi
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE9:
|
||||
|
||||
|
||||
.globl _test_esi_edi
|
||||
_test_esi_edi:
|
||||
LFB8:
|
||||
subl $80028, %esp
|
||||
LCFI10:
|
||||
movl %esi, 80020(%esp)
|
||||
LCFI11:
|
||||
movl %edi, 80024(%esp)
|
||||
LCFI12:
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl 80020(%esp), %esi
|
||||
movl 80024(%esp), %edi
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE8:
|
||||
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi
|
||||
_test_ebx_esi_edi:
|
||||
LFB7:
|
||||
subl $80028, %esp
|
||||
LCFI13:
|
||||
movl %ebx, 80016(%esp)
|
||||
LCFI14:
|
||||
movl %esi, 80020(%esp)
|
||||
LCFI15:
|
||||
movl %edi, 80024(%esp)
|
||||
LCFI16:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl 80016(%esp), %ebx
|
||||
movl 80020(%esp), %esi
|
||||
movl 80024(%esp), %edi
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_ebp
|
||||
_test_ebx_esi_ebp:
|
||||
LFB7a:
|
||||
subl $80028, %esp
|
||||
LCFI13a:
|
||||
movl %ebx, 80016(%esp)
|
||||
LCFI14a:
|
||||
movl %esi, 80020(%esp)
|
||||
LCFI15a:
|
||||
movl %ebp, 80024(%esp)
|
||||
LCFI16a:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %ebp
|
||||
call _uwind_to_main
|
||||
movl 80016(%esp), %ebx
|
||||
movl 80020(%esp), %esi
|
||||
movl 80024(%esp), %ebp
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE7a:
|
||||
|
||||
|
||||
|
||||
.globl _test_esi_edi_ebp
|
||||
_test_esi_edi_ebp:
|
||||
LFB6:
|
||||
subl $80028, %esp
|
||||
LCFI17:
|
||||
movl %esi, 80016(%esp)
|
||||
LCFI18:
|
||||
movl %edi, 80020(%esp)
|
||||
LCFI19:
|
||||
movl %ebp, 80024(%esp)
|
||||
LCFI20:
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
movl $0, %ebp
|
||||
call _uwind_to_main
|
||||
movl 80016(%esp), %esi
|
||||
movl 80020(%esp), %edi
|
||||
movl 80024(%esp), %ebp
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE6:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi_ebp
|
||||
_test_ebx_esi_edi_ebp:
|
||||
LFB5:
|
||||
subl $80028, %esp
|
||||
LCFI21:
|
||||
movl %ebx, 80012(%esp)
|
||||
LCFI22:
|
||||
movl %esi, 80016(%esp)
|
||||
LCFI23:
|
||||
movl %edi, 80020(%esp)
|
||||
LCFI24:
|
||||
movl %ebp, 80024(%esp)
|
||||
LCFI25:
|
||||
movl $0, %ebx
|
||||
movl $0, %esi
|
||||
movl $0, %edi
|
||||
movl $0, %ebp
|
||||
call _uwind_to_main
|
||||
movl 80012(%esp), %ebx
|
||||
movl 80016(%esp), %esi
|
||||
movl 80020(%esp), %edi
|
||||
movl 80024(%esp), %ebp
|
||||
addl $80028, %esp
|
||||
ret
|
||||
LFE5:
|
||||
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x7c # sleb128 -4; CIE Data Alignment Factor
|
||||
.byte 0x8 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 2
|
||||
LECIE1:
|
||||
|
||||
|
||||
.globl _test_ebx.eh
|
||||
_test_ebx.eh:
|
||||
LSFDE3:
|
||||
.set L$set$1,LEFDE3-LASFDE3
|
||||
.long L$set$1 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.long LFB13-. # FDE initial location
|
||||
.set L$set$2,LFE13-LFB13
|
||||
.long L$set$2 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$3,LCFI0-LFB13
|
||||
.long L$set$3
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$4,LCFI1-LCFI0
|
||||
.long L$set$4
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 2
|
||||
LEFDE3:
|
||||
|
||||
|
||||
.globl _test_no_reg.eh
|
||||
_test_no_reg.eh:
|
||||
LSFDE5:
|
||||
.set L$set$5,LEFDE5-LASFDE5
|
||||
.long L$set$5 # FDE Length
|
||||
LASFDE5:
|
||||
.long LASFDE5-EH_frame1 # FDE CIE offset
|
||||
.long LFB12-. # FDE initial location
|
||||
.set L$set$6,LFE12-LFB12
|
||||
.long L$set$6 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$7,LCFI2-LFB12
|
||||
.long L$set$7
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.align 2
|
||||
LEFDE5:
|
||||
|
||||
|
||||
.globl _test_esi.eh
|
||||
_test_esi.eh:
|
||||
LSFDE9:
|
||||
.set L$set$12,LEFDE9-LASFDE9
|
||||
.long L$set$12 # FDE Length
|
||||
LASFDE9:
|
||||
.long LASFDE9-EH_frame1 # FDE CIE offset
|
||||
.long LFB10-. # FDE initial location
|
||||
.set L$set$13,LFE10-LFB10
|
||||
.long L$set$13 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14,LCFI5-LFB10
|
||||
.long L$set$14
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$15,LCFI6-LCFI5
|
||||
.long L$set$15
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 2
|
||||
LEFDE9:
|
||||
|
||||
|
||||
.globl _test_edi.eh
|
||||
_test_edi.eh:
|
||||
LSFDE10:
|
||||
.set L$set$12a,LEFDE10-LASFDE10
|
||||
.long L$set$12a # FDE Length
|
||||
LASFDE10:
|
||||
.long LASFDE10-EH_frame1 # FDE CIE offset
|
||||
.long LFB11-. # FDE initial location
|
||||
.set L$set$13a,LFE11-LFB11
|
||||
.long L$set$13a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$14a,LCFI3-LFB11
|
||||
.long L$set$14a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$15a,LCFI4-LCFI3
|
||||
.long L$set$15a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.align 2
|
||||
LEFDE10:
|
||||
|
||||
|
||||
|
||||
.globl _test_ebx_esi.eh
|
||||
_test_ebx_esi.eh:
|
||||
LSFDE11:
|
||||
.set L$set$16,LEFDE11-LASFDE11
|
||||
.long L$set$16 # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.long LFB9-. # FDE initial location
|
||||
.set L$set$17,LFE9-LFB9
|
||||
.long L$set$17 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$18,LCFI7-LFB9
|
||||
.long L$set$18
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$19,LCFI9-LCFI7
|
||||
.long L$set$19
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE11:
|
||||
|
||||
|
||||
.globl _test_esi_edi.eh
|
||||
_test_esi_edi.eh:
|
||||
LSFDE13:
|
||||
.set L$set$20,LEFDE13-LASFDE13
|
||||
.long L$set$20 # FDE Length
|
||||
LASFDE13:
|
||||
.long LASFDE13-EH_frame1 # FDE CIE offset
|
||||
.long LFB8-. # FDE initial location
|
||||
.set L$set$21,LFE8-LFB8
|
||||
.long L$set$21 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22,LCFI10-LFB8
|
||||
.long L$set$22
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23,LCFI12-LCFI10
|
||||
.long L$set$23
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.align 2
|
||||
LEFDE13:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi.eh
|
||||
_test_ebx_esi_edi.eh:
|
||||
LSFDE15:
|
||||
.set L$set$24,LEFDE15-LASFDE15
|
||||
.long L$set$24 # FDE Length
|
||||
LASFDE15:
|
||||
.long LASFDE15-EH_frame1 # FDE CIE offset
|
||||
.long LFB7-. # FDE initial location
|
||||
.set L$set$25,LFE7-LFB7
|
||||
.long L$set$25 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$26,LCFI13-LFB7
|
||||
.long L$set$26
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$27,LCFI16-LCFI13
|
||||
.long L$set$27
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE15:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_ebp.eh
|
||||
_test_ebx_esi_ebp.eh:
|
||||
LSFDE15a:
|
||||
.set L$set$24a,LEFDE15a-LASFDE15a
|
||||
.long L$set$24a # FDE Length
|
||||
LASFDE15a:
|
||||
.long LASFDE15a-EH_frame1 # FDE CIE offset
|
||||
.long LFB7a-. # FDE initial location
|
||||
.set L$set$25a,LFE7a-LFB7a
|
||||
.long L$set$25a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$26a,LCFI13a-LFB7a
|
||||
.long L$set$26a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$27a,LCFI16a-LCFI13a
|
||||
.long L$set$27a
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE15a:
|
||||
|
||||
|
||||
|
||||
.globl _test_esi_edi_ebp.eh
|
||||
_test_esi_edi_ebp.eh:
|
||||
LSFDE17:
|
||||
.set L$set$28,LEFDE17-LASFDE17
|
||||
.long L$set$28 # FDE Length
|
||||
LASFDE17:
|
||||
.long LASFDE17-EH_frame1 # FDE CIE offset
|
||||
.long LFB6-. # FDE initial location
|
||||
.set L$set$29,LFE6-LFB6
|
||||
.long L$set$29 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$30,LCFI17-LFB6
|
||||
.long L$set$30
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$31,LCFI20-LCFI17
|
||||
.long L$set$31
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE17:
|
||||
|
||||
|
||||
.globl _test_ebx_esi_edi_ebp.eh
|
||||
_test_ebx_esi_edi_ebp.eh:
|
||||
LSFDE19:
|
||||
.set L$set$32,LEFDE19-LASFDE19
|
||||
.long L$set$32 # FDE Length
|
||||
LASFDE19:
|
||||
.long LASFDE19-EH_frame1 # FDE CIE offset
|
||||
.long LFB5-. # FDE initial location
|
||||
.set L$set$33,LFE5-LFB5
|
||||
.long L$set$33 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34,LCFI21-LFB5
|
||||
.long L$set$34
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0xa0,0xf1,0x4 # uleb128 0x138a0
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$35,LCFI25-LCFI21
|
||||
.long L$set$35
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE19:
|
||||
|
||||
|
||||
.subsections_via_symbols
|
|
@ -0,0 +1,330 @@
|
|||
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions
|
||||
# TEST-OPTIONS: unwind_test_main.c unwind_test_x86.s -arch i386 -fexceptions -Wl,-no_compact_unwind
|
||||
|
||||
|
||||
.data
|
||||
.globl _unwind_tester_list
|
||||
_unwind_tester_list:
|
||||
.long _test_ebx_wrong_slot
|
||||
.long _test_esi_in_ebx
|
||||
.long _test_edi_pad_ebx
|
||||
.long _test_coal_ebx_esi_edi
|
||||
.long Ltest_edi_pad_ebx
|
||||
.long 0
|
||||
|
||||
|
||||
.text
|
||||
|
||||
.globl _test_ebx_wrong_slot
|
||||
_test_ebx_wrong_slot:
|
||||
LFB13:
|
||||
pushl %ebp
|
||||
LCFI2:
|
||||
movl %esp, %ebp
|
||||
LCFI3:
|
||||
subl $4, %esp
|
||||
pushl %ebx
|
||||
LCFI4:
|
||||
subl $16, %esp
|
||||
LCFI5:
|
||||
movl $0, %ebx
|
||||
call _uwind_to_main
|
||||
addl $16, %esp
|
||||
popl %ebx
|
||||
addl $4, %esp
|
||||
leave
|
||||
ret
|
||||
LFE13:
|
||||
|
||||
|
||||
.globl _test_esi_in_ebx
|
||||
_test_esi_in_ebx:
|
||||
LFB9:
|
||||
pushl %ebp
|
||||
LCFI17:
|
||||
movl %esp, %ebp
|
||||
LCFI18:
|
||||
subl $24, %esp
|
||||
LCFI19:
|
||||
movl %ebx, -8(%ebp)
|
||||
LCFI20:
|
||||
movl %esi, %ebx
|
||||
LCFI21:
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl %ebx, %esi
|
||||
movl -8(%ebp), %ebx
|
||||
leave
|
||||
ret
|
||||
LFE9:
|
||||
|
||||
|
||||
|
||||
.globl _test_edi_pad_ebx
|
||||
_test_edi_pad_ebx:
|
||||
LFB7a:
|
||||
pushl %ebp
|
||||
LCFI27a:
|
||||
movl %esp, %ebp
|
||||
LCFI28a:
|
||||
subl $140, %esp
|
||||
LCFI29a:
|
||||
movl %edi, -44(%ebp)
|
||||
LCFI30a:
|
||||
LCFI31a:
|
||||
movl %ebx, -4(%ebp)
|
||||
LCFI32a:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -44(%ebp), %edi
|
||||
movl -4(%ebp), %ebx
|
||||
leave
|
||||
ret
|
||||
LFE7a:
|
||||
|
||||
Ltest_edi_pad_ebx:
|
||||
LFB7b:
|
||||
pushl %ebp
|
||||
LCFI27b:
|
||||
movl %esp, %ebp
|
||||
LCFI28b:
|
||||
subl $140, %esp
|
||||
LCFI29b:
|
||||
movl %edi, -44(%ebp)
|
||||
LCFI30b:
|
||||
LCFI31b:
|
||||
movl %ebx, -4(%ebp)
|
||||
LCFI32b:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
call _uwind_to_main
|
||||
movl -44(%ebp), %edi
|
||||
movl -4(%ebp), %ebx
|
||||
leave
|
||||
ret
|
||||
LFE7b:
|
||||
|
||||
|
||||
|
||||
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
|
||||
.globl _test_coal_ebx_esi_edi
|
||||
.weak_definition _test_coal_ebx_esi_edi
|
||||
_test_coal_ebx_esi_edi:
|
||||
LFB7:
|
||||
pushl %ebp
|
||||
LCFI27:
|
||||
movl %esp, %ebp
|
||||
LCFI28:
|
||||
subl $40, %esp
|
||||
LCFI29:
|
||||
movl %ebx, -12(%ebp)
|
||||
LCFI30:
|
||||
movl %esi, -8(%ebp)
|
||||
LCFI31:
|
||||
movl %edi, -4(%ebp)
|
||||
LCFI32:
|
||||
movl $0, %ebx
|
||||
movl $0, %edi
|
||||
movl $0, %esi
|
||||
call _uwind_to_main
|
||||
movl -12(%ebp), %ebx
|
||||
movl -8(%ebp), %esi
|
||||
movl -4(%ebp), %edi
|
||||
leave
|
||||
ret
|
||||
LFE7:
|
||||
|
||||
|
||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||
EH_frame1:
|
||||
.set L$set$0,LECIE1-LSCIE1
|
||||
.long L$set$0 # Length of Common Information Entry
|
||||
LSCIE1:
|
||||
.long 0x0 # CIE Identifier Tag
|
||||
.byte 0x1 # CIE Version
|
||||
.ascii "zR\0" # CIE Augmentation
|
||||
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
|
||||
.byte 0x7c # sleb128 -4; CIE Data Alignment Factor
|
||||
.byte 0x8 # CIE RA Column
|
||||
.byte 0x1 # uleb128 0x1; Augmentation size
|
||||
.byte 0x10 # FDE Encoding (pcrel)
|
||||
.byte 0xc # DW_CFA_def_cfa
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x88 # DW_CFA_offset, column 0x8
|
||||
.byte 0x1 # uleb128 0x1
|
||||
.align 2
|
||||
LECIE1:
|
||||
|
||||
|
||||
|
||||
.globl _test_ebx_wrong_slot.eh
|
||||
_test_ebx_wrong_slot.eh:
|
||||
LSFDE3:
|
||||
.set L$set$1,LEFDE3-LASFDE3
|
||||
.long L$set$1 # FDE Length
|
||||
LASFDE3:
|
||||
.long LASFDE3-EH_frame1 # FDE CIE offset
|
||||
.long LFB13-. # FDE initial location
|
||||
.set L$set$2,LFE13-LFB13
|
||||
.long L$set$2 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$3,LCFI2-LFB13
|
||||
.long L$set$3
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$4,LCFI3-LCFI2
|
||||
.long L$set$4
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$5,LCFI5-LCFI3
|
||||
.long L$set$5
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE3:
|
||||
|
||||
|
||||
.globl _test_esi_in_ebx.eh
|
||||
_test_esi_in_ebx.eh:
|
||||
LSFDE11:
|
||||
.set L$set$20,LEFDE11-LASFDE11
|
||||
.long L$set$20 # FDE Length
|
||||
LASFDE11:
|
||||
.long LASFDE11-EH_frame1 # FDE CIE offset
|
||||
.long LFB9-. # FDE initial location
|
||||
.set L$set$21,LFE9-LFB9
|
||||
.long L$set$21 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$22,LCFI17-LFB9
|
||||
.long L$set$22
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$23,LCFI18-LCFI17
|
||||
.long L$set$23
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$24,LCFI21-LCFI18
|
||||
.long L$set$24
|
||||
.byte 0x09, 0x06, 0x03 # DW_CFA_register 6, 3
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.align 2
|
||||
LEFDE11:
|
||||
|
||||
|
||||
.globl _test_edi_pad_ebx.eh
|
||||
_test_edi_pad_ebx.eh:
|
||||
LSFDE15a:
|
||||
.set L$set$30,LEFDE15a-LASFDE15a
|
||||
.long L$set$30 # FDE Length
|
||||
LASFDE15a:
|
||||
.long LASFDE15a-EH_frame1 # FDE CIE offset
|
||||
.long LFB7a-. # FDE initial location
|
||||
.set L$set$31,LFE7a-LFB7a
|
||||
.long L$set$31 # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32,LCFI27a-LFB7a
|
||||
.long L$set$32
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33,LCFI28a-LCFI27a
|
||||
.long L$set$33
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34,LCFI32a-LCFI28a
|
||||
.long L$set$34
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0xD # uleb128 0xD
|
||||
.align 2
|
||||
LEFDE15a:
|
||||
|
||||
ltest_edi_pad_ebx.eh:
|
||||
LSFDE15b:
|
||||
.set L$set$30a,LEFDE15b-LASFDE15b
|
||||
.long L$set$30a # FDE Length
|
||||
LASFDE15b:
|
||||
.long LASFDE15b-EH_frame1 # FDE CIE offset
|
||||
.long LFB7b-. # FDE initial location
|
||||
.set L$set$31a,LFE7b-LFB7b
|
||||
.long L$set$31a # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32a,LCFI27b-LFB7b
|
||||
.long L$set$32a
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33a,LCFI28b-LCFI27b
|
||||
.long L$set$33a
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34a,LCFI32b-LCFI28b
|
||||
.long L$set$34a
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0xD # uleb128 0xD
|
||||
.align 2
|
||||
LEFDE15b:
|
||||
|
||||
.globl _test_coal_ebx_esi_edi.eh
|
||||
_test_coal_ebx_esi_edi.eh:
|
||||
LSFDE15:
|
||||
.set L$set$30b,LEFDE15-LASFDE15
|
||||
.long L$set$30b # FDE Length
|
||||
LASFDE15:
|
||||
.long LASFDE15-EH_frame1 # FDE CIE offset
|
||||
.long LFB7-. # FDE initial location
|
||||
.set L$set$31b,LFE7-LFB7
|
||||
.long L$set$31b # FDE address range
|
||||
.byte 0x0 # uleb128 0x0; Augmentation size
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$32b,LCFI27-LFB7
|
||||
.long L$set$32b
|
||||
.byte 0xe # DW_CFA_def_cfa_offset
|
||||
.byte 0x8 # uleb128 0x8
|
||||
.byte 0x84 # DW_CFA_offset, column 0x4
|
||||
.byte 0x2 # uleb128 0x2
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$33b,LCFI28-LCFI27
|
||||
.long L$set$33b
|
||||
.byte 0xd # DW_CFA_def_cfa_register
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x4 # DW_CFA_advance_loc4
|
||||
.set L$set$34b,LCFI32-LCFI28
|
||||
.long L$set$34b
|
||||
.byte 0x87 # DW_CFA_offset, column 0x7
|
||||
.byte 0x3 # uleb128 0x3
|
||||
.byte 0x86 # DW_CFA_offset, column 0x6
|
||||
.byte 0x4 # uleb128 0x4
|
||||
.byte 0x83 # DW_CFA_offset, column 0x3
|
||||
.byte 0x5 # uleb128 0x5
|
||||
.align 2
|
||||
LEFDE15:
|
||||
|
||||
|
||||
|
||||
.subsections_via_symbols
|
Загрузка…
Ссылка в новой задаче