aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2000-05-19 00:21:12 +0000
committerJeff Law <law@redhat.com>2000-05-19 00:21:12 +0000
commitb3b6a3fe2bdb4416f6be67c3425249cabd28fb80 (patch)
treee87741549198fbeea0c8cf9513aa6387351c0dc6
parentdf6d9773e2d227dbf55f6b1afbb57ef79e217ce8 (diff)
downloadgdb-b3b6a3fe2bdb4416f6be67c3425249cabd28fb80.zip
gdb-b3b6a3fe2bdb4416f6be67c3425249cabd28fb80.tar.gz
gdb-b3b6a3fe2bdb4416f6be67c3425249cabd28fb80.tar.bz2
* config/tc-hppa.c (md_apply_fix): Mask out immediate bits of
instruction to reflect change in re_assemble_*.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-hppa.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b38066b..fc9d9f8 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-18 Alan Modra <alan@linuxcare.com.au>
+
+ * config/tc-hppa.c (md_apply_fix): Mask out immediate bits of
+ instruction to reflect change in re_assemble_*.
+
Thu May 18 10:52:14 2000 Jeffrey A Law (law@cygnus.com)
* configure.in (hppa-*-hpux11*): If the cpu is hppa*64*, then
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 3876842..c57fd61 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -4422,7 +4422,7 @@ md_apply_fix (fixP, valp)
CHECK_FIELD (new_val, 1048576, -1048576, 0);
val = new_val;
- insn = re_assemble_21 (insn, val);
+ insn = re_assemble_21 (insn & ~ 0x1fffff, val);
break;
/* Handle all the opcodes with the 'i' operand type. */
@@ -4438,7 +4438,7 @@ md_apply_fix (fixP, valp)
CHECK_FIELD (new_val, 8199, -8184, 0);
val = new_val;
- insn = re_assemble_12 (insn, (val - 8) >> 2);
+ insn = re_assemble_12 (insn & ~ 0x1ffd, (val - 8) >> 2);
break;
/* Handle some of the opcodes with the 'W' operand type. */
@@ -4455,7 +4455,7 @@ md_apply_fix (fixP, valp)
CHECK_FIELD (new_val, 262143, -262144, 0);
val = new_val;
- insn = re_assemble_17 (insn, (val - 8) >> 2);
+ insn = re_assemble_17 (insn & ~ 0x1f1ffd, (val - 8) >> 2);
break;
}
@@ -4472,7 +4472,7 @@ md_apply_fix (fixP, valp)
CHECK_FIELD (new_val, 8388607, -8388608, 0);
val = new_val;
- insn = re_assemble_22 (insn, (val - 8) >> 2);
+ insn = re_assemble_22 (insn & ~ 0x3ff1ffd, (val - 8) >> 2);
break;
}