diff options
author | Eric Christopher <echristo@gmail.com> | 2005-03-15 05:28:17 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2005-03-15 05:28:17 +0000 |
commit | 5862107c33031d3a5ec20582e3f55cd2b2d21675 (patch) | |
tree | 2f3eb9c334cabedccd28d179d7ed2f4d4c7c3d8c | |
parent | 729ae8d20e264b0b4577be580ab2349b0391383b (diff) | |
download | gdb-5862107c33031d3a5ec20582e3f55cd2b2d21675.zip gdb-5862107c33031d3a5ec20582e3f55cd2b2d21675.tar.gz gdb-5862107c33031d3a5ec20582e3f55cd2b2d21675.tar.bz2 |
==> ChangeLog <==
2005-03-14 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c: Include dw2gencfi.h.
(mips_cfi_frame_initial_instructions): New.
* config/tc-mips.h (TARGET_USE_CFIPOP): Define.
(tc_cfi_frame_initial_instructions): Ditto.
(DWARF2_DEFAULT_RETURN_COLUMN): Ditto.
(DWARF2_CIE_DATA_ALIGNMENT): Ditto.
* Makefile.am: Update dependencies.
* Makefile.in: Regenerate.
==> testsuite/ChangeLog <==
2005-03-14 Eric Christopher <echristo@redhat.com>
* gas/cfi/cfi-mips-1.d, gas/cfi/cfi-mips-1.s: New dump test.
* gas/cfi/cfi.exp: Run it.
* gas/cfi/cfi-common-1.d: Update.
* gas/cfi/cfi-common-2.d: Ditto.
* gas/cfi/cfi-common-3.d: Ditto.
* gas/cfi/cfi-common-4.d: Ditto.
-rw-r--r-- | gas/ChangeLog | 11 | ||||
-rw-r--r-- | gas/Makefile.am | 2 | ||||
-rw-r--r-- | gas/Makefile.in | 2 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 9 | ||||
-rw-r--r-- | gas/config/tc-mips.h | 8 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi-common-1.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi-common-2.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi-common-3.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi-common-4.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi-mips-1.d | 27 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi-mips-1.s | 39 | ||||
-rw-r--r-- | gas/testsuite/gas/cfi/cfi.exp | 2 |
13 files changed, 111 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index cbca7e4..d98f5b0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,14 @@ +2005-03-14 Eric Christopher <echristo@redhat.com> + + * config/tc-mips.c: Include dw2gencfi.h. + (mips_cfi_frame_initial_instructions): New. + * config/tc-mips.h (TARGET_USE_CFIPOP): Define. + (tc_cfi_frame_initial_instructions): Ditto. + (DWARF2_DEFAULT_RETURN_COLUMN): Ditto. + (DWARF2_CIE_DATA_ALIGNMENT): Ditto. + * Makefile.am: Update dependencies. + * Makefile.in: Regenerate. + 2005-03-15 Alan Modra <amodra@bigpond.net.au> * po/es.po: Commit new Spanish translation. diff --git a/gas/Makefile.am b/gas/Makefile.am index 450852a..38676b8 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -1302,7 +1302,7 @@ DEPTC_mips_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-mips.h \ subsegs.h $(INCDIR)/obstack.h $(INCDIR)/safe-ctype.h \ - $(INCDIR)/opcode/mips.h itbl-ops.h dwarf2dbg.h $(INCDIR)/elf/mips.h \ + $(INCDIR)/opcode/mips.h itbl-ops.h dwarf2dbg.h dw2gencfi.h $(INCDIR)/elf/mips.h \ $(INCDIR)/elf/reloc-macros.h ecoff.h $(INCDIR)/coff/sym.h \ $(INCDIR)/coff/ecoff.h DEPTC_mmix_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ diff --git a/gas/Makefile.in b/gas/Makefile.in index 3b04581..26623f7 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -1141,7 +1141,7 @@ DEPTC_mips_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-mips.h \ subsegs.h $(INCDIR)/obstack.h $(INCDIR)/safe-ctype.h \ - $(INCDIR)/opcode/mips.h itbl-ops.h dwarf2dbg.h $(INCDIR)/elf/mips.h \ + $(INCDIR)/opcode/mips.h itbl-ops.h dwarf2dbg.h dw2gencfi.h $(INCDIR)/elf/mips.h \ $(INCDIR)/elf/reloc-macros.h ecoff.h $(INCDIR)/coff/sym.h \ $(INCDIR)/coff/ecoff.h diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 655be76..84f58e3 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -33,6 +33,7 @@ #include "opcode/mips.h" #include "itbl-ops.h" #include "dwarf2dbg.h" +#include "dw2gencfi.h" #ifdef DEBUG #define DBG(x) printf x @@ -14016,3 +14017,11 @@ mips_dwarf2_addr_size (void) else return 4; } + +/* Standard calling conventions leave the CFA at SP on entry. */ +void +mips_cfi_frame_initial_instructions (void) +{ + cfi_add_CFA_def_cfa_register (SP); +} + diff --git a/gas/config/tc-mips.h b/gas/config/tc-mips.h index 720f644..a5d5cf1 100644 --- a/gas/config/tc-mips.h +++ b/gas/config/tc-mips.h @@ -161,4 +161,12 @@ extern enum dwarf2_format mips_dwarf2_format (void); extern int mips_dwarf2_addr_size (void); #define DWARF2_ADDR_SIZE(bfd) mips_dwarf2_addr_size () +#define TARGET_USE_CFIPOP 1 + +#define tc_cfi_frame_initial_instructions mips_cfi_frame_initial_instructions +extern void mips_cfi_frame_initial_instructions (void); + +#define DWARF2_DEFAULT_RETURN_COLUMN 31 +#define DWARF2_CIE_DATA_ALIGNMENT -4 + #endif /* TC_MIPS */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 09706cf..4ea866d 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2005-03-14 Eric Christopher <echristo@redhat.com> + + * gas/cfi/cfi-mips-1.d, gas/cfi/cfi-mips-1.s: New dump test. + * gas/cfi/cfi.exp: Run it. + * gas/cfi/cfi-common-1.d: Update. + * gas/cfi/cfi-common-2.d: Ditto. + * gas/cfi/cfi-common-3.d: Ditto. + * gas/cfi/cfi-common-4.d: Ditto. + 2005-03-12 Zack Weinberg <zack@codesourcery.com> * gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test. diff --git a/gas/testsuite/gas/cfi/cfi-common-1.d b/gas/testsuite/gas/cfi/cfi-common-1.d index 332c477..9f5d993 100644 --- a/gas/testsuite/gas/cfi/cfi-common-1.d +++ b/gas/testsuite/gas/cfi/cfi-common-1.d @@ -8,7 +8,7 @@ The section .eh_frame contains: Code alignment factor: .* Data alignment factor: .* Return address column: .* - Augmentation data: 1b + Augmentation data: [01]b DW_CFA_nop DW_CFA_nop diff --git a/gas/testsuite/gas/cfi/cfi-common-2.d b/gas/testsuite/gas/cfi/cfi-common-2.d index a1f1d06..a54e542 100644 --- a/gas/testsuite/gas/cfi/cfi-common-2.d +++ b/gas/testsuite/gas/cfi/cfi-common-2.d @@ -8,7 +8,7 @@ The section .eh_frame contains: Code alignment factor: .* Data alignment factor: .* Return address column: .* - Augmentation data: 1b + Augmentation data: [01]b #... 00000014 000000[12][c0] 00000018 FDE cie=00000000 pc=.* DW_CFA_advance_loc: 4 to .* diff --git a/gas/testsuite/gas/cfi/cfi-common-3.d b/gas/testsuite/gas/cfi/cfi-common-3.d index 82a4193..70055aa 100644 --- a/gas/testsuite/gas/cfi/cfi-common-3.d +++ b/gas/testsuite/gas/cfi/cfi-common-3.d @@ -8,7 +8,7 @@ The section .eh_frame contains: Code alignment factor: .* Data alignment factor: .* Return address column: .* - Augmentation data: 1b + Augmentation data: [01]b #... 00000014 00000010 00000018 FDE cie=00000000 pc=.* DW_CFA_advance_loc: 4 to .* diff --git a/gas/testsuite/gas/cfi/cfi-common-4.d b/gas/testsuite/gas/cfi/cfi-common-4.d index c6bbae8..9d65270 100644 --- a/gas/testsuite/gas/cfi/cfi-common-4.d +++ b/gas/testsuite/gas/cfi/cfi-common-4.d @@ -8,7 +8,7 @@ The section .eh_frame contains: Code alignment factor: .* Data alignment factor: .* Return address column: .* - Augmentation data: 1b + Augmentation data: [01]b #... 00000014 00000010 00000018 FDE cie=00000000 pc=.* DW_CFA_remember_state diff --git a/gas/testsuite/gas/cfi/cfi-mips-1.d b/gas/testsuite/gas/cfi/cfi-mips-1.d new file mode 100644 index 0000000..7a8d8e8 --- /dev/null +++ b/gas/testsuite/gas/cfi/cfi-mips-1.d @@ -0,0 +1,27 @@ +#readelf: -wf +#name: CFI on mips, 1 +The section .eh_frame contains: + +00000000 00000014 00000000 CIE + Version: 1 + Augmentation: "zR" + Code alignment factor: 1 + Data alignment factor: -4 + Return address column: 31 + Augmentation data: 0b + + DW_CFA_def_cfa_reg: r29 + DW_CFA_def_cfa: r29 ofs 0 + DW_CFA_nop + DW_CFA_nop + +00000018 0000001c 0000001c FDE cie=00000000 pc=00000000..0000002c + DW_CFA_advance_loc: 4 to 00000004 + DW_CFA_def_cfa_offset: 8 + DW_CFA_advance_loc: 4 to 00000008 + DW_CFA_offset: r30 at cfa-8 + DW_CFA_advance_loc: 4 to 0000000c + DW_CFA_def_cfa: r30 ofs 8 + DW_CFA_advance_loc: 24 to 00000024 + DW_CFA_def_cfa: r29 ofs 0 + DW_CFA_nop diff --git a/gas/testsuite/gas/cfi/cfi-mips-1.s b/gas/testsuite/gas/cfi/cfi-mips-1.s new file mode 100644 index 0000000..cf7d5e2 --- /dev/null +++ b/gas/testsuite/gas/cfi/cfi-mips-1.s @@ -0,0 +1,39 @@ + .file 1 "foo.c" + .section .mdebug.abi64 + .previous + .text + .align 2 + .globl foo + .ent foo + .cfi_startproc +foo: + .frame $fp,8,$31 # vars= 8, regs= 1/0, args= 0, gp= 0 + .mask 0x40000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + .cfi_def_cfa $sp, 0 + addiu $sp,$sp,-8 + .cfi_adjust_cfa_offset 8 + sw $fp,0($sp) + .cfi_offset $30, -8 + move $fp,$sp + .cfi_def_cfa $fp, 8 + + nop + nop + nop + + move $sp,$fp + lw $fp,0($sp) + addiu $sp,$sp,8 + .cfi_def_cfa $sp, 0 + j $31 + nop + .set macro + .set reorder + .end foo + .cfi_endproc + .size foo, .-foo + .ident "GCC: (GNU) 4.0.0 20041226 (experimental)" diff --git a/gas/testsuite/gas/cfi/cfi.exp b/gas/testsuite/gas/cfi/cfi.exp index 21483b1..eeb5510 100644 --- a/gas/testsuite/gas/cfi/cfi.exp +++ b/gas/testsuite/gas/cfi/cfi.exp @@ -59,6 +59,8 @@ if [istarget "x86_64-*"] then { } elseif { [istarget "arm*-*"] || [istarget "xscale*-*"] } then { run_dump_test "cfi-arm-1" +} elseif { [istarget "mips*-*"] } then { + run_dump_test "cfi-mips-1" } else { return } |