mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 15:18:37 +08:00
[ARM] Fix 32-bit host build failure.
gas/ * config/tc-arm.c (add_to_lit_pool): Use "inst.operands[1].imm" for * sign extension. Casting the type of imm1 and imm2 to offsetT. Fix one logic error when checking X_op.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2014-07-15 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* config/tc-arm.c (add_to_lit_pool): Use "inst.operands[1].imm" for
|
||||||
|
sign extension. Casting the type of imm1 and imm2 to offsetT. Fix
|
||||||
|
one logic error when checking X_op.
|
||||||
|
|
||||||
2014-07-14 Andreas Schwab <schwab@linux-m68k.org>
|
2014-07-14 Andreas Schwab <schwab@linux-m68k.org>
|
||||||
|
|
||||||
* config/tc-m68k.c (md_convert_frag_1): Don't complain with
|
* config/tc-m68k.c (md_convert_frag_1): Don't complain with
|
||||||
|
@ -3198,7 +3198,7 @@ add_to_lit_pool (unsigned int nbytes)
|
|||||||
imm1 = inst.operands[1].imm;
|
imm1 = inst.operands[1].imm;
|
||||||
imm2 = (inst.operands[1].regisimm ? inst.operands[1].reg
|
imm2 = (inst.operands[1].regisimm ? inst.operands[1].reg
|
||||||
: inst.reloc.exp.X_unsigned ? 0
|
: inst.reloc.exp.X_unsigned ? 0
|
||||||
: ((int64_t)(imm1)) >> 32);
|
: ((int64_t) inst.operands[1].imm) >> 32);
|
||||||
if (target_big_endian)
|
if (target_big_endian)
|
||||||
{
|
{
|
||||||
imm1 = imm2;
|
imm1 = imm2;
|
||||||
@ -3237,11 +3237,11 @@ add_to_lit_pool (unsigned int nbytes)
|
|||||||
&& !(pool_size & 0x7)
|
&& !(pool_size & 0x7)
|
||||||
&& ((entry + 1) != pool->next_free_entry)
|
&& ((entry + 1) != pool->next_free_entry)
|
||||||
&& (pool->literals[entry].X_op == O_constant)
|
&& (pool->literals[entry].X_op == O_constant)
|
||||||
&& (pool->literals[entry].X_add_number == imm1)
|
&& (pool->literals[entry].X_add_number == (offsetT) imm1)
|
||||||
&& (pool->literals[entry].X_unsigned
|
&& (pool->literals[entry].X_unsigned
|
||||||
== inst.reloc.exp.X_unsigned)
|
== inst.reloc.exp.X_unsigned)
|
||||||
&& (pool->literals[entry + 1].X_op == O_constant)
|
&& (pool->literals[entry + 1].X_op == O_constant)
|
||||||
&& (pool->literals[entry + 1].X_add_number == imm2)
|
&& (pool->literals[entry + 1].X_add_number == (offsetT) imm2)
|
||||||
&& (pool->literals[entry + 1].X_unsigned
|
&& (pool->literals[entry + 1].X_unsigned
|
||||||
== inst.reloc.exp.X_unsigned))
|
== inst.reloc.exp.X_unsigned))
|
||||||
break;
|
break;
|
||||||
@ -3275,8 +3275,8 @@ add_to_lit_pool (unsigned int nbytes)
|
|||||||
|
|
||||||
We also check to make sure the literal operand is a
|
We also check to make sure the literal operand is a
|
||||||
constant number. */
|
constant number. */
|
||||||
if (!(inst.reloc.exp.X_op == O_constant)
|
if (!(inst.reloc.exp.X_op == O_constant
|
||||||
|| (inst.reloc.exp.X_op == O_big))
|
|| inst.reloc.exp.X_op == O_big))
|
||||||
{
|
{
|
||||||
inst.error = _("invalid type for literal pool");
|
inst.error = _("invalid type for literal pool");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
Reference in New Issue
Block a user