aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1995-09-19 19:33:48 +0000
committerIan Lance Taylor <ian@airs.com>1995-09-19 19:33:48 +0000
commit9adcd78108cf3fd738cf973ab5c27c4c16c4df7d (patch)
tree80a4baf830c6a2990d8be5db0dc3d612a6aba9c9 /gas
parenta4a879cde225d9f87a035e90010ce9240b0e59df (diff)
downloadgdb-9adcd78108cf3fd738cf973ab5c27c4c16c4df7d.zip
gdb-9adcd78108cf3fd738cf973ab5c27c4c16c4df7d.tar.gz
gdb-9adcd78108cf3fd738cf973ab5c27c4c16c4df7d.tar.bz2
* config/tc-m68k.c (m68k_ip): Reject immediate operands for '|'.
Replace 'P' with '0', '1', and '2'.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/config/tc-m68k.c28
2 files changed, 25 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 426e5d5..d7f472a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,8 @@
Tue Sep 19 11:31:31 1995 Ian Lance Taylor <ian@cygnus.com>
+ * config/tc-m68k.c (m68k_ip): Reject immediate operands for '|'.
+ Replace 'P' with '0', '1', and '2'.
+
* config/tc-m68k.c (parse_mri_control_operand): Change leftstop
and rightstop to not be const.
(parse_mri_control_expression): Likewise.
diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c
index 01200f0..4c0fd6d 100644
--- a/gas/config/tc-m68k.c
+++ b/gas/config/tc-m68k.c
@@ -1227,6 +1227,12 @@ m68k_ip (instring)
|| opP->mode == AREG
|| opP->mode == REGLST)
losing++;
+ /* We should accept immediate operands, but they
+ supposedly have to be quad word, and we don't
+ handle that. I would like to see what a Motorola
+ assembler does before doing something here. */
+ if (opP->mode == IMMED)
+ losing++;
break;
case 'f':
@@ -1235,13 +1241,21 @@ m68k_ip (instring)
losing++;
break;
- case 'P':
+ case '0':
+ if (opP->mode != CONTROL || opP->reg != TC)
+ losing++;
+ break;
+
+ case '1':
+ if (opP->mode != CONTROL || opP->reg != AC)
+ losing++;
+ break;
+
+ case '2':
if (opP->mode != CONTROL
- || (opP->reg != TC
- && opP->reg != CAL
+ || (opP->reg != CAL
&& opP->reg != VAL
- && opP->reg != SCC
- && opP->reg != AC))
+ && opP->reg != SCC))
losing++;
break;
@@ -2258,7 +2272,9 @@ m68k_ip (instring)
install_operand (s[1], tmpreg);
break;
- case 'P':
+ case '0':
+ case '1':
+ case '2':
switch (opP->reg)
{
case TC: