diff options
Diffstat (limited to 'ld/testsuite/ld-pe')
-rw-r--r-- | ld/testsuite/ld-pe/cfi.d | 36 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/cfi32.d | 28 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/cfia.s | 26 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/cfib.s | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/pe.exp | 6 |
5 files changed, 112 insertions, 0 deletions
diff --git a/ld/testsuite/ld-pe/cfi.d b/ld/testsuite/ld-pe/cfi.d new file mode 100644 index 0000000..6c5042b --- /dev/null +++ b/ld/testsuite/ld-pe/cfi.d @@ -0,0 +1,36 @@ +#source: cfia.s +#source: cfib.s +#ld: --file-align 1 --section-align 1 +#objdump: -Wf + +#... +00000004 00000014 ffffffff CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: \-8 + Return address column: 32 + + DW_CFA_def_cfa: r7 \(rsp\) ofs 8 + DW_CFA_offset: r32 \(xmm15\) at cfa\-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +0000001c 00000024 00000004 FDE cie=00000004 pc=.* + DW_CFA_advance_loc: 4 to .* + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 \(rbp\) at cfa\-16 + DW_CFA_advance_loc: 4 to .* +^ DW_CFA_def_cfa: r7 \(rsp\) ofs 8 + DW_CFA_restore: r6 \(rbp\) + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop +#pass diff --git a/ld/testsuite/ld-pe/cfi32.d b/ld/testsuite/ld-pe/cfi32.d new file mode 100644 index 0000000..d13fb1a --- /dev/null +++ b/ld/testsuite/ld-pe/cfi32.d @@ -0,0 +1,28 @@ +#source: cfia.s +#source: cfib.s +#ld: --file-align 1 --section-align 1 +#objdump: -Wf + +#... +00000000 00000010 ffffffff CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: \-4 + Return address column: 8 + + DW_CFA_def_cfa: r4 \(esp\) ofs 4 + DW_CFA_offset: r8 \(eip\) at cfa\-4 + DW_CFA_nop + DW_CFA_nop + +00000014 00000018 00000000 FDE cie=00000000 pc=.* + DW_CFA_advance_loc: 4 to .* + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 \(esi\) at cfa\-16 + DW_CFA_advance_loc: 4 to .* + DW_CFA_def_cfa: r7 \(edi\) ofs 8 + DW_CFA_restore: r6 \(esi\) + DW_CFA_nop + DW_CFA_nop +#pass diff --git a/ld/testsuite/ld-pe/cfia.s b/ld/testsuite/ld-pe/cfia.s new file mode 100644 index 0000000..d1ea51d --- /dev/null +++ b/ld/testsuite/ld-pe/cfia.s @@ -0,0 +1,26 @@ + .globl _mainCRTStartup + .globl _start + .text +_mainCRTStartup: +mainCRTStartup: +_start: +start: + .long -1 + + .cfi_sections .debug_frame + .section .text$abc,"x" + .linkonce discard + .align 2 + .globl _tst + .def _tst; .scl 2; .type 32; .endef +_tst: + .cfi_startproc + .long 0 + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + .long 1 + .cfi_def_cfa 7, 8 + .cfi_restore 6 + .long 2 + .cfi_endproc + diff --git a/ld/testsuite/ld-pe/cfib.s b/ld/testsuite/ld-pe/cfib.s new file mode 100644 index 0000000..9b761cf --- /dev/null +++ b/ld/testsuite/ld-pe/cfib.s @@ -0,0 +1,16 @@ + .cfi_sections .debug_frame + .section .text$abc,"x" + .linkonce discard + .align 2 + .globl _tst + .def _tst; .scl 2; .type 32; .endef +_tst: + .cfi_startproc + .long 0 + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + .long 1 + .cfi_def_cfa 7, 8 + .cfi_restore 6 + .long 2 + .cfi_endproc diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index 183c5c6..c72c3b1 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -77,6 +77,12 @@ run_dump_test "longsecn-5" run_dump_test "orphan" run_dump_test "orphan_nu" +if {[istarget x86_64-*-mingw*] } { + run_dump_test "cfi" +} elseif {[istarget i*86-*-cygwin*] || [istarget i*86-*-mingw*] } { + run_dump_test "cfi32" +} + set foreign_sym_test { {"non-C aligned common" "" "" {non-c-lang-syms.s} {{nm -C non-c-lang-syms.d}} "non-c-lang-syms.x"} |