* config/tc-xgate.c: Remove bogus use of <fx_pcrel_adjust>.

* config/tc-m68hc11.c: Likewise.
This commit is contained in:
Sean Keys 2012-11-06 00:49:37 +00:00
parent 22886de02a
commit 9798e45d7e
3 changed files with 31 additions and 45 deletions

View File

@ -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.

View File

@ -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
{

View File

@ -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