aboutsummaryrefslogtreecommitdiff
path: root/opcodes/mep-opc.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2009-04-18 02:56:43 +0000
committerDJ Delorie <dj@redhat.com>2009-04-18 02:56:43 +0000
commit45be3704c822b201bb2ec4734a550237f3aa2f74 (patch)
tree8899641d60f4371ea7b966cae75f3594c88324c5 /opcodes/mep-opc.c
parent52de720d5d653198146681e75d14f4d31b3dd6eb (diff)
downloadgdb-45be3704c822b201bb2ec4734a550237f3aa2f74.zip
gdb-45be3704c822b201bb2ec4734a550237f3aa2f74.tar.gz
gdb-45be3704c822b201bb2ec4734a550237f3aa2f74.tar.bz2
[cgen]
* cpu/mep-c5.cpu (f-12s20): Change to signed. (lhucpm1): Limit to C5 mach. (dsp0,dsp1): Rewrite as aliases so that intrinsics are generated. * cpu/mep-core.cpu (extend-cdisp10): New. (f-cdisp10): Change to signed, use extend-cdisp10 to sign extend. [opcodes] * mep-desc.c: Regenerate. * mep-ibld.c: Regenerate. * mep-opc.c: Regenerate. * mep-opc.h: Regenerate. [sid/component/cgen-cpu/mep] * mep-core1-decode.cxx: Regenerate. * mep-core1-decode.h: Regenerate. * mep-decode.cxx: Regenerate. * mep-decode.h: Regenerate.
Diffstat (limited to 'opcodes/mep-opc.c')
-rw-r--r--opcodes/mep-opc.c50
1 files changed, 20 insertions, 30 deletions
diff --git a/opcodes/mep-opc.c b/opcodes/mep-opc.c
index bd298cb..e2711e7 100644
--- a/opcodes/mep-opc.c
+++ b/opcodes/mep-opc.c
@@ -212,6 +212,14 @@ static const CGEN_IFMT ifmt_dsp ATTRIBUTE_UNUSED = {
32, 32, 0xf00f0000, { { F (F_MAJOR) }, { F (F_RN) }, { F (F_RM) }, { F (F_SUB4) }, { F (F_16U16) }, { 0 } }
};
+static const CGEN_IFMT ifmt_dsp0 ATTRIBUTE_UNUSED = {
+ 32, 32, 0xf00f0000, { { F (F_MAJOR) }, { F (F_C5_RNMUIMM24) }, { F (F_SUB4) }, { 0 } }
+};
+
+static const CGEN_IFMT ifmt_dsp1 ATTRIBUTE_UNUSED = {
+ 32, 32, 0xf00f0000, { { F (F_MAJOR) }, { F (F_RN) }, { F (F_C5_RMUIMM20) }, { F (F_SUB4) }, { 0 } }
+};
+
static const CGEN_IFMT ifmt_sb ATTRIBUTE_UNUSED = {
16, 16, 0xf00f, { { F (F_MAJOR) }, { F (F_RN) }, { F (F_RM) }, { F (F_SUB4) }, { 0 } }
};
@@ -569,6 +577,18 @@ static const CGEN_OPCODE mep_cgen_insn_opcode_table[MAX_INSNS] =
{ { MNEM, ' ', OP (RN), ',', OP (RM), ',', OP (UIMM16), 0 } },
& ifmt_dsp, { 0xf0000000 }
},
+/* dsp0 $c5rnmuimm24 */
+ {
+ { 0, 0, 0, 0 },
+ { { MNEM, ' ', OP (C5RNMUIMM24), 0 } },
+ & ifmt_dsp0, { 0xf0000000 }
+ },
+/* dsp1 $rn,$c5rmuimm20 */
+ {
+ { 0, 0, 0, 0 },
+ { { MNEM, ' ', OP (RN), ',', OP (C5RMUIMM20), 0 } },
+ & ifmt_dsp1, { 0xf0000000 }
+ },
/* sb $rnc,($rma) */
{
{ 0, 0, 0, 0 },
@@ -1795,14 +1815,6 @@ static const CGEN_OPCODE mep_cgen_insn_opcode_table[MAX_INSNS] =
#else
#define F(f) & mep_cgen_ifld_table[MEP_/**/f]
#endif
-static const CGEN_IFMT ifmt_dsp0 ATTRIBUTE_UNUSED = {
- 32, 32, 0xf00f0000, { { F (F_MAJOR) }, { F (F_RN) }, { F (F_RM) }, { F (F_SUB4) }, { F (F_16U16) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_dsp1 ATTRIBUTE_UNUSED = {
- 32, 32, 0xf00f0000, { { F (F_MAJOR) }, { F (F_RN) }, { F (F_RM) }, { F (F_SUB4) }, { F (F_16U16) }, { 0 } }
-};
-
static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
16, 16, 0xffff, { { F (F_MAJOR) }, { F (F_RN) }, { F (F_RM) }, { F (F_SUB4) }, { 0 } }
};
@@ -1876,16 +1888,6 @@ static const CGEN_IFMT ifmt_lmcp16_0 ATTRIBUTE_UNUSED = {
static const CGEN_IBASE mep_cgen_macro_insn_table[] =
{
-/* dsp0 $c5rnmuimm24 */
- {
- -1, "dsp0", "dsp0", 32,
- { 0|A(VOLATILE)|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_C5), 0 } }, { { 1, "\xc0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
- },
-/* dsp1 $rn,$c5rmuimm20 */
- {
- -1, "dsp1", "dsp1", 32,
- { 0|A(VOLATILE)|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_C5), 0 } }, { { 1, "\xc0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
- },
/* nop */
{
-1, "nop", "nop", 16,
@@ -1957,18 +1959,6 @@ static const CGEN_IBASE mep_cgen_macro_insn_table[] =
static const CGEN_OPCODE mep_cgen_macro_insn_opcode_table[] =
{
-/* dsp0 $c5rnmuimm24 */
- {
- { 0, 0, 0, 0 },
- { { MNEM, ' ', OP (C5RNMUIMM24), 0 } },
- & ifmt_dsp0, { 0xf0000000 }
- },
-/* dsp1 $rn,$c5rmuimm20 */
- {
- { 0, 0, 0, 0 },
- { { MNEM, ' ', OP (RN), ',', OP (C5RMUIMM20), 0 } },
- & ifmt_dsp1, { 0xf0000000 }
- },
/* nop */
{
{ 0, 0, 0, 0 },