aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2004-01-14 10:05:00 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2004-01-14 10:05:00 +0000
commitcb10e79a50a08ffb6d8345159d4ccd864458c105 (patch)
treed742639cca1877a21c2eb0fa9d13dab6d5121e16 /opcodes
parentf40063a5ba7542931997a58f1e637a67700f8750 (diff)
downloadgdb-cb10e79a50a08ffb6d8345159d4ccd864458c105.zip
gdb-cb10e79a50a08ffb6d8345159d4ccd864458c105.tar.gz
gdb-cb10e79a50a08ffb6d8345159d4ccd864458c105.tar.bz2
cpu/
* frv.cpu (UNIT): Add IACC. (iacc-multiply-r-r): Use it. * frv.opc (fr400_unit_mapping): Add entry for IACC. (fr500_unit_mapping, fr550_unit_mapping): Likewise. opcodes/ * frv-desc.h: Regenerate. * frv-desc.c: Regenerate. * frv-opc.c: Regenerate.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/frv-desc.c7
-rw-r--r--opcodes/frv-desc.h6
-rw-r--r--opcodes/frv-opc.c3
4 files changed, 16 insertions, 6 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 747ca77..b972bfa 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * frv-desc.h: Regenerate.
+ * frv-desc.c: Regenerate.
+ * frv-opc.c: Regenerate.
+
2004-01-13 Michael Snyder <msnyder@redhat.com>
* sh-dis.c (print_insn_sh): Allocate 4 bytes for insn.
diff --git a/opcodes/frv-desc.c b/opcodes/frv-desc.c
index 9cc85fe..35659c7 100644
--- a/opcodes/frv-desc.c
+++ b/opcodes/frv-desc.c
@@ -84,6 +84,7 @@ static const CGEN_ATTR_ENTRY UNIT_attr[] =
{ "B01", UNIT_B01 },
{ "C", UNIT_C },
{ "MULT_DIV", UNIT_MULT_DIV },
+ { "IACC", UNIT_IACC },
{ "LOAD", UNIT_LOAD },
{ "STORE", UNIT_STORE },
{ "SCAN", UNIT_SCAN },
@@ -2397,17 +2398,17 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] =
/* smu$pack $GRi,$GRj */
{
FRV_INSN_SMU, "smu", "smu", 32,
- { 0, { (1<<MACH_FR400), UNIT_MULT_DIV, FR400_MAJOR_I_1, FR500_MAJOR_NONE, FR550_MAJOR_NONE } }
+ { 0, { (1<<MACH_FR400), UNIT_IACC, FR400_MAJOR_I_1, FR500_MAJOR_NONE, FR550_MAJOR_NONE } }
},
/* smass$pack $GRi,$GRj */
{
FRV_INSN_SMASS, "smass", "smass", 32,
- { 0, { (1<<MACH_FR400), UNIT_MULT_DIV, FR400_MAJOR_I_1, FR500_MAJOR_NONE, FR550_MAJOR_NONE } }
+ { 0, { (1<<MACH_FR400), UNIT_IACC, FR400_MAJOR_I_1, FR500_MAJOR_NONE, FR550_MAJOR_NONE } }
},
/* smsss$pack $GRi,$GRj */
{
FRV_INSN_SMSSS, "smsss", "smsss", 32,
- { 0, { (1<<MACH_FR400), UNIT_MULT_DIV, FR400_MAJOR_I_1, FR500_MAJOR_NONE, FR550_MAJOR_NONE } }
+ { 0, { (1<<MACH_FR400), UNIT_IACC, FR400_MAJOR_I_1, FR500_MAJOR_NONE, FR550_MAJOR_NONE } }
},
/* sll$pack $GRi,$GRj,$GRk */
{
diff --git a/opcodes/frv-desc.h b/opcodes/frv-desc.h
index 5f72800..f46c3f9 100644
--- a/opcodes/frv-desc.h
+++ b/opcodes/frv-desc.h
@@ -549,9 +549,9 @@ typedef enum unit_attr {
, UNIT_I2, UNIT_I3, UNIT_IALL, UNIT_FM0
, UNIT_FM1, UNIT_FM01, UNIT_FM2, UNIT_FM3
, UNIT_FMALL, UNIT_FMLOW, UNIT_B0, UNIT_B1
- , UNIT_B01, UNIT_C, UNIT_MULT_DIV, UNIT_LOAD
- , UNIT_STORE, UNIT_SCAN, UNIT_DCPL, UNIT_MDUALACC
- , UNIT_MCLRACC_1, UNIT_NUM_UNITS
+ , UNIT_B01, UNIT_C, UNIT_MULT_DIV, UNIT_IACC
+ , UNIT_LOAD, UNIT_STORE, UNIT_SCAN, UNIT_DCPL
+ , UNIT_MDUALACC, UNIT_MCLRACC_1, UNIT_NUM_UNITS
} UNIT_ATTR;
/* Enum declaration for fr400 major insn categories. */
diff --git a/opcodes/frv-opc.c b/opcodes/frv-opc.c
index 61bdb45..1560d20 100644
--- a/opcodes/frv-opc.c
+++ b/opcodes/frv-opc.c
@@ -239,6 +239,7 @@ static CGEN_ATTR_VALUE_TYPE fr400_unit_mapping[] =
/* B01 */ UNIT_B0,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I0, /* multiply and divide only in I0 unit. */
+/* IACC */ UNIT_I01, /* iacc multiply in I0 or I1 unit. */
/* LOAD */ UNIT_I0, /* load only in I0 unit. */
/* STORE */ UNIT_I0, /* store only in I0 unit. */
/* SCAN */ UNIT_I0, /* scan only in I0 unit. */
@@ -269,6 +270,7 @@ static CGEN_ATTR_VALUE_TYPE fr500_unit_mapping[] =
/* B01 */ UNIT_B01,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */
+/* IACC */ UNIT_NIL, /* iacc multiply not implemented */
/* LOAD */ UNIT_I01, /* load in I0 or I1 unit. */
/* STORE */ UNIT_I0, /* store only in I0 unit. */
/* SCAN */ UNIT_I01, /* scan in I0 or I1 unit. */
@@ -299,6 +301,7 @@ static CGEN_ATTR_VALUE_TYPE fr550_unit_mapping[] =
/* B01 */ UNIT_B01,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */
+/* IACC */ UNIT_NIL, /* iacc multiply not implemented. */
/* LOAD */ UNIT_I01, /* load in I0 or I1 unit. */
/* STORE */ UNIT_I01, /* store in I0 or I1 unit. */
/* SCAN */ UNIT_IALL, /* scan in any integer unit. */