diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2001-11-01 09:56:17 +0000 |
---|---|---|
committer | Stephane Carrez <stcarrez@nerim.fr> | 2001-11-01 09:56:17 +0000 |
commit | 4fe7ef963907aafdb4e47bce11f8d1ca49a6bd5e (patch) | |
tree | 2956f5962aab32017fd34a203ab6caa4e6796b81 /gas/config/tc-m68hc11.c | |
parent | 5d45665a8f7a0cb696cddfb2afe85ad4009e5506 (diff) | |
download | gdb-4fe7ef963907aafdb4e47bce11f8d1ca49a6bd5e.zip gdb-4fe7ef963907aafdb4e47bce11f8d1ca49a6bd5e.tar.gz gdb-4fe7ef963907aafdb4e47bce11f8d1ca49a6bd5e.tar.bz2 |
* config/tc-m68hc11.c (build_jump_insn): Allocate worst case storage
for bra/bsr and use frag_variant(), this ensure that the possible
16-bit BFD_RELOC_16 will be in the same frag.
Diffstat (limited to 'gas/config/tc-m68hc11.c')
-rw-r--r-- | gas/config/tc-m68hc11.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c index 43fe878..0c7ccab 100644 --- a/gas/config/tc-m68hc11.c +++ b/gas/config/tc-m68hc11.c @@ -1519,12 +1519,14 @@ build_jump_insn (opcode, operands, nb_operands, jmp_mode) /* bra/bsr made be changed into jmp/jsr. */ else if (code == M6811_BSR || code == M6811_BRA || code == M6812_BSR) { - opcode = m68hc11_new_insn (2); + /* Allocate worst case storage. */ + opcode = m68hc11_new_insn (3); number_to_chars_bigendian (opcode, code, 1); number_to_chars_bigendian (opcode + 1, 0, 1); - frag_var (rs_machine_dependent, 2, 1, - ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF), - operands[0].exp.X_add_symbol, (offsetT) n, opcode); + frag_variant (rs_machine_dependent, 1, 1, + ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF), + operands[0].exp.X_add_symbol, (offsetT) n, + opcode); } else if (current_architecture & cpu6812) { |