From 8d157f96538cb927156e184cfc94ae3580e43426 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Fri, 20 Feb 1998 00:57:03 +0000 Subject: [PATCH] * m32r-opc.[ch]: Regenerate. --- opcodes/ChangeLog | 4 + opcodes/m32r-opc.c | 757 +++++++++++++++++++++++---------------------- opcodes/m32r-opc.h | 7 +- 3 files changed, 395 insertions(+), 373 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 3ad8bc111d1..7b329cc0a61 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +Thu Feb 19 16:51:13 1998 Doug Evans + + * m32r-opc.[ch]: Regenerate. + start-sanitize-sky Thu Feb 19 02:11:39 1998 Doug Evans diff --git a/opcodes/m32r-opc.c b/opcodes/m32r-opc.c index 01645fb23eb..b69de02ee78 100644 --- a/opcodes/m32r-opc.c +++ b/opcodes/m32r-opc.c @@ -306,12 +306,14 @@ static const CGEN_HW_ENTRY m32r_cgen_hw_entries[] = { HW_H_BIE, & HW_ENT (HW_H_BIE + 1), "h-bie", CGEN_ASM_KEYWORD, (PTR) 0 }, { HW_H_BCOND, & HW_ENT (HW_H_BCOND + 1), "h-bcond", CGEN_ASM_KEYWORD, (PTR) 0 }, { HW_H_BPC, & HW_ENT (HW_H_BPC + 1), "h-bpc", CGEN_ASM_KEYWORD, (PTR) 0 }, + { HW_H_LOCK, & HW_ENT (HW_H_LOCK + 1), "h-lock", CGEN_ASM_KEYWORD, (PTR) 0 }, { 0 } }; /* The operand table. */ -#define OP_ENT(op) m32r_cgen_operand_table[CONCAT2 (M32R_OPERAND_,op)] +#define OPERAND(op) CONCAT2 (M32R_OPERAND_,op) +#define OP_ENT(op) m32r_cgen_operand_table[OPERAND (op)] const CGEN_OPERAND m32r_cgen_operand_table[MAX_OPERANDS] = { /* pc: program counter */ @@ -472,12 +474,14 @@ static const CGEN_OPERAND_INSTANCE fmt_7_addx_ops[] = { static const CGEN_OPERAND_INSTANCE fmt_8_bc8_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP8), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_10_bc24_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP24), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; @@ -485,18 +489,21 @@ static const CGEN_OPERAND_INSTANCE fmt_12_beq_ops[] = { { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP16), 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC1), 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC2), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_13_beqz_ops[] = { { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP16), 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC2), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_14_bl8_ops[] = { { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP8), 0 }, { INPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, 0, 14 }, { 0 } }; @@ -504,6 +511,7 @@ static const CGEN_OPERAND_INSTANCE fmt_14_bl8_ops[] = { static const CGEN_OPERAND_INSTANCE fmt_15_bl24_ops[] = { { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP24), 0 }, { INPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, 0, 14 }, { 0 } }; @@ -512,6 +520,7 @@ static const CGEN_OPERAND_INSTANCE fmt_16_bcl8_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP8), 0 }, { INPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, 0, 14 }, { 0 } }; @@ -520,17 +529,20 @@ static const CGEN_OPERAND_INSTANCE fmt_17_bcl24_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP24), 0 }, { INPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, 0, 14 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_18_bra8_ops[] = { { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP8), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_19_bra24_ops[] = { { INPUT, & HW_ENT (HW_H_IADDR), CGEN_MODE_VM, & OP_ENT (DISP24), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; @@ -571,18 +583,21 @@ static const CGEN_OPERAND_INSTANCE fmt_24_div_ops[] = { static const CGEN_OPERAND_INSTANCE fmt_25_jc_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SR), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_26_jl_ops[] = { { INPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SR), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, 0, 14 }, { 0 } }; static const CGEN_OPERAND_INSTANCE fmt_27_jmp_ops[] = { { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SR), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, { 0 } }; @@ -658,8 +673,10 @@ static const CGEN_OPERAND_INSTANCE fmt_39_ldi16_ops[] = { }; static const CGEN_OPERAND_INSTANCE fmt_40_lock_ops[] = { - { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (DR), 0 }, + { INPUT, & HW_ENT (HW_H_MEMORY), CGEN_MODE_SI, 0, 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SR), 0 }, + { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (DR), 0 }, + { OUTPUT, & HW_ENT (HW_H_LOCK), CGEN_MODE_UBI, 0, 0 }, { 0 } }; @@ -743,18 +760,6 @@ static const CGEN_OPERAND_INSTANCE fmt_53_rac_ops[] = { { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_54_rac_d_ops[] = { - { INPUT, & HW_ENT (HW_H_ACCUM), CGEN_MODE_DI, 0, 0 }, - { OUTPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, & OP_ENT (ACCD), 0 }, - { 0 } -}; - -static const CGEN_OPERAND_INSTANCE fmt_55_rac_ds_ops[] = { - { INPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, & OP_ENT (ACCS), 0 }, - { OUTPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, & OP_ENT (ACCD), 0 }, - { 0 } -}; - static const CGEN_OPERAND_INSTANCE fmt_56_rac_dsi_ops[] = { { INPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, & OP_ENT (ACCS), 0 }, { INPUT, & HW_ENT (HW_H_UINT), CGEN_MODE_USI, & OP_ENT (IMM1), 0 }, @@ -848,37 +853,45 @@ static const CGEN_OPERAND_INSTANCE fmt_69_st_plus_ops[] = { }; static const CGEN_OPERAND_INSTANCE fmt_70_trap_ops[] = { + { INPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, + { INPUT, & HW_ENT (HW_H_CR), CGEN_MODE_SI, 0, 0 }, { INPUT, & HW_ENT (HW_H_UINT), CGEN_MODE_USI, & OP_ENT (UIMM4), 0 }, + { OUTPUT, & HW_ENT (HW_H_PC), CGEN_MODE_USI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_CR), CGEN_MODE_SI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_CR), CGEN_MODE_SI, 0, 6 }, { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_71_unlock_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_72_unlock_ops[] = { + { INPUT, & HW_ENT (HW_H_LOCK), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC1), 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC2), 0 }, + { OUTPUT, & HW_ENT (HW_H_MEMORY), CGEN_MODE_SI, 0, 0 }, + { OUTPUT, & HW_ENT (HW_H_LOCK), CGEN_MODE_UBI, 0, 0 }, { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_74_satb_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_75_satb_ops[] = { { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SR), 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (DR), 0 }, { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_75_sat_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_76_sat_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SR), 0 }, { OUTPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (DR), 0 }, { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_76_sadd_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_77_sadd_ops[] = { { INPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, 0, 0 }, { INPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, 0, 1 }, { OUTPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, 0, 0 }, { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_77_macwu1_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_78_macwu1_ops[] = { { INPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, 0, 1 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC1), 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC2), 0 }, @@ -886,14 +899,14 @@ static const CGEN_OPERAND_INSTANCE fmt_77_macwu1_ops[] = { { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_78_mulwu1_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_79_mulwu1_ops[] = { { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC1), 0 }, { INPUT, & HW_ENT (HW_H_GR), CGEN_MODE_SI, & OP_ENT (SRC2), 0 }, { OUTPUT, & HW_ENT (HW_H_ACCUMS), CGEN_MODE_DI, 0, 1 }, { 0 } }; -static const CGEN_OPERAND_INSTANCE fmt_79_sc_ops[] = { +static const CGEN_OPERAND_INSTANCE fmt_80_sc_ops[] = { { INPUT, & HW_ENT (HW_H_COND), CGEN_MODE_UBI, 0, 0 }, { OUTPUT, & HW_ENT (HW_H_ABORT), CGEN_MODE_UBI, 0, 0 }, { 0 } @@ -902,118 +915,120 @@ static const CGEN_OPERAND_INSTANCE fmt_79_sc_ops[] = { #undef INPUT #undef OUTPUT -#define OP 1 /* syntax value for mnemonic */ +#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */ +#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field)) static const CGEN_SYNTAX syntax_table[] = { -/* $dr,$sr */ -/* 0 */ { OP, ' ', 130, ',', 129, 0 }, -/* $dr,$sr,#$slo16 */ -/* 1 */ { OP, ' ', 130, ',', 129, ',', '#', 145, 0 }, -/* $dr,$sr,$slo16 */ -/* 2 */ { OP, ' ', 130, ',', 129, ',', 145, 0 }, -/* $dr,$sr,#$uimm16 */ -/* 3 */ { OP, ' ', 130, ',', 129, ',', '#', 139, 0 }, -/* $dr,$sr,$uimm16 */ -/* 4 */ { OP, ' ', 130, ',', 129, ',', 139, 0 }, -/* $dr,$sr,#$ulo16 */ -/* 5 */ { OP, ' ', 130, ',', 129, ',', '#', 146, 0 }, -/* $dr,$sr,$ulo16 */ -/* 6 */ { OP, ' ', 130, ',', 129, ',', 146, 0 }, -/* $dr,#$simm8 */ -/* 7 */ { OP, ' ', 130, ',', '#', 135, 0 }, -/* $dr,$simm8 */ -/* 8 */ { OP, ' ', 130, ',', 135, 0 }, -/* $dr,$sr,#$simm16 */ -/* 9 */ { OP, ' ', 130, ',', 129, ',', '#', 136, 0 }, -/* $dr,$sr,$simm16 */ -/* 10 */ { OP, ' ', 130, ',', 129, ',', 136, 0 }, -/* $disp8 */ -/* 11 */ { OP, ' ', 148, 0 }, -/* $disp24 */ -/* 12 */ { OP, ' ', 150, 0 }, -/* $src1,$src2,$disp16 */ -/* 13 */ { OP, ' ', 131, ',', 132, ',', 149, 0 }, -/* $src2,$disp16 */ -/* 14 */ { OP, ' ', 132, ',', 149, 0 }, -/* $src1,$src2 */ -/* 15 */ { OP, ' ', 131, ',', 132, 0 }, -/* $src2,#$simm16 */ -/* 16 */ { OP, ' ', 132, ',', '#', 136, 0 }, -/* $src2,$simm16 */ -/* 17 */ { OP, ' ', 132, ',', 136, 0 }, -/* $src2,#$uimm16 */ -/* 18 */ { OP, ' ', 132, ',', '#', 139, 0 }, -/* $src2,$uimm16 */ -/* 19 */ { OP, ' ', 132, ',', 139, 0 }, -/* $src2 */ -/* 20 */ { OP, ' ', 132, 0 }, -/* $sr */ -/* 21 */ { OP, ' ', 129, 0 }, -/* $dr,@$sr */ -/* 22 */ { OP, ' ', 130, ',', '@', 129, 0 }, -/* $dr,@($sr) */ -/* 23 */ { OP, ' ', 130, ',', '@', '(', 129, ')', 0 }, -/* $dr,@($slo16,$sr) */ -/* 24 */ { OP, ' ', 130, ',', '@', '(', 145, ',', 129, ')', 0 }, -/* $dr,@($sr,$slo16) */ -/* 25 */ { OP, ' ', 130, ',', '@', '(', 129, ',', 145, ')', 0 }, -/* $dr,@$sr+ */ -/* 26 */ { OP, ' ', 130, ',', '@', 129, '+', 0 }, -/* $dr,#$uimm24 */ -/* 27 */ { OP, ' ', 130, ',', '#', 147, 0 }, -/* $dr,$uimm24 */ -/* 28 */ { OP, ' ', 130, ',', 147, 0 }, -/* $dr,$slo16 */ -/* 29 */ { OP, ' ', 130, ',', 145, 0 }, -/* $src1,$src2,$acc */ -/* 30 */ { OP, ' ', 131, ',', 132, ',', 143, 0 }, -/* $dr */ -/* 31 */ { OP, ' ', 130, 0 }, -/* $dr,$accs */ -/* 32 */ { OP, ' ', 130, ',', 142, 0 }, -/* $dr,$scr */ -/* 33 */ { OP, ' ', 130, ',', 133, 0 }, -/* $src1 */ -/* 34 */ { OP, ' ', 131, 0 }, -/* $src1,$accs */ -/* 35 */ { OP, ' ', 131, ',', 142, 0 }, -/* $sr,$dcr */ -/* 36 */ { OP, ' ', 129, ',', 134, 0 }, -/* */ -/* 37 */ { OP, 0 }, -/* $accd */ -/* 38 */ { OP, ' ', 141, 0 }, -/* $accd,$accs */ -/* 39 */ { OP, ' ', 141, ',', 142, 0 }, -/* $accd,$accs,#$imm1 */ -/* 40 */ { OP, ' ', 141, ',', 142, ',', '#', 140, 0 }, -/* $dr,#$hi16 */ -/* 41 */ { OP, ' ', 130, ',', '#', 144, 0 }, -/* $dr,$hi16 */ -/* 42 */ { OP, ' ', 130, ',', 144, 0 }, -/* $dr,#$uimm5 */ -/* 43 */ { OP, ' ', 130, ',', '#', 138, 0 }, -/* $dr,$uimm5 */ -/* 44 */ { OP, ' ', 130, ',', 138, 0 }, -/* $src1,@$src2 */ -/* 45 */ { OP, ' ', 131, ',', '@', 132, 0 }, -/* $src1,@($src2) */ -/* 46 */ { OP, ' ', 131, ',', '@', '(', 132, ')', 0 }, -/* $src1,@($slo16,$src2) */ -/* 47 */ { OP, ' ', 131, ',', '@', '(', 145, ',', 132, ')', 0 }, -/* $src1,@($src2,$slo16) */ -/* 48 */ { OP, ' ', 131, ',', '@', '(', 132, ',', 145, ')', 0 }, -/* $src1,@+$src2 */ -/* 49 */ { OP, ' ', 131, ',', '@', '+', 132, 0 }, -/* $src1,@-$src2 */ -/* 50 */ { OP, ' ', 131, ',', '@', '-', 132, 0 }, -/* #$uimm4 */ -/* 51 */ { OP, ' ', '#', 137, 0 }, -/* $uimm4 */ -/* 52 */ { OP, ' ', 137, 0 }, -}; - +/* $dr,$sr */ +/* 0 */ { MNEM, ' ', OP (DR), ',', OP (SR), 0 }, +/* $dr,$sr,#$slo16 */ +/* 1 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', '#', OP (SLO16), 0 }, +/* $dr,$sr,$slo16 */ +/* 2 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', OP (SLO16), 0 }, +/* $dr,$sr,#$uimm16 */ +/* 3 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', '#', OP (UIMM16), 0 }, +/* $dr,$sr,$uimm16 */ +/* 4 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', OP (UIMM16), 0 }, +/* $dr,$sr,#$ulo16 */ +/* 5 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', '#', OP (ULO16), 0 }, +/* $dr,$sr,$ulo16 */ +/* 6 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', OP (ULO16), 0 }, +/* $dr,#$simm8 */ +/* 7 */ { MNEM, ' ', OP (DR), ',', '#', OP (SIMM8), 0 }, +/* $dr,$simm8 */ +/* 8 */ { MNEM, ' ', OP (DR), ',', OP (SIMM8), 0 }, +/* $dr,$sr,#$simm16 */ +/* 9 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', '#', OP (SIMM16), 0 }, +/* $dr,$sr,$simm16 */ +/* 10 */ { MNEM, ' ', OP (DR), ',', OP (SR), ',', OP (SIMM16), 0 }, +/* $disp8 */ +/* 11 */ { MNEM, ' ', OP (DISP8), 0 }, +/* $disp24 */ +/* 12 */ { MNEM, ' ', OP (DISP24), 0 }, +/* $src1,$src2,$disp16 */ +/* 13 */ { MNEM, ' ', OP (SRC1), ',', OP (SRC2), ',', OP (DISP16), 0 }, +/* $src2,$disp16 */ +/* 14 */ { MNEM, ' ', OP (SRC2), ',', OP (DISP16), 0 }, +/* $src1,$src2 */ +/* 15 */ { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 }, +/* $src2,#$simm16 */ +/* 16 */ { MNEM, ' ', OP (SRC2), ',', '#', OP (SIMM16), 0 }, +/* $src2,$simm16 */ +/* 17 */ { MNEM, ' ', OP (SRC2), ',', OP (SIMM16), 0 }, +/* $src2,#$uimm16 */ +/* 18 */ { MNEM, ' ', OP (SRC2), ',', '#', OP (UIMM16), 0 }, +/* $src2,$uimm16 */ +/* 19 */ { MNEM, ' ', OP (SRC2), ',', OP (UIMM16), 0 }, +/* $src2 */ +/* 20 */ { MNEM, ' ', OP (SRC2), 0 }, +/* $sr */ +/* 21 */ { MNEM, ' ', OP (SR), 0 }, +/* $dr,@$sr */ +/* 22 */ { MNEM, ' ', OP (DR), ',', '@', OP (SR), 0 }, +/* $dr,@($sr) */ +/* 23 */ { MNEM, ' ', OP (DR), ',', '@', '(', OP (SR), ')', 0 }, +/* $dr,@($slo16,$sr) */ +/* 24 */ { MNEM, ' ', OP (DR), ',', '@', '(', OP (SLO16), ',', OP (SR), ')', 0 }, +/* $dr,@($sr,$slo16) */ +/* 25 */ { MNEM, ' ', OP (DR), ',', '@', '(', OP (SR), ',', OP (SLO16), ')', 0 }, +/* $dr,@$sr+ */ +/* 26 */ { MNEM, ' ', OP (DR), ',', '@', OP (SR), '+', 0 }, +/* $dr,#$uimm24 */ +/* 27 */ { MNEM, ' ', OP (DR), ',', '#', OP (UIMM24), 0 }, +/* $dr,$uimm24 */ +/* 28 */ { MNEM, ' ', OP (DR), ',', OP (UIMM24), 0 }, +/* $dr,$slo16 */ +/* 29 */ { MNEM, ' ', OP (DR), ',', OP (SLO16), 0 }, +/* $src1,$src2,$acc */ +/* 30 */ { MNEM, ' ', OP (SRC1), ',', OP (SRC2), ',', OP (ACC), 0 }, +/* $dr */ +/* 31 */ { MNEM, ' ', OP (DR), 0 }, +/* $dr,$accs */ +/* 32 */ { MNEM, ' ', OP (DR), ',', OP (ACCS), 0 }, +/* $dr,$scr */ +/* 33 */ { MNEM, ' ', OP (DR), ',', OP (SCR), 0 }, +/* $src1 */ +/* 34 */ { MNEM, ' ', OP (SRC1), 0 }, +/* $src1,$accs */ +/* 35 */ { MNEM, ' ', OP (SRC1), ',', OP (ACCS), 0 }, +/* $sr,$dcr */ +/* 36 */ { MNEM, ' ', OP (SR), ',', OP (DCR), 0 }, +/* */ +/* 37 */ { MNEM, 0 }, +/* $accd */ +/* 38 */ { MNEM, ' ', OP (ACCD), 0 }, +/* $accd,$accs */ +/* 39 */ { MNEM, ' ', OP (ACCD), ',', OP (ACCS), 0 }, +/* $accd,$accs,#$imm1 */ +/* 40 */ { MNEM, ' ', OP (ACCD), ',', OP (ACCS), ',', '#', OP (IMM1), 0 }, +/* $dr,#$hi16 */ +/* 41 */ { MNEM, ' ', OP (DR), ',', '#', OP (HI16), 0 }, +/* $dr,$hi16 */ +/* 42 */ { MNEM, ' ', OP (DR), ',', OP (HI16), 0 }, +/* $dr,#$uimm5 */ +/* 43 */ { MNEM, ' ', OP (DR), ',', '#', OP (UIMM5), 0 }, +/* $dr,$uimm5 */ +/* 44 */ { MNEM, ' ', OP (DR), ',', OP (UIMM5), 0 }, +/* $src1,@$src2 */ +/* 45 */ { MNEM, ' ', OP (SRC1), ',', '@', OP (SRC2), 0 }, +/* $src1,@($src2) */ +/* 46 */ { MNEM, ' ', OP (SRC1), ',', '@', '(', OP (SRC2), ')', 0 }, +/* $src1,@($slo16,$src2) */ +/* 47 */ { MNEM, ' ', OP (SRC1), ',', '@', '(', OP (SLO16), ',', OP (SRC2), ')', 0 }, +/* $src1,@($src2,$slo16) */ +/* 48 */ { MNEM, ' ', OP (SRC1), ',', '@', '(', OP (SRC2), ',', OP (SLO16), ')', 0 }, +/* $src1,@+$src2 */ +/* 49 */ { MNEM, ' ', OP (SRC1), ',', '@', '+', OP (SRC2), 0 }, +/* $src1,@-$src2 */ +/* 50 */ { MNEM, ' ', OP (SRC1), ',', '@', '-', OP (SRC2), 0 }, +/* #$uimm4 */ +/* 51 */ { MNEM, ' ', '#', OP (UIMM4), 0 }, +/* $uimm4 */ +/* 52 */ { MNEM, ' ', OP (UIMM4), 0 }, +}; + +#undef MNEM #undef OP static const CGEN_FORMAT format_table[] = @@ -1034,29 +1049,29 @@ static const CGEN_FORMAT format_table[] = /* 6 */ { 32, 32, 0xf0f00000 }, /* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(condbit UBI)(dr SI)(sr SI)(condbit UBI)(dr SI) */ /* 7 */ { 16, 16, 0xf0f0 }, -/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(condbit UBI)(disp8 VM) */ +/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(condbit UBI)(disp8 VM)(pc USI) */ /* 8 */ { 16, 16, 0xff00 }, /* (f-op1 #)(f-r1 #)(f-disp8 disp8) */ /* 9 */ { 16, 16, 0xff00 }, -/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(condbit UBI)(disp24 VM) */ +/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(condbit UBI)(disp24 VM)(pc USI) */ /* 10 */ { 32, 32, 0xff000000 }, /* (f-op1 #)(f-r1 #)(f-disp24 disp24) */ /* 11 */ { 32, 32, 0xff000000 }, -/* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(f-disp16 disp16)(disp16 VM)(src1 SI)(src2 SI) */ +/* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(f-disp16 disp16)(disp16 VM)(src1 SI)(src2 SI)(pc USI) */ /* 12 */ { 32, 32, 0xf0f00000 }, -/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 src2)(f-disp16 disp16)(disp16 VM)(src2 SI) */ +/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 src2)(f-disp16 disp16)(disp16 VM)(src2 SI)(pc USI) */ /* 13 */ { 32, 32, 0xfff00000 }, -/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(disp8 VM)(pc USI)(h-gr-14 SI) */ +/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(disp8 VM)(pc USI)(pc USI)(h-gr-14 SI) */ /* 14 */ { 16, 16, 0xff00 }, -/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(disp24 VM)(pc USI)(h-gr-14 SI) */ +/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(disp24 VM)(pc USI)(pc USI)(h-gr-14 SI) */ /* 15 */ { 32, 32, 0xff000000 }, -/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(condbit UBI)(disp8 VM)(pc USI)(h-gr-14 SI) */ +/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(condbit UBI)(disp8 VM)(pc USI)(pc USI)(h-gr-14 SI) */ /* 16 */ { 16, 16, 0xff00 }, -/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(condbit UBI)(disp24 VM)(pc USI)(h-gr-14 SI) */ +/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(condbit UBI)(disp24 VM)(pc USI)(pc USI)(h-gr-14 SI) */ /* 17 */ { 32, 32, 0xff000000 }, -/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(disp8 VM) */ +/* (f-op1 #)(f-r1 #)(f-disp8 disp8)(disp8 VM)(pc USI) */ /* 18 */ { 16, 16, 0xff00 }, -/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(disp24 VM) */ +/* (f-op1 #)(f-r1 #)(f-disp24 disp24)(disp24 VM)(pc USI) */ /* 19 */ { 32, 32, 0xff000000 }, /* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(src1 SI)(src2 SI)(condbit UBI) */ /* 20 */ { 16, 16, 0xf0f0 }, @@ -1068,11 +1083,11 @@ static const CGEN_FORMAT format_table[] = /* 23 */ { 16, 16, 0xfff0 }, /* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(f-simm16 #)(dr SI)(sr SI)(dr SI) */ /* 24 */ { 32, 32, 0xf0f0ffff }, -/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 sr)(condbit UBI)(sr SI) */ +/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 sr)(condbit UBI)(sr SI)(pc USI) */ /* 25 */ { 16, 16, 0xfff0 }, -/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 sr)(pc USI)(sr SI)(h-gr-14 SI) */ +/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 sr)(pc USI)(sr SI)(pc USI)(h-gr-14 SI) */ /* 26 */ { 16, 16, 0xfff0 }, -/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 sr)(sr SI) */ +/* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 sr)(sr SI)(pc USI) */ /* 27 */ { 16, 16, 0xfff0 }, /* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(h-memory-sr SI)(sr SI)(dr SI) */ /* 28 */ { 16, 16, 0xf0f0 }, @@ -1098,7 +1113,7 @@ static const CGEN_FORMAT format_table[] = /* 38 */ { 16, 16, 0xf000 }, /* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 #)(f-simm16 slo16)(slo16 HI)(dr SI) */ /* 39 */ { 32, 32, 0xf0ff0000 }, -/* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(dr SI)(sr SI) */ +/* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(h-memory-sr SI)(sr SI)(dr SI)(h-lock-0 UBI) */ /* 40 */ { 16, 16, 0xf0f0 }, /* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(accum DI)(src1 SI)(src2 SI)(accum DI) */ /* 41 */ { 16, 16, 0xf0f0 }, @@ -1126,9 +1141,9 @@ static const CGEN_FORMAT format_table[] = /* 52 */ { 16, 16, 0xffff }, /* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 #)(accum DI)(accum DI) */ /* 53 */ { 16, 16, 0xffff }, -/* (f-op1 #)(f-accd accd)(f-bits67 #)(f-op2 #)(f-accs #)(f-bit14 #)(f-imm1 #)(accum DI)(accd DI) */ +/* (f-op1 #)(f-accd accd)(f-bits67 #)(f-op2 #)(f-accs #)(f-bit14 #)(f-imm1 #) */ /* 54 */ { 16, 16, 0xf3ff }, -/* (f-op1 #)(f-accd accd)(f-bits67 #)(f-op2 #)(f-accs accs)(f-bit14 #)(f-imm1 #)(accs DI)(accd DI) */ +/* (f-op1 #)(f-accd accd)(f-bits67 #)(f-op2 #)(f-accs accs)(f-bit14 #)(f-imm1 #) */ /* 55 */ { 16, 16, 0xf3f3 }, /* (f-op1 #)(f-accd accd)(f-bits67 #)(f-op2 #)(f-accs accs)(f-bit14 #)(f-imm1 imm1)(accs DI)(imm1 USI)(accd DI) */ /* 56 */ { 16, 16, 0xf3f2 }, @@ -1158,26 +1173,28 @@ static const CGEN_FORMAT format_table[] = /* 68 */ { 32, 32, 0xf0f00000 }, /* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(src1 SI)(src2 SI)(h-memory-src2 SI)(src2 SI) */ /* 69 */ { 16, 16, 0xf0f0 }, -/* (f-op1 #)(f-r1 #)(f-op2 #)(f-uimm4 uimm4)(uimm4 USI) */ +/* (f-op1 #)(f-r1 #)(f-op2 #)(f-uimm4 uimm4)(pc USI)(h-cr-0 SI)(uimm4 USI)(pc USI)(h-cr-0 SI)(h-cr-6 SI) */ /* 70 */ { 16, 16, 0xfff0 }, -/* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(src1 SI)(src2 SI) */ -/* 71 */ { 16, 16, 0xf0f0 }, +/* (f-op1 #)(f-r1 #)(f-op2 #)(f-uimm4 uimm4) */ +/* 71 */ { 16, 16, 0xfff0 }, +/* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(h-lock-0 UBI)(src1 SI)(src2 SI)(h-memory-src2 SI)(h-lock-0 UBI) */ +/* 72 */ { 16, 16, 0xf0f0 }, /* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 #) */ -/* 72 */ { 16, 16, 0xf0ff }, -/* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 #) */ /* 73 */ { 16, 16, 0xf0ff }, +/* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 #) */ +/* 74 */ { 16, 16, 0xf0ff }, /* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(f-uimm16 #)(sr SI)(dr SI) */ -/* 74 */ { 32, 32, 0xf0f0ffff }, -/* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(f-uimm16 #)(condbit UBI)(sr SI)(dr SI) */ /* 75 */ { 32, 32, 0xf0f0ffff }, +/* (f-op1 #)(f-r1 dr)(f-op2 #)(f-r2 sr)(f-uimm16 #)(condbit UBI)(sr SI)(dr SI) */ +/* 76 */ { 32, 32, 0xf0f0ffff }, /* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 #)(h-accums-0 DI)(h-accums-1 DI)(h-accums-0 DI) */ -/* 76 */ { 16, 16, 0xffff }, +/* 77 */ { 16, 16, 0xffff }, /* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(h-accums-1 DI)(src1 SI)(src2 SI)(h-accums-1 DI) */ -/* 77 */ { 16, 16, 0xf0f0 }, -/* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(src1 SI)(src2 SI)(h-accums-1 DI) */ /* 78 */ { 16, 16, 0xf0f0 }, +/* (f-op1 #)(f-r1 src1)(f-op2 #)(f-r2 src2)(src1 SI)(src2 SI)(h-accums-1 DI) */ +/* 79 */ { 16, 16, 0xf0f0 }, /* (f-op1 #)(f-r1 #)(f-op2 #)(f-r2 #)(condbit UBI)(abort-parallel-execution UBI) */ -/* 79 */ { 16, 16, 0xffff }, +/* 80 */ { 16, 16, 0xffff }, }; #define A(a) (1 << CGEN_CAT3 (CGEN_INSN,_,a)) @@ -1195,231 +1212,231 @@ const CGEN_INSN m32r_cgen_insn_table_entries[MAX_INSNS] = { 1, 1, 1, 1 }, "add", "add", SYN (0), FMT (0), 0xa0, & fmt_0_add_ops[0], - { 2, 0|A(PARALLEL), { (1<