diff options
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-d10v.c | 23 | ||||
-rw-r--r-- | include/opcode/ChangeLog | 7 | ||||
-rw-r--r-- | opcodes/ChangeLog | 8 |
4 files changed, 33 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 8b2e4e6..9506cb7 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +Thu Feb 12 03:41:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + +Fix rac to accept only a0: + * tc-d10v.c (parallel_ok, find_opcode): + Split OPERAND_ACC into OPERAND_ACC0 and OPERAND_ACC1. + Introduce OPERAND_GPR. + Wed Feb 11 16:28:13 1998 Richard Henderson <rth@cygnus.com> * read.c (s_fill): Handle non-constant repeat counts by creating diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c index f5065f6..3db8528 100644 --- a/gas/config/tc-d10v.c +++ b/gas/config/tc-d10v.c @@ -1,6 +1,6 @@ /* tc-d10v.c -- Assembler code for the Mitsubishi D10V - Copyright (C) 1996, 1997 Free Software Foundation. + Copyright (C) 1996, 1997, 1998 Free Software Foundation. This file is part of GAS, the GNU Assembler. @@ -895,7 +895,7 @@ parallel_ok (op1, insn1, op2, insn2, exec_type) if (flags & OPERAND_REG) { regno = (ins >> shift) & mask; - if (flags & OPERAND_ACC) + if (flags & (OPERAND_ACC0|OPERAND_ACC1)) regno += 16; else if (flags & OPERAND_CONTROL) /* mvtc or mvfc */ { @@ -904,7 +904,7 @@ parallel_ok (op1, insn1, op2, insn2, exec_type) else regno = 18; } - else if (flags & (OPERAND_FFLAG|OPERAND_CFLAG)) + else if (flags & (OPERAND_FFLAG|OPERAND_CFLAG)) regno = 19; if ( flags & OPERAND_DEST ) @@ -1148,10 +1148,9 @@ find_opcode (opcode, myops) int num = myops[0].X_add_number; if (X_op != O_register - || (flags & OPERAND_ACC) != (num & OPERAND_ACC) - || (flags & OPERAND_FFLAG) != (num & OPERAND_FFLAG) - || (flags & OPERAND_CFLAG) != (num & OPERAND_CFLAG) - || (flags & OPERAND_CONTROL) != (num & OPERAND_CONTROL)) + || (num & ~flags + & (OPERAND_GPR | OPERAND_ACC0 | OPERAND_ACC1 + | OPERAND_FFLAG | OPERAND_CFLAG | OPERAND_CONTROL))) { as_bad ("bad opcode or operands"); return 0; @@ -1232,11 +1231,11 @@ find_opcode (opcode, myops) if (flags & OPERAND_REG) { - if ((X_op != O_register) || - ((flags & OPERAND_ACC) != (num & OPERAND_ACC)) || - ((flags & OPERAND_FFLAG) != (num & OPERAND_FFLAG)) || - ((flags & OPERAND_CFLAG) != (num & OPERAND_CFLAG)) || - ((flags & OPERAND_CONTROL) != (num & OPERAND_CONTROL))) + if ((X_op != O_register) + || (num & ~flags + & (OPERAND_GPR | OPERAND_ACC0 | OPERAND_ACC1 + | OPERAND_FFLAG | OPERAND_CFLAG + | OPERAND_CONTROL))) { match=0; break; diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 7c79fa1..65ff137 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,10 @@ +Thu Feb 12 03:41:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + +Fix rac to accept only a0: + * d10v.h (OPERAND_ACC): Split into: + (OPERAND_ACC0, OPERAND_ACC1) . + (OPERAND_GPR): Define. + Wed Feb 11 17:31:53 1998 Doug Evans <devans@seba.cygnus.com> * cgen.h (CGEN_FIELDS): Define here. diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index be2e312..4198167 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,11 @@ +Thu Feb 12 03:41:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + +Fix rac to accept only a0: + * d10v-opc.c (d10v_predefined_registers, d10v_operands, d10v_opcodes): + Split OPERAND_ACC into OPERAND_ACC0 and OPERAND_ACC1. + Introduce OPERAND_GPR. + * d10v-dis.c (print_operand): Likewise. + Wed Feb 11 18:58:34 1998 Doug Evans <devans@seba.cygnus.com> * cgen-opc.in: New file. |