mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-28 20:43:45 +08:00
* gas/cfi/cfi.exp: Testsuite for cfi machinery.
* gas/cfi/cfi-x86_64.[sd]: Files for x86-64. * gas/cfi/cfi-i386.[sd]: Files for i386.
This commit is contained in:
parent
54cfded08e
commit
2ebaa23b7a
@ -1,3 +1,9 @@
|
||||
2003-05-20 Michal Ludvig <mludvig@suse.cz>
|
||||
|
||||
* gas/cfi/cfi.exp: Testsuite for cfi machinery.
|
||||
* gas/cfi/cfi-x86_64.[sd]: Files for x86-64.
|
||||
* gas/cfi/cfi-i386.[sd]: Files for i386.
|
||||
|
||||
2003-05-19 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* gas/mips/mips.exp: mips-*-linux-*, mipsel-*-linux-* use only 32-bit
|
||||
@ -37,7 +43,7 @@
|
||||
|
||||
* gas/ia64/ia64.exp: Add alias.
|
||||
|
||||
* gas/ia64/alias.s: New.
|
||||
* gas/ia64/alias.s: New.
|
||||
* gas/ia64/alias.d: Likewise.
|
||||
|
||||
2003-05-06 Alexandre Oliva <aoliva@redhat.com>
|
||||
@ -174,8 +180,8 @@
|
||||
2003-04-29 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* gas/elf/elf.exp: Invoke symver test.
|
||||
* gas/elf/symver.s: New test case.
|
||||
* gas/elf/symver.d: Expected output.
|
||||
* gas/elf/symver.s: New test case.
|
||||
* gas/elf/symver.d: Expected output.
|
||||
|
||||
2003-04-24 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
@ -198,8 +204,8 @@
|
||||
2003-04-08 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* gas/m32r/m32r.exp: Run signed-relocs test.
|
||||
* gas/m32r/signed-relocs.s: New file: Test signed relocs.
|
||||
* gas/m32r/signed-relocs.d: New file: Expected results
|
||||
* gas/m32r/signed-relocs.s: New file: Test signed relocs.
|
||||
* gas/m32r/signed-relocs.d: New file: Expected results
|
||||
|
||||
* gas/ia64/dependency-1.s: New file: Test read before write dependency.
|
||||
* gas/ia64/dependency-1.d: New file: Expected assembly results.
|
||||
@ -253,17 +259,17 @@
|
||||
|
||||
2003-04-01 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* gas/xtensa/all.exp: New file.
|
||||
* gas/xtensa/entry_align.s: Likewise.
|
||||
* gas/xtensa/entry_misalign2.s: Likewise.
|
||||
* gas/xtensa/entry_misalign.s: Likewise.
|
||||
* gas/xtensa/j_too_far.s: Likewise.
|
||||
* gas/xtensa/loop_align.s: Likewise.
|
||||
* gas/xtensa/loop_misalign.s: Likewise.
|
||||
* gas/xtensa/all.exp: New file.
|
||||
* gas/xtensa/entry_align.s: Likewise.
|
||||
* gas/xtensa/entry_misalign2.s: Likewise.
|
||||
* gas/xtensa/entry_misalign.s: Likewise.
|
||||
* gas/xtensa/j_too_far.s: Likewise.
|
||||
* gas/xtensa/loop_align.s: Likewise.
|
||||
* gas/xtensa/loop_misalign.s: Likewise.
|
||||
|
||||
2003-03-25 Stan Cox <scox@redhat.com>
|
||||
Nick Clifton <nickc@redhat.com>
|
||||
|
||||
|
||||
Contribute support for Intel's iWMMXt chip - an ARM variant:
|
||||
|
||||
* gas/arm/arm.exp: Run iwmmxt test.
|
||||
@ -300,14 +306,14 @@
|
||||
|
||||
* gas/all/test-gen.c: New file: Framework for automatically
|
||||
generating assembler test files.
|
||||
* gas/all/test-examples.c: New file: Example of a file using
|
||||
* gas/all/test-examples.c: New file: Example of a file using
|
||||
test-gen.c.
|
||||
|
||||
* gas/arm/maverick.c: Rework to produce correct test files and
|
||||
* gas/arm/maverick.c: Rework to produce correct test files and
|
||||
fix formatting.
|
||||
* gas/arm/maverick.s: Regenerate.
|
||||
* gas/arm/maverick.d: Regenerate.
|
||||
* gas/arm/arm.exp: Always run Maverick tests.
|
||||
* gas/arm/maverick.s: Regenerate.
|
||||
* gas/arm/maverick.d: Regenerate.
|
||||
* gas/arm/arm.exp: Always run Maverick tests.
|
||||
|
||||
2003-02-21 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
@ -486,8 +492,8 @@
|
||||
|
||||
2002-12-20 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* lib/gas-defs.exp (run_dump_test): Add a new optional argument,
|
||||
"extra_options".
|
||||
* lib/gas-defs.exp (run_dump_test): Add a new optional argument,
|
||||
"extra_options".
|
||||
|
||||
2002-12-18 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
@ -550,8 +556,8 @@
|
||||
|
||||
2002-12-05 Jim Wilson <wilson@redhat.com>
|
||||
|
||||
* gas/ia64/opc-x.d: Regenerate.
|
||||
|
||||
* gas/ia64/opc-x.d: Regenerate.
|
||||
|
||||
2002-12-05 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* gas/arm/adrl.s: Pad end of .text.
|
||||
@ -631,7 +637,7 @@
|
||||
* gas/xstormy16/allinsn.sh: Add sdiv, divlh, and sdivlh.
|
||||
* gas/xstormy16/allinsn.d: Regenerate.
|
||||
* gas/xstormy16/allinsn.s: Regenerate.
|
||||
|
||||
|
||||
2002-11-18 Svein E. Seldal <Svein.Seldal@solidas.com>
|
||||
|
||||
* gas/all/gas.exp: Setup for tic4x testcase
|
||||
|
101
gas/testsuite/gas/cfi/cfi-i386.d
Normal file
101
gas/testsuite/gas/cfi/cfi-i386.d
Normal file
@ -0,0 +1,101 @@
|
||||
#readelf: -wf
|
||||
#name: CFI on i386
|
||||
|
||||
The section .eh_frame contains:
|
||||
|
||||
00000000 00000010 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -4
|
||||
Return address column: 8
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 4
|
||||
DW_CFA_offset: r8 at cfa-4
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000014 00000014 00000018 FDE cie=00000000 pc=00000000..00000012
|
||||
DW_CFA_advance_loc: 6 to 00000006
|
||||
DW_CFA_def_cfa_offset: 4664
|
||||
DW_CFA_advance_loc: 11 to 00000011
|
||||
DW_CFA_def_cfa_offset: 4
|
||||
DW_CFA_nop
|
||||
|
||||
0000002c 00000010 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -4
|
||||
Return address column: 8
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 4
|
||||
DW_CFA_offset: r8 at cfa-4
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000040 00000018 00000018 FDE cie=0000002c pc=00000012..0000001f
|
||||
DW_CFA_advance_loc: 1 to 00000013
|
||||
DW_CFA_def_cfa_offset: 8
|
||||
DW_CFA_offset: r6 at cfa-8
|
||||
DW_CFA_advance_loc: 2 to 00000015
|
||||
DW_CFA_def_cfa_reg: r6
|
||||
DW_CFA_advance_loc: 9 to 0000001e
|
||||
DW_CFA_def_cfa_reg: r7
|
||||
DW_CFA_nop
|
||||
|
||||
0000005c 00000010 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -4
|
||||
Return address column: 8
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 4
|
||||
DW_CFA_offset: r8 at cfa-4
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000070 00000014 00000018 FDE cie=0000005c pc=0000001f..0000002f
|
||||
DW_CFA_advance_loc: 2 to 00000021
|
||||
DW_CFA_def_cfa_reg: r1
|
||||
DW_CFA_advance_loc: 13 to 0000002e
|
||||
DW_CFA_def_cfa: r7 ofs 4
|
||||
DW_CFA_nop
|
||||
|
||||
00000088 00000010 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -4
|
||||
Return address column: 8
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 4
|
||||
DW_CFA_offset: r8 at cfa-4
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
0000009c 00000010 00000018 FDE cie=00000088 pc=0000002f..00000035
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
000000b0 00000010 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -4
|
||||
Return address column: 8
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 4
|
||||
DW_CFA_offset: r8 at cfa-4
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
000000c4 00000010 00000018 FDE cie=000000b0 pc=00000035..00000044
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
107
gas/testsuite/gas/cfi/cfi-i386.s
Normal file
107
gas/testsuite/gas/cfi/cfi-i386.s
Normal file
@ -0,0 +1,107 @@
|
||||
#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
|
||||
|
||||
.text
|
||||
|
||||
#; func_locvars
|
||||
#; - function with a space on the stack
|
||||
#; allocated for local variables
|
||||
|
||||
.type func_locvars,@function
|
||||
func_locvars:
|
||||
.cfi_startproc
|
||||
|
||||
#; alocate space for local vars
|
||||
sub $0x1234,%esp
|
||||
.cfi_adjust_cfa_offset 0x1234
|
||||
|
||||
#; dummy body
|
||||
movl $1,%eax
|
||||
|
||||
#; release space of local vars and return
|
||||
add $0x1234,%esp
|
||||
.cfi_adjust_cfa_offset -0x1234
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; func_prologue
|
||||
#; - functions that begins with standard
|
||||
#; prologue: "pushq %rbp; movq %rsp,%rbp"
|
||||
|
||||
.type func_prologue,@function
|
||||
func_prologue:
|
||||
.cfi_startproc
|
||||
|
||||
#; prologue, CFI is valid after
|
||||
#; each instruction.
|
||||
pushl %ebp
|
||||
.cfi_def_cfa_offset 8
|
||||
.cfi_offset ebp,-8
|
||||
movl %esp, %ebp
|
||||
.cfi_def_cfa_register ebp
|
||||
|
||||
#; function body
|
||||
call func_locvars
|
||||
addl $3, %eax
|
||||
|
||||
#; epilogue with valid CFI
|
||||
#; (we're better than gcc :-)
|
||||
leave
|
||||
.cfi_def_cfa_register esp
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; func_otherreg
|
||||
#; - function that moves frame pointer to
|
||||
#; another register (r12) and then allocates
|
||||
#; a space for local variables
|
||||
|
||||
.type func_otherreg,@function
|
||||
func_otherreg:
|
||||
.cfi_startproc
|
||||
|
||||
#; save frame pointer to ebx
|
||||
mov %esp,%ebx
|
||||
.cfi_def_cfa_register ebx
|
||||
|
||||
#; alocate space for local vars
|
||||
#; (no .cfi_{def,adjust}_cfa_offset here,
|
||||
#; because CFA is computed from r12!)
|
||||
sub $100,%esp
|
||||
|
||||
#; function body
|
||||
call func_prologue
|
||||
add $2, %eax
|
||||
|
||||
#; restore frame pointer from r12
|
||||
mov %ebx,%esp
|
||||
.cfi_def_cfa esp,4
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; main
|
||||
#; - typical function
|
||||
.type main,@function
|
||||
main:
|
||||
.cfi_startproc
|
||||
|
||||
#; only function body that doesn't
|
||||
#; touch the stack at all.
|
||||
call func_otherreg
|
||||
|
||||
#; return
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; _start
|
||||
#; - standard entry point
|
||||
|
||||
.type _start,@function
|
||||
.globl _start
|
||||
_start:
|
||||
.cfi_startproc
|
||||
call main
|
||||
movl %eax,%edi
|
||||
movl $0x1,%eax
|
||||
int $0x80
|
||||
hlt
|
||||
.cfi_endproc
|
133
gas/testsuite/gas/cfi/cfi-x86_64.d
Normal file
133
gas/testsuite/gas/cfi/cfi-x86_64.d
Normal file
@ -0,0 +1,133 @@
|
||||
#readelf: -wf
|
||||
#name: CFI on x86-64
|
||||
|
||||
The section .eh_frame contains:
|
||||
|
||||
00000000 00000014 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -8
|
||||
Return address column: 16
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 8
|
||||
DW_CFA_offset: r16 at cfa-8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000018 0000001c 0000001c FDE cie=00000000 pc=00000000..00000014
|
||||
DW_CFA_advance_loc: 7 to 00000007
|
||||
DW_CFA_def_cfa_offset: 4668
|
||||
DW_CFA_advance_loc: 12 to 00000013
|
||||
DW_CFA_def_cfa_offset: 8
|
||||
DW_CFA_nop
|
||||
|
||||
00000038 00000014 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -8
|
||||
Return address column: 16
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 8
|
||||
DW_CFA_offset: r16 at cfa-8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000050 00000024 0000001c FDE cie=00000038 pc=00000000..0000000f
|
||||
DW_CFA_advance_loc: 1 to 00000001
|
||||
DW_CFA_def_cfa_offset: 16
|
||||
DW_CFA_offset: r6 at cfa-16
|
||||
DW_CFA_advance_loc: 3 to 00000004
|
||||
DW_CFA_def_cfa_reg: r6
|
||||
DW_CFA_advance_loc: 10 to 0000000e
|
||||
DW_CFA_def_cfa: r7 ofs 8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000078 00000014 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -8
|
||||
Return address column: 16
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 8
|
||||
DW_CFA_offset: r16 at cfa-8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000090 0000001c 0000001c FDE cie=00000078 pc=00000000..00000013
|
||||
DW_CFA_advance_loc: 3 to 00000003
|
||||
DW_CFA_def_cfa_reg: r12
|
||||
DW_CFA_advance_loc: 15 to 00000012
|
||||
DW_CFA_def_cfa_reg: r7
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
000000b0 00000014 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -8
|
||||
Return address column: 16
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 8
|
||||
DW_CFA_offset: r16 at cfa-8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
000000c8 0000001c 0000001c FDE cie=000000b0 pc=00000000..00000006
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
000000e8 00000014 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: ""
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -8
|
||||
Return address column: 16
|
||||
|
||||
DW_CFA_def_cfa: r7 ofs 8
|
||||
DW_CFA_offset: r16 at cfa-8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000100 0000001c 0000001c FDE cie=000000e8 pc=00000000..00000012
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
107
gas/testsuite/gas/cfi/cfi-x86_64.s
Normal file
107
gas/testsuite/gas/cfi/cfi-x86_64.s
Normal file
@ -0,0 +1,107 @@
|
||||
#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
|
||||
|
||||
.text
|
||||
|
||||
#; func_locvars
|
||||
#; - function with a space on the stack
|
||||
#; allocated for local variables
|
||||
|
||||
.type func_locvars,@function
|
||||
func_locvars:
|
||||
.cfi_startproc
|
||||
|
||||
#; alocate space for local vars
|
||||
sub $0x1234,%rsp
|
||||
.cfi_adjust_cfa_offset 0x1234
|
||||
|
||||
#; dummy body
|
||||
movl $1,%eax
|
||||
|
||||
#; release space of local vars and return
|
||||
add $0x1234,%rsp
|
||||
.cfi_adjust_cfa_offset -0x1234
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; func_prologue
|
||||
#; - functions that begins with standard
|
||||
#; prologue: "pushq %rbp; movq %rsp,%rbp"
|
||||
|
||||
.type func_prologue,@function
|
||||
func_prologue:
|
||||
.cfi_startproc
|
||||
|
||||
#; prologue, CFI is valid after
|
||||
#; each instruction.
|
||||
pushq %rbp
|
||||
.cfi_def_cfa_offset 16
|
||||
.cfi_offset rbp,-16
|
||||
movq %rsp, %rbp
|
||||
.cfi_def_cfa_register rbp
|
||||
|
||||
#; function body
|
||||
call func_locvars
|
||||
addl $3, %eax
|
||||
|
||||
#; epilogue with valid CFI
|
||||
#; (we're better than gcc :-)
|
||||
leaveq
|
||||
.cfi_def_cfa rsp,8
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; func_otherreg
|
||||
#; - function that moves frame pointer to
|
||||
#; another register (r12) and then allocates
|
||||
#; a space for local variables
|
||||
|
||||
.type func_otherreg,@function
|
||||
func_otherreg:
|
||||
.cfi_startproc
|
||||
|
||||
#; save frame pointer to r12
|
||||
movq %rsp,%r12
|
||||
.cfi_def_cfa_register r12
|
||||
|
||||
#; alocate space for local vars
|
||||
#; (no .cfi_{def,adjust}_cfa_offset here,
|
||||
#; because CFA is computed from r12!)
|
||||
sub $100,%rsp
|
||||
|
||||
#; function body
|
||||
call func_prologue
|
||||
addl $2, %eax
|
||||
|
||||
#; restore frame pointer from r12
|
||||
movq %r12,%rsp
|
||||
.cfi_def_cfa_register rsp
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; main
|
||||
#; - typical function
|
||||
.type main,@function
|
||||
main:
|
||||
.cfi_startproc
|
||||
|
||||
#; only function body that doesn't
|
||||
#; touch the stack at all.
|
||||
call func_otherreg
|
||||
|
||||
#; return
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
#; _start
|
||||
#; - standard entry point
|
||||
|
||||
.type _start,@function
|
||||
.globl _start
|
||||
_start:
|
||||
.cfi_startproc
|
||||
call main
|
||||
movq %rax,%rdi
|
||||
movq $0x3c,%rax
|
||||
syscall
|
||||
hlt
|
||||
.cfi_endproc
|
7
gas/testsuite/gas/cfi/cfi.exp
Normal file
7
gas/testsuite/gas/cfi/cfi.exp
Normal file
@ -0,0 +1,7 @@
|
||||
if [istarget "x86_64-*"] then {
|
||||
run_dump_test "cfi-x86_64"
|
||||
}
|
||||
|
||||
if [istarget "i?86-*"] then {
|
||||
run_dump_test "cfi-i386"
|
||||
}
|
Loading…
Reference in New Issue
Block a user