mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
gas/
* config/tc-mips.c (mips_pseudo_table): Add stabd and stabs entries. (s_mips_stab): Do not restrict to stabn only. gas/testsuite/ * gas/mips/mips16-stabs.s, gas/mips/mips16-stabs.d: New test. * gas/mips/mips.exp: Run it.
This commit is contained in:
parent
13761a1136
commit
754e2bb948
@ -1,3 +1,8 @@
|
||||
2013-05-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* config/tc-mips.c (mips_pseudo_table): Add stabd and stabs entries.
|
||||
(s_mips_stab): Do not restrict to stabn only.
|
||||
|
||||
2013-05-02 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/tc-msp430.c: Add support for the MSP430X architecture.
|
||||
|
@ -1472,7 +1472,9 @@ static const pseudo_typeS mips_pseudo_table[] =
|
||||
{"section", s_change_section, 0},
|
||||
{"short", s_cons, 1},
|
||||
{"single", s_float_cons, 'f'},
|
||||
{"stabd", s_mips_stab, 'd'},
|
||||
{"stabn", s_mips_stab, 'n'},
|
||||
{"stabs", s_mips_stab, 's'},
|
||||
{"text", s_change_sec, 't'},
|
||||
{"word", s_cons, 2},
|
||||
|
||||
@ -17088,18 +17090,24 @@ s_insn (int ignore ATTRIBUTE_UNUSED)
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
/* Handle a .stabn directive. We need these in order to mark a label
|
||||
as being a mips16 text label correctly. Sometimes the compiler
|
||||
will emit a label, followed by a .stabn, and then switch sections.
|
||||
If the label and .stabn are in mips16 mode, then the label is
|
||||
really a mips16 text label. */
|
||||
/* Handle a .stab[snd] directive. Ideally these directives would be
|
||||
implemented in a transparent way, so that removing them would not
|
||||
have any effect on the generated instructions. However, s_stab
|
||||
internally changes the section, so in practice we need to decide
|
||||
now whether the preceding label marks compressed code. We do not
|
||||
support changing the compression mode of a label after a .stab*
|
||||
directive, such as in:
|
||||
|
||||
foo:
|
||||
.stabs ...
|
||||
.set mips16
|
||||
|
||||
so the current mode wins. */
|
||||
|
||||
static void
|
||||
s_mips_stab (int type)
|
||||
{
|
||||
if (type == 'n')
|
||||
mips_mark_labels ();
|
||||
|
||||
mips_mark_labels ();
|
||||
s_stab (type);
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-05-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* gas/mips/mips16-stabs.s, gas/mips/mips16-stabs.d: New test.
|
||||
* gas/mips/mips.exp: Run it.
|
||||
|
||||
2013-05-02 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* gas/all/gas.exp: Skip the DIFF1 test for the MSP430.
|
||||
|
@ -1086,6 +1086,7 @@ if { [istarget mips*-*-vxworks*] } {
|
||||
if $has_newabi {
|
||||
run_dump_test "mips16-dwarf2-n32"
|
||||
}
|
||||
run_dump_test "mips16-stabs"
|
||||
}
|
||||
if { !$no_mips16 } {
|
||||
run_dump_test "mips16e-jrc"
|
||||
|
6
gas/testsuite/gas/mips/mips16-stabs.d
Normal file
6
gas/testsuite/gas/mips/mips16-stabs.d
Normal file
@ -0,0 +1,6 @@
|
||||
#as: -mips3 -EB
|
||||
#objdump: -dr
|
||||
#...
|
||||
0+ <foo>:
|
||||
0: e820 jr ra
|
||||
#pass
|
8
gas/testsuite/gas/mips/mips16-stabs.s
Normal file
8
gas/testsuite/gas/mips/mips16-stabs.s
Normal file
@ -0,0 +1,8 @@
|
||||
.align 2
|
||||
.set mips16
|
||||
.globl foo
|
||||
.ent foo
|
||||
foo:
|
||||
.stabs "foo:F(0,49)",36,0,0,foo
|
||||
jr $31
|
||||
.end foo
|
Loading…
Reference in New Issue
Block a user