diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-04-15 11:38:59 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-04-15 11:38:59 +0000 |
commit | 8fe53b44b26c678f71cb6363c2ede330979e62c9 (patch) | |
tree | ac129a8101492a6fa1a555cb0d03f65f8c18ffc0 /gas | |
parent | 21bc75678ff404bacf11a79e94574d5c25945644 (diff) | |
download | gdb-8fe53b44b26c678f71cb6363c2ede330979e62c9.zip gdb-8fe53b44b26c678f71cb6363c2ede330979e62c9.tar.gz gdb-8fe53b44b26c678f71cb6363c2ede330979e62c9.tar.bz2 |
gas/
2005-04-15 Jan Beulich <jbeulich@novell.com>
* config/obj-elf.c (obj_elf_struct): New.
(elf_pseudo_table). Use it for .offset and .struct.
gas/testsuite/
2005-04-15 Jan Beulich <jbeulich@novell.com>
* gas/elf/struct.[sd]: New.
* gas/elf/elf.exp: Run new test.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/obj-elf.c | 21 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/elf.exp | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/struct.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/struct.s | 9 |
6 files changed, 51 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 5616f33..09ddfac 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2005-04-15 Jan Beulich <jbeulich@novell.com> + + * config/obj-elf.c (obj_elf_struct): New. + (elf_pseudo_table). Use it for .offset and .struct. + 2005-04-14 Bob Wilson <bob.wilson@acm.org> Sterling Augustine <sterling@tensilica.com> diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 37bb27f..d8a93a5 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -65,6 +65,7 @@ static void obj_elf_subsection (int); static void obj_elf_popsection (int); static void obj_elf_tls_common (int); static void obj_elf_lcomm (int); +static void obj_elf_struct (int); static const pseudo_typeS elf_pseudo_table[] = { @@ -113,6 +114,8 @@ static const pseudo_typeS elf_pseudo_table[] = /* We need to trap the section changing calls to handle .previous. */ {"data", obj_elf_data, 0}, + {"offset", obj_elf_struct, 0}, + {"struct", obj_elf_struct, 0}, {"text", obj_elf_text, 0}, {"tls_common", obj_elf_tls_common, 0}, @@ -1036,6 +1039,24 @@ obj_elf_text (int i) #endif } +/* Change to the *ABS* section. */ + +void +obj_elf_struct (int i) +{ +#ifdef md_flush_pending_output + md_flush_pending_output (); +#endif + + previous_section = now_seg; + previous_subsection = now_subseg; + s_struct (i); + +#ifdef md_elf_section_change_hook + md_elf_section_change_hook (); +#endif +} + static void obj_elf_subsection (int ignore ATTRIBUTE_UNUSED) { diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 559f2d9..a41d813 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-04-15 Jan Beulich <jbeulich@novell.com> + + * gas/elf/struct.[sd]: New. + * gas/elf/elf.exp: Run new test. + 2005-04-15 Alan Modra <amodra@bigpond.net.au> * gas/all/assign.s: New. diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 01e1ccd..89dffe8 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -61,6 +61,7 @@ if { ([istarget "*-*-*elf*"] run_dump_test "section3" run_dump_test "section4" run_list_test "section5" "" "-al" "-SW" "| grep \" \\\\.test\\\[0-9\\\]\"" + run_dump_test "struct" run_dump_test "symver" run_list_test "type" "" "" "-s" "| grep \"1 \\\[FONT\\\]\"" } diff --git a/gas/testsuite/gas/elf/struct.d b/gas/testsuite/gas/elf/struct.d new file mode 100644 index 0000000..a681068 --- /dev/null +++ b/gas/testsuite/gas/elf/struct.d @@ -0,0 +1,10 @@ +#nm: --extern-only +#name: struct + +# Test the .struct pseudo-op. + +0+0 D l1 +0+4 D l2 +0+1 A w1 +0+3 A w2 +0+5 A w3 diff --git a/gas/testsuite/gas/elf/struct.s b/gas/testsuite/gas/elf/struct.s new file mode 100644 index 0000000..f84f93e --- /dev/null +++ b/gas/testsuite/gas/elf/struct.s @@ -0,0 +1,9 @@ + .globl w1, w2, w3, l1, l2 + .data +l1: .long 0 + .struct 1 +w1: .short 0 +w2: .short 0 +w3: .short 0 + .previous +l2: .long 0 |