summaryrefslogtreecommitdiff
path: root/opcodes/mep-opc.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>2009-04-18 02:56:43 +0000
committerDJ Delorie <dj@delorie.com>2009-04-18 02:56:43 +0000
commit6a7ae005013413bf0057587b749ef0597f912369 (patch)
treee3ba7e4a7ca52cc95d0659d32ffdb9c299b28b9b /opcodes/mep-opc.c
parent5fa62989fa79223eefd13e53772752040491c93e (diff)
downloadgdb-6a7ae005013413bf0057587b749ef0597f912369.tar.gz
[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 bd298cb38cb..e2711e71402 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 },