mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-24 12:35:55 +08:00
* config/tc-xgate.c: Remove bogus use of <fx_pcrel_adjust>.
* config/tc-m68hc11.c: Likewise.
This commit is contained in:
parent
22886de02a
commit
9798e45d7e
@ -1,3 +1,8 @@
|
||||
2012-11-05 Sean Keys <skeys@ipdatasys.com>
|
||||
|
||||
* config/tc-xgate.c: Remove bogus use of <fx_pcrel_adjust>.
|
||||
* config/tc-m68hc11.c: Likewise.
|
||||
|
||||
2012-11-05 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* configure.in: Apply 2012-09-10 change to config.in here.
|
||||
|
@ -1603,11 +1603,8 @@ fixup8 (expressionS *oper, int mode, int opmode)
|
||||
|
||||
if (mode == M6811_OP_JUMP_REL)
|
||||
{
|
||||
fixS *fixp;
|
||||
|
||||
fixp = fix_new_exp (frag_now, f - frag_now->fr_literal, 1,
|
||||
oper, TRUE, BFD_RELOC_8_PCREL);
|
||||
fixp->fx_pcrel_adjust = 1;
|
||||
fix_new_exp (frag_now, f - frag_now->fr_literal, 1,
|
||||
oper, TRUE, BFD_RELOC_8_PCREL);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1676,8 +1673,7 @@ fixup16 (expressionS *oper, int mode, int opmode ATTRIBUTE_UNUSED)
|
||||
reloc == BFD_RELOC_16_PCREL,
|
||||
reloc);
|
||||
number_to_chars_bigendian (f, 0, 2);
|
||||
if (reloc == BFD_RELOC_16_PCREL)
|
||||
fixp->fx_pcrel_adjust = 2;
|
||||
|
||||
if (reloc == BFD_RELOC_M68HC11_LO16)
|
||||
fixp->fx_no_overflow = 1;
|
||||
}
|
||||
@ -1756,23 +1752,17 @@ fixup8_xg (expressionS *oper, int mode, int opmode)
|
||||
{
|
||||
if (mode == M68XG_OP_REL9)
|
||||
{
|
||||
fixS *fixp;
|
||||
|
||||
/* Future improvement:
|
||||
This fixup/reloc isn't adding on constants to symbols. */
|
||||
fixp = fix_new_exp (frag_now, f - frag_now->fr_literal -1, 2,
|
||||
oper, TRUE, BFD_RELOC_M68HC12_9_PCREL);
|
||||
fixp->fx_pcrel_adjust = 1;
|
||||
fix_new_exp (frag_now, f - frag_now->fr_literal -1, 2,
|
||||
oper, TRUE, BFD_RELOC_M68HC12_9_PCREL);
|
||||
}
|
||||
else if (mode == M68XG_OP_REL10)
|
||||
{
|
||||
fixS *fixp;
|
||||
|
||||
/* Future improvement:
|
||||
This fixup/reloc isn't adding on constants to symbols. */
|
||||
fixp = fix_new_exp (frag_now, f - frag_now->fr_literal -1, 2,
|
||||
oper, TRUE, BFD_RELOC_M68HC12_10_PCREL);
|
||||
fixp->fx_pcrel_adjust = 1;
|
||||
fix_new_exp (frag_now, f - frag_now->fr_literal -1, 2,
|
||||
oper, TRUE, BFD_RELOC_M68HC12_10_PCREL);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3965,7 +3955,6 @@ void
|
||||
md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec ATTRIBUTE_UNUSED,
|
||||
fragS *fragP)
|
||||
{
|
||||
fixS *fixp;
|
||||
long value;
|
||||
long disp;
|
||||
char *buffer_address = fragP->fr_literal;
|
||||
@ -4018,10 +4007,9 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec ATTRIBUTE_UNUSED,
|
||||
fragP->fr_opcode[1] = fragP->fr_opcode[0];
|
||||
fragP->fr_opcode[0] = M6811_OPCODE_PAGE2;
|
||||
|
||||
fixp = fix_new (fragP, fragP->fr_fix, 2,
|
||||
fragP->fr_symbol, fragP->fr_offset, 1,
|
||||
fix_new (fragP, fragP->fr_fix, 2,
|
||||
fragP->fr_symbol, fragP->fr_offset, 1,
|
||||
BFD_RELOC_16_PCREL);
|
||||
fixp->fx_pcrel_adjust = 2;
|
||||
fragP->fr_fix += 2;
|
||||
break;
|
||||
|
||||
@ -4060,9 +4048,9 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec ATTRIBUTE_UNUSED,
|
||||
&& fragP->fr_symbol != 0
|
||||
&& S_GET_SEGMENT (fragP->fr_symbol) != absolute_section)
|
||||
{
|
||||
fixp = fix_new (fragP, fragP->fr_fix, 2,
|
||||
fragP->fr_symbol, fragP->fr_offset,
|
||||
1, BFD_RELOC_16_PCREL);
|
||||
fix_new (fragP, fragP->fr_fix, 2,
|
||||
fragP->fr_symbol, fragP->fr_offset,
|
||||
1, BFD_RELOC_16_PCREL);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1190,7 +1190,6 @@ xgate_parse_operand (struct xgate_opcode *opcode,
|
||||
char **op_con,
|
||||
s_operand operand)
|
||||
{
|
||||
fixS *fixp = 0;
|
||||
char *op_constraint = *op_con;
|
||||
unsigned int op_mask = 0;
|
||||
unsigned int pp_fix = 0;
|
||||
@ -1277,14 +1276,14 @@ xgate_parse_operand (struct xgate_opcode *opcode,
|
||||
if (((opcode->name[strlen (opcode->name) - 1] == 'l')
|
||||
&& autoHiLo) || operand.mod == MOD_LOAD_LOW)
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_24);
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_24);
|
||||
}
|
||||
else if (((opcode->name[strlen (opcode->name) - 1]) == 'h'
|
||||
&& autoHiLo) || operand.mod == MOD_LOAD_HIGH )
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM8_HI);
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM8_HI);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1292,25 +1291,21 @@ xgate_parse_operand (struct xgate_opcode *opcode,
|
||||
"to load a 16-bit value."));
|
||||
break;
|
||||
}
|
||||
fixp->fx_pcrel_adjust = 0;
|
||||
}
|
||||
else if (*op_constraint == '5')
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM5);
|
||||
fixp->fx_pcrel_adjust = 0;
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM5);
|
||||
}
|
||||
else if (*op_constraint == '4')
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM4);
|
||||
fixp->fx_pcrel_adjust = 0;
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM4);
|
||||
}
|
||||
else if (*op_constraint == '3')
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM3);
|
||||
fixp->fx_pcrel_adjust = 0;
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, FALSE,
|
||||
BFD_RELOC_XGATE_IMM3);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1339,15 +1334,13 @@ xgate_parse_operand (struct xgate_opcode *opcode,
|
||||
{
|
||||
if (*op_constraint == '9')
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, TRUE,
|
||||
R_XGATE_PCREL_9);
|
||||
fixp->fx_pcrel_adjust = 1;
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, TRUE,
|
||||
R_XGATE_PCREL_9);
|
||||
}
|
||||
else if (*op_constraint == 'a')
|
||||
{
|
||||
fixp = fix_new_exp (frag_now, where, 2, &operand.exp, TRUE,
|
||||
R_XGATE_PCREL_10);
|
||||
fixp->fx_pcrel_adjust = 1;
|
||||
fix_new_exp (frag_now, where, 2, &operand.exp, TRUE,
|
||||
R_XGATE_PCREL_10);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user