* 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.
This commit is contained in:
Stephane Carrez 2001-11-01 09:56:17 +00:00
parent 5d45665a8f
commit 4fe7ef9639
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2001-11-01 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* 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.
2001-10-31 Chris Demetriou <cgd@broadcom.com> 2001-10-31 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (HAVE_32BIT_ADDRESSES): If compiling embedded * config/tc-mips.c (HAVE_32BIT_ADDRESSES): If compiling embedded

View File

@ -1519,12 +1519,14 @@ build_jump_insn (opcode, operands, nb_operands, jmp_mode)
/* bra/bsr made be changed into jmp/jsr. */ /* bra/bsr made be changed into jmp/jsr. */
else if (code == M6811_BSR || code == M6811_BRA || code == M6812_BSR) 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, code, 1);
number_to_chars_bigendian (opcode + 1, 0, 1); number_to_chars_bigendian (opcode + 1, 0, 1);
frag_var (rs_machine_dependent, 2, 1, frag_variant (rs_machine_dependent, 1, 1,
ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF), ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF),
operands[0].exp.X_add_symbol, (offsetT) n, opcode); operands[0].exp.X_add_symbol, (offsetT) n,
opcode);
} }
else if (current_architecture & cpu6812) else if (current_architecture & cpu6812)
{ {