diff options
author | Faraz Shahbazker <fshahbazker@wavecomp.com> | 2019-08-05 23:38:46 +0000 |
---|---|---|
committer | Faraz Shahbazker <fshahbazker@wavecomp.com> | 2019-08-19 13:43:50 -0700 |
commit | 770c015139f038bd7b7abb5c6d84eb39d36d3080 (patch) | |
tree | 29807efdc505a9762d32ffb02fba43a1c3aa80a7 /gas/config | |
parent | 7ce8f214f1af1dd593ad42665da416ac46033f97 (diff) | |
download | gdb-770c015139f038bd7b7abb5c6d84eb39d36d3080.zip gdb-770c015139f038bd7b7abb5c6d84eb39d36d3080.tar.gz gdb-770c015139f038bd7b7abb5c6d84eb39d36d3080.tar.bz2 |
MIPS/gas: Retain ISA mode bit for labels with .insn annotation
gas/
* config/tc-mips.c (mips_move_labels): Retain ISA mode bit
when moving labels in text segments.
(mips_align): Indicate text mode when aligning labels in
text segments.
* gas/testsuite/gas/mips/insn-isa-mode.d: New test.
* gas/testsuite/gas/mips/insn-isa-mode.s: New test source.
* gas/testsuite/gas/mips/mips.exp: Run the new test.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-mips.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index b7b4b69..38a1b8c 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -4441,9 +4441,10 @@ mips_move_labels (struct insn_label_list *labels, bfd_boolean text_p) gas_assert (S_GET_SEGMENT (l->label) == now_seg); symbol_set_frag (l->label, frag_now); val = (valueT) frag_now_fix (); - /* MIPS16/microMIPS text labels are stored as odd. */ + /* MIPS16/microMIPS text labels are stored as odd. + We just carry the ISA mode bit forward. */ if (text_p && HAVE_CODE_COMPRESSION) - ++val; + val |= (S_GET_VALUE (l->label) & 0x1); S_SET_VALUE (l->label, val); } } @@ -16218,7 +16219,7 @@ mips_align (int to, int *fill, struct insn_label_list *labels) else frag_align (to, fill ? *fill : 0, 0); record_alignment (now_seg, to); - mips_move_labels (labels, FALSE); + mips_move_labels (labels, subseg_text_p (now_seg)); } /* Align to a given power of two. .align 0 turns off the automatic |