summaryrefslogtreecommitdiff
path: root/opcodes/m32c-asm.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>2006-03-14 04:23:52 +0000
committerDJ Delorie <dj@delorie.com>2006-03-14 04:23:52 +0000
commit709fa17a1a8f53b47242dcd6168dd1c02e57d340 (patch)
tree2278f041ce25d0e6c56a8a9e0dd87e68cbd2de3c /opcodes/m32c-asm.c
parent8a3108a3dec3ab8a40fee56ad2749fc2ac10c9b9 (diff)
downloadbinutils-redhat-709fa17a1a8f53b47242dcd6168dd1c02e57d340.tar.gz
* m32c-asm.c: Regenerate.
* m32c-desc.c: Likewise. * m32c-desc.h: Likewise. * m32c-dis.c: Likewise. * m32c-ibld.c: Likewise. * m32c-opc.c: Likewise. * m32c-opc.h: Likewise.
Diffstat (limited to 'opcodes/m32c-asm.c')
-rw-r--r--opcodes/m32c-asm.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/opcodes/m32c-asm.c b/opcodes/m32c-asm.c
index e2d8c49064..9407ed8d2d 100644
--- a/opcodes/m32c-asm.c
+++ b/opcodes/m32c-asm.c
@@ -504,6 +504,24 @@ parse_imm3_S (CGEN_CPU_DESC cd, const char **strp,
}
static const char *
+parse_bit3_S (CGEN_CPU_DESC cd, const char **strp,
+ int opindex, signed long *valuep)
+{
+ const char *errmsg = 0;
+ signed long value;
+
+ errmsg = cgen_parse_signed_integer (cd, strp, opindex, & value);
+ if (errmsg)
+ return errmsg;
+
+ if (value < 0 || value > 7)
+ return _("immediate is out of range 0-7");
+
+ *valuep = value;
+ return 0;
+}
+
+static const char *
parse_lab_5_3 (CGEN_CPU_DESC cd,
const char **strp,
int opindex ATTRIBUTE_UNUSED,
@@ -933,6 +951,9 @@ m32c_cgen_parse_operand (CGEN_CPU_DESC cd,
case M32C_OPERAND_BIT16RN :
errmsg = cgen_parse_keyword (cd, strp, & m32c_cgen_opval_h_gr_HI, & fields->f_dst16_rn);
break;
+ case M32C_OPERAND_BIT3_S :
+ errmsg = parse_bit3_S (cd, strp, M32C_OPERAND_BIT3_S, (long *) (& fields->f_imm3_S));
+ break;
case M32C_OPERAND_BIT32ANPREFIXED :
errmsg = cgen_parse_keyword (cd, strp, & m32c_cgen_opval_h_ar, & fields->f_dst32_an_prefixed);
break;