aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-arm.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1998-01-27 17:33:35 +0000
committerIan Lance Taylor <ian@airs.com>1998-01-27 17:33:35 +0000
commit29b2b5da9614ff9f7103e85913e8ba94a932bfba (patch)
tree3394a31ed5bd1244b7ed5485dec0a21be9ceb6f6 /gas/config/tc-arm.c
parent8ecadea45b833bff6edc9c46f87b7fb91211b797 (diff)
downloadgdb-29b2b5da9614ff9f7103e85913e8ba94a932bfba.zip
gdb-29b2b5da9614ff9f7103e85913e8ba94a932bfba.tar.gz
gdb-29b2b5da9614ff9f7103e85913e8ba94a932bfba.tar.bz2
tweak last patch
Diffstat (limited to 'gas/config/tc-arm.c')
-rw-r--r--gas/config/tc-arm.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 93ac1ba..8beb8ac 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -5036,6 +5036,7 @@ md_apply_fix3 (fixP, val, seg)
{
offsetT value = *val;
offsetT newval;
+ unsigned int newimm;
unsigned long temp;
int sign;
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
@@ -5072,21 +5073,21 @@ md_apply_fix3 (fixP, val, seg)
switch (fixP->fx_r_type)
{
case BFD_RELOC_ARM_IMMEDIATE:
- newval = (offsetT) validate_immediate (value);
+ newimm = (offsetT) validate_immediate (value);
temp = md_chars_to_number (buf, INSN_SIZE);
/* If the instruction will fail, see if we can fix things up by
changing the opcode. */
- if (newval == (offsetT) FAIL
- && (newval = negate_data_op (&temp, value)) == (offsetT) FAIL)
+ if (newimm == (unsigned int) FAIL
+ && (newimm = negate_data_op (&temp, value)) == (unsigned int) FAIL)
{
as_bad_where (fixP->fx_file, fixP->fx_line,
"invalid constant after fixup\n");
break;
}
- newval |= (temp & 0xfffff000);
- md_number_to_chars (buf, newval, INSN_SIZE);
+ newimm |= (temp & 0xfffff000);
+ md_number_to_chars (buf, (valueT) newimm, INSN_SIZE);
break;
case BFD_RELOC_ARM_OFFSET_IMM: