diff options
Diffstat (limited to 'sim/fr30/decode.c')
-rw-r--r-- | sim/fr30/decode.c | 1339 |
1 files changed, 646 insertions, 693 deletions
diff --git a/sim/fr30/decode.c b/sim/fr30/decode.c index ef87676..3ed6a11 100644 --- a/sim/fr30/decode.c +++ b/sim/fr30/decode.c @@ -28,29 +28,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "sim-main.h" #include "sim-assert.h" -/* FIXME: Need to review choices for the following. */ - -#if WITH_SEM_SWITCH_FULL -#define FULL(fn) -#else -#define FULL(fn) CONCAT3 (fr30bf,_sem_,fn) , -#endif - -#if WITH_FAST -#if WITH_SEM_SWITCH_FAST -#define FAST(fn) -#else -#define FAST(fn) CONCAT3 (fr30bf,_semf_,fn) , /* f for fast */ -#endif -#else -#define FAST(fn) -#endif - -/* The INSN_ prefix is not here and is instead part of the `insn' argument - to avoid collisions with header files (e.g. `AND' in ansidecl.h). */ -#define IDX(insn) CONCAT2 (FR30BF_,insn) -#define TYPE(insn) CONCAT2 (FR30_,insn) - /* The instruction descriptor array. This is computed at runtime. Space for it is not malloc'd to save a teensy bit of cpu in the decoder. Moving it to malloc space is trivial @@ -63,190 +40,183 @@ static IDESC fr30bf_insn_data[FR30BF_INSN_MAX]; static const struct insn_sem fr30bf_insn_sem[] = { - { VIRTUAL_INSN_X_INVALID, IDX (INSN_X_INVALID), FULL (x_invalid) FAST (x_invalid) }, - { VIRTUAL_INSN_X_AFTER, IDX (INSN_X_AFTER), FULL (x_after) FAST (x_after) }, - { VIRTUAL_INSN_X_BEFORE, IDX (INSN_X_BEFORE), FULL (x_before) FAST (x_before) }, - { VIRTUAL_INSN_X_CTI_CHAIN, IDX (INSN_X_CTI_CHAIN), FULL (x_cti_chain) FAST (x_cti_chain) }, - { VIRTUAL_INSN_X_CHAIN, IDX (INSN_X_CHAIN), FULL (x_chain) FAST (x_chain) }, - { VIRTUAL_INSN_X_BEGIN, IDX (INSN_X_BEGIN), FULL (x_begin) FAST (x_begin) }, - { TYPE (INSN_ADD), IDX (INSN_ADD), FULL (add) FAST (add) }, - { TYPE (INSN_ADDI), IDX (INSN_ADDI), FULL (addi) FAST (addi) }, - { TYPE (INSN_ADD2), IDX (INSN_ADD2), FULL (add2) FAST (add2) }, - { TYPE (INSN_ADDC), IDX (INSN_ADDC), FULL (addc) FAST (addc) }, - { TYPE (INSN_ADDN), IDX (INSN_ADDN), FULL (addn) FAST (addn) }, - { TYPE (INSN_ADDNI), IDX (INSN_ADDNI), FULL (addni) FAST (addni) }, - { TYPE (INSN_ADDN2), IDX (INSN_ADDN2), FULL (addn2) FAST (addn2) }, - { TYPE (INSN_SUB), IDX (INSN_SUB), FULL (sub) FAST (sub) }, - { TYPE (INSN_SUBC), IDX (INSN_SUBC), FULL (subc) FAST (subc) }, - { TYPE (INSN_SUBN), IDX (INSN_SUBN), FULL (subn) FAST (subn) }, - { TYPE (INSN_CMP), IDX (INSN_CMP), FULL (cmp) FAST (cmp) }, - { TYPE (INSN_CMPI), IDX (INSN_CMPI), FULL (cmpi) FAST (cmpi) }, - { TYPE (INSN_CMP2), IDX (INSN_CMP2), FULL (cmp2) FAST (cmp2) }, - { TYPE (INSN_AND), IDX (INSN_AND), FULL (and) FAST (and) }, - { TYPE (INSN_OR), IDX (INSN_OR), FULL (or) FAST (or) }, - { TYPE (INSN_EOR), IDX (INSN_EOR), FULL (eor) FAST (eor) }, - { TYPE (INSN_ANDM), IDX (INSN_ANDM), FULL (andm) FAST (andm) }, - { TYPE (INSN_ANDH), IDX (INSN_ANDH), FULL (andh) FAST (andh) }, - { TYPE (INSN_ANDB), IDX (INSN_ANDB), FULL (andb) FAST (andb) }, - { TYPE (INSN_ORM), IDX (INSN_ORM), FULL (orm) FAST (orm) }, - { TYPE (INSN_ORH), IDX (INSN_ORH), FULL (orh) FAST (orh) }, - { TYPE (INSN_ORB), IDX (INSN_ORB), FULL (orb) FAST (orb) }, - { TYPE (INSN_EORM), IDX (INSN_EORM), FULL (eorm) FAST (eorm) }, - { TYPE (INSN_EORH), IDX (INSN_EORH), FULL (eorh) FAST (eorh) }, - { TYPE (INSN_EORB), IDX (INSN_EORB), FULL (eorb) FAST (eorb) }, - { TYPE (INSN_BANDL), IDX (INSN_BANDL), FULL (bandl) FAST (bandl) }, - { TYPE (INSN_BORL), IDX (INSN_BORL), FULL (borl) FAST (borl) }, - { TYPE (INSN_BEORL), IDX (INSN_BEORL), FULL (beorl) FAST (beorl) }, - { TYPE (INSN_BANDH), IDX (INSN_BANDH), FULL (bandh) FAST (bandh) }, - { TYPE (INSN_BORH), IDX (INSN_BORH), FULL (borh) FAST (borh) }, - { TYPE (INSN_BEORH), IDX (INSN_BEORH), FULL (beorh) FAST (beorh) }, - { TYPE (INSN_BTSTL), IDX (INSN_BTSTL), FULL (btstl) FAST (btstl) }, - { TYPE (INSN_BTSTH), IDX (INSN_BTSTH), FULL (btsth) FAST (btsth) }, - { TYPE (INSN_MUL), IDX (INSN_MUL), FULL (mul) FAST (mul) }, - { TYPE (INSN_MULU), IDX (INSN_MULU), FULL (mulu) FAST (mulu) }, - { TYPE (INSN_MULH), IDX (INSN_MULH), FULL (mulh) FAST (mulh) }, - { TYPE (INSN_MULUH), IDX (INSN_MULUH), FULL (muluh) FAST (muluh) }, - { TYPE (INSN_DIV0S), IDX (INSN_DIV0S), FULL (div0s) FAST (div0s) }, - { TYPE (INSN_DIV0U), IDX (INSN_DIV0U), FULL (div0u) FAST (div0u) }, - { TYPE (INSN_DIV1), IDX (INSN_DIV1), FULL (div1) FAST (div1) }, - { TYPE (INSN_DIV2), IDX (INSN_DIV2), FULL (div2) FAST (div2) }, - { TYPE (INSN_DIV3), IDX (INSN_DIV3), FULL (div3) FAST (div3) }, - { TYPE (INSN_DIV4S), IDX (INSN_DIV4S), FULL (div4s) FAST (div4s) }, - { TYPE (INSN_LSL), IDX (INSN_LSL), FULL (lsl) FAST (lsl) }, - { TYPE (INSN_LSLI), IDX (INSN_LSLI), FULL (lsli) FAST (lsli) }, - { TYPE (INSN_LSL2), IDX (INSN_LSL2), FULL (lsl2) FAST (lsl2) }, - { TYPE (INSN_LSR), IDX (INSN_LSR), FULL (lsr) FAST (lsr) }, - { TYPE (INSN_LSRI), IDX (INSN_LSRI), FULL (lsri) FAST (lsri) }, - { TYPE (INSN_LSR2), IDX (INSN_LSR2), FULL (lsr2) FAST (lsr2) }, - { TYPE (INSN_ASR), IDX (INSN_ASR), FULL (asr) FAST (asr) }, - { TYPE (INSN_ASRI), IDX (INSN_ASRI), FULL (asri) FAST (asri) }, - { TYPE (INSN_ASR2), IDX (INSN_ASR2), FULL (asr2) FAST (asr2) }, - { TYPE (INSN_LDI8), IDX (INSN_LDI8), FULL (ldi8) FAST (ldi8) }, - { TYPE (INSN_LDI20), IDX (INSN_LDI20), FULL (ldi20) FAST (ldi20) }, - { TYPE (INSN_LDI32), IDX (INSN_LDI32), FULL (ldi32) FAST (ldi32) }, - { TYPE (INSN_LD), IDX (INSN_LD), FULL (ld) FAST (ld) }, - { TYPE (INSN_LDUH), IDX (INSN_LDUH), FULL (lduh) FAST (lduh) }, - { TYPE (INSN_LDUB), IDX (INSN_LDUB), FULL (ldub) FAST (ldub) }, - { TYPE (INSN_LDR13), IDX (INSN_LDR13), FULL (ldr13) FAST (ldr13) }, - { TYPE (INSN_LDR13UH), IDX (INSN_LDR13UH), FULL (ldr13uh) FAST (ldr13uh) }, - { TYPE (INSN_LDR13UB), IDX (INSN_LDR13UB), FULL (ldr13ub) FAST (ldr13ub) }, - { TYPE (INSN_LDR14), IDX (INSN_LDR14), FULL (ldr14) FAST (ldr14) }, - { TYPE (INSN_LDR14UH), IDX (INSN_LDR14UH), FULL (ldr14uh) FAST (ldr14uh) }, - { TYPE (INSN_LDR14UB), IDX (INSN_LDR14UB), FULL (ldr14ub) FAST (ldr14ub) }, - { TYPE (INSN_LDR15), IDX (INSN_LDR15), FULL (ldr15) FAST (ldr15) }, - { TYPE (INSN_LDR15GR), IDX (INSN_LDR15GR), FULL (ldr15gr) FAST (ldr15gr) }, - { TYPE (INSN_LDR15DR), IDX (INSN_LDR15DR), FULL (ldr15dr) FAST (ldr15dr) }, - { TYPE (INSN_LDR15PS), IDX (INSN_LDR15PS), FULL (ldr15ps) FAST (ldr15ps) }, - { TYPE (INSN_ST), IDX (INSN_ST), FULL (st) FAST (st) }, - { TYPE (INSN_STH), IDX (INSN_STH), FULL (sth) FAST (sth) }, - { TYPE (INSN_STB), IDX (INSN_STB), FULL (stb) FAST (stb) }, - { TYPE (INSN_STR13), IDX (INSN_STR13), FULL (str13) FAST (str13) }, - { TYPE (INSN_STR13H), IDX (INSN_STR13H), FULL (str13h) FAST (str13h) }, - { TYPE (INSN_STR13B), IDX (INSN_STR13B), FULL (str13b) FAST (str13b) }, - { TYPE (INSN_STR14), IDX (INSN_STR14), FULL (str14) FAST (str14) }, - { TYPE (INSN_STR14H), IDX (INSN_STR14H), FULL (str14h) FAST (str14h) }, - { TYPE (INSN_STR14B), IDX (INSN_STR14B), FULL (str14b) FAST (str14b) }, - { TYPE (INSN_STR15), IDX (INSN_STR15), FULL (str15) FAST (str15) }, - { TYPE (INSN_STR15GR), IDX (INSN_STR15GR), FULL (str15gr) FAST (str15gr) }, - { TYPE (INSN_STR15DR), IDX (INSN_STR15DR), FULL (str15dr) FAST (str15dr) }, - { TYPE (INSN_STR15PS), IDX (INSN_STR15PS), FULL (str15ps) FAST (str15ps) }, - { TYPE (INSN_MOV), IDX (INSN_MOV), FULL (mov) FAST (mov) }, - { TYPE (INSN_MOVDR), IDX (INSN_MOVDR), FULL (movdr) FAST (movdr) }, - { TYPE (INSN_MOVPS), IDX (INSN_MOVPS), FULL (movps) FAST (movps) }, - { TYPE (INSN_MOV2DR), IDX (INSN_MOV2DR), FULL (mov2dr) FAST (mov2dr) }, - { TYPE (INSN_MOV2PS), IDX (INSN_MOV2PS), FULL (mov2ps) FAST (mov2ps) }, - { TYPE (INSN_JMP), IDX (INSN_JMP), FULL (jmp) FAST (jmp) }, - { TYPE (INSN_JMPD), IDX (INSN_JMPD), FULL (jmpd) FAST (jmpd) }, - { TYPE (INSN_CALLR), IDX (INSN_CALLR), FULL (callr) FAST (callr) }, - { TYPE (INSN_CALLRD), IDX (INSN_CALLRD), FULL (callrd) FAST (callrd) }, - { TYPE (INSN_CALL), IDX (INSN_CALL), FULL (call) FAST (call) }, - { TYPE (INSN_CALLD), IDX (INSN_CALLD), FULL (calld) FAST (calld) }, - { TYPE (INSN_RET), IDX (INSN_RET), FULL (ret) FAST (ret) }, - { TYPE (INSN_RET_D), IDX (INSN_RET_D), FULL (ret_d) FAST (ret_d) }, - { TYPE (INSN_INT), IDX (INSN_INT), FULL (int) FAST (int) }, - { TYPE (INSN_INTE), IDX (INSN_INTE), FULL (inte) FAST (inte) }, - { TYPE (INSN_RETI), IDX (INSN_RETI), FULL (reti) FAST (reti) }, - { TYPE (INSN_BRAD), IDX (INSN_BRAD), FULL (brad) FAST (brad) }, - { TYPE (INSN_BRA), IDX (INSN_BRA), FULL (bra) FAST (bra) }, - { TYPE (INSN_BNOD), IDX (INSN_BNOD), FULL (bnod) FAST (bnod) }, - { TYPE (INSN_BNO), IDX (INSN_BNO), FULL (bno) FAST (bno) }, - { TYPE (INSN_BEQD), IDX (INSN_BEQD), FULL (beqd) FAST (beqd) }, - { TYPE (INSN_BEQ), IDX (INSN_BEQ), FULL (beq) FAST (beq) }, - { TYPE (INSN_BNED), IDX (INSN_BNED), FULL (bned) FAST (bned) }, - { TYPE (INSN_BNE), IDX (INSN_BNE), FULL (bne) FAST (bne) }, - { TYPE (INSN_BCD), IDX (INSN_BCD), FULL (bcd) FAST (bcd) }, - { TYPE (INSN_BC), IDX (INSN_BC), FULL (bc) FAST (bc) }, - { TYPE (INSN_BNCD), IDX (INSN_BNCD), FULL (bncd) FAST (bncd) }, - { TYPE (INSN_BNC), IDX (INSN_BNC), FULL (bnc) FAST (bnc) }, - { TYPE (INSN_BND), IDX (INSN_BND), FULL (bnd) FAST (bnd) }, - { TYPE (INSN_BN), IDX (INSN_BN), FULL (bn) FAST (bn) }, - { TYPE (INSN_BPD), IDX (INSN_BPD), FULL (bpd) FAST (bpd) }, - { TYPE (INSN_BP), IDX (INSN_BP), FULL (bp) FAST (bp) }, - { TYPE (INSN_BVD), IDX (INSN_BVD), FULL (bvd) FAST (bvd) }, - { TYPE (INSN_BV), IDX (INSN_BV), FULL (bv) FAST (bv) }, - { TYPE (INSN_BNVD), IDX (INSN_BNVD), FULL (bnvd) FAST (bnvd) }, - { TYPE (INSN_BNV), IDX (INSN_BNV), FULL (bnv) FAST (bnv) }, - { TYPE (INSN_BLTD), IDX (INSN_BLTD), FULL (bltd) FAST (bltd) }, - { TYPE (INSN_BLT), IDX (INSN_BLT), FULL (blt) FAST (blt) }, - { TYPE (INSN_BGED), IDX (INSN_BGED), FULL (bged) FAST (bged) }, - { TYPE (INSN_BGE), IDX (INSN_BGE), FULL (bge) FAST (bge) }, - { TYPE (INSN_BLED), IDX (INSN_BLED), FULL (bled) FAST (bled) }, - { TYPE (INSN_BLE), IDX (INSN_BLE), FULL (ble) FAST (ble) }, - { TYPE (INSN_BGTD), IDX (INSN_BGTD), FULL (bgtd) FAST (bgtd) }, - { TYPE (INSN_BGT), IDX (INSN_BGT), FULL (bgt) FAST (bgt) }, - { TYPE (INSN_BLSD), IDX (INSN_BLSD), FULL (blsd) FAST (blsd) }, - { TYPE (INSN_BLS), IDX (INSN_BLS), FULL (bls) FAST (bls) }, - { TYPE (INSN_BHID), IDX (INSN_BHID), FULL (bhid) FAST (bhid) }, - { TYPE (INSN_BHI), IDX (INSN_BHI), FULL (bhi) FAST (bhi) }, - { TYPE (INSN_DMOVR13), IDX (INSN_DMOVR13), FULL (dmovr13) FAST (dmovr13) }, - { TYPE (INSN_DMOVR13H), IDX (INSN_DMOVR13H), FULL (dmovr13h) FAST (dmovr13h) }, - { TYPE (INSN_DMOVR13B), IDX (INSN_DMOVR13B), FULL (dmovr13b) FAST (dmovr13b) }, - { TYPE (INSN_DMOVR13PI), IDX (INSN_DMOVR13PI), FULL (dmovr13pi) FAST (dmovr13pi) }, - { TYPE (INSN_DMOVR13PIH), IDX (INSN_DMOVR13PIH), FULL (dmovr13pih) FAST (dmovr13pih) }, - { TYPE (INSN_DMOVR13PIB), IDX (INSN_DMOVR13PIB), FULL (dmovr13pib) FAST (dmovr13pib) }, - { TYPE (INSN_DMOVR15PI), IDX (INSN_DMOVR15PI), FULL (dmovr15pi) FAST (dmovr15pi) }, - { TYPE (INSN_DMOV2R13), IDX (INSN_DMOV2R13), FULL (dmov2r13) FAST (dmov2r13) }, - { TYPE (INSN_DMOV2R13H), IDX (INSN_DMOV2R13H), FULL (dmov2r13h) FAST (dmov2r13h) }, - { TYPE (INSN_DMOV2R13B), IDX (INSN_DMOV2R13B), FULL (dmov2r13b) FAST (dmov2r13b) }, - { TYPE (INSN_DMOV2R13PI), IDX (INSN_DMOV2R13PI), FULL (dmov2r13pi) FAST (dmov2r13pi) }, - { TYPE (INSN_DMOV2R13PIH), IDX (INSN_DMOV2R13PIH), FULL (dmov2r13pih) FAST (dmov2r13pih) }, - { TYPE (INSN_DMOV2R13PIB), IDX (INSN_DMOV2R13PIB), FULL (dmov2r13pib) FAST (dmov2r13pib) }, - { TYPE (INSN_DMOV2R15PD), IDX (INSN_DMOV2R15PD), FULL (dmov2r15pd) FAST (dmov2r15pd) }, - { TYPE (INSN_LDRES), IDX (INSN_LDRES), FULL (ldres) FAST (ldres) }, - { TYPE (INSN_STRES), IDX (INSN_STRES), FULL (stres) FAST (stres) }, - { TYPE (INSN_COPOP), IDX (INSN_COPOP), FULL (copop) FAST (copop) }, - { TYPE (INSN_COPLD), IDX (INSN_COPLD), FULL (copld) FAST (copld) }, - { TYPE (INSN_COPST), IDX (INSN_COPST), FULL (copst) FAST (copst) }, - { TYPE (INSN_COPSV), IDX (INSN_COPSV), FULL (copsv) FAST (copsv) }, - { TYPE (INSN_NOP), IDX (INSN_NOP), FULL (nop) FAST (nop) }, - { TYPE (INSN_ANDCCR), IDX (INSN_ANDCCR), FULL (andccr) FAST (andccr) }, - { TYPE (INSN_ORCCR), IDX (INSN_ORCCR), FULL (orccr) FAST (orccr) }, - { TYPE (INSN_STILM), IDX (INSN_STILM), FULL (stilm) FAST (stilm) }, - { TYPE (INSN_ADDSP), IDX (INSN_ADDSP), FULL (addsp) FAST (addsp) }, - { TYPE (INSN_EXTSB), IDX (INSN_EXTSB), FULL (extsb) FAST (extsb) }, - { TYPE (INSN_EXTUB), IDX (INSN_EXTUB), FULL (extub) FAST (extub) }, - { TYPE (INSN_EXTSH), IDX (INSN_EXTSH), FULL (extsh) FAST (extsh) }, - { TYPE (INSN_EXTUH), IDX (INSN_EXTUH), FULL (extuh) FAST (extuh) }, - { TYPE (INSN_LDM0), IDX (INSN_LDM0), FULL (ldm0) FAST (ldm0) }, - { TYPE (INSN_LDM1), IDX (INSN_LDM1), FULL (ldm1) FAST (ldm1) }, - { TYPE (INSN_STM0), IDX (INSN_STM0), FULL (stm0) FAST (stm0) }, - { TYPE (INSN_STM1), IDX (INSN_STM1), FULL (stm1) FAST (stm1) }, - { TYPE (INSN_ENTER), IDX (INSN_ENTER), FULL (enter) FAST (enter) }, - { TYPE (INSN_LEAVE), IDX (INSN_LEAVE), FULL (leave) FAST (leave) }, - { TYPE (INSN_XCHB), IDX (INSN_XCHB), FULL (xchb) FAST (xchb) }, + { VIRTUAL_INSN_X_INVALID, FR30BF_INSN_X_INVALID, FR30BF_SFMT_EMPTY }, + { VIRTUAL_INSN_X_AFTER, FR30BF_INSN_X_AFTER, FR30BF_SFMT_EMPTY }, + { VIRTUAL_INSN_X_BEFORE, FR30BF_INSN_X_BEFORE, FR30BF_SFMT_EMPTY }, + { VIRTUAL_INSN_X_CTI_CHAIN, FR30BF_INSN_X_CTI_CHAIN, FR30BF_SFMT_EMPTY }, + { VIRTUAL_INSN_X_CHAIN, FR30BF_INSN_X_CHAIN, FR30BF_SFMT_EMPTY }, + { VIRTUAL_INSN_X_BEGIN, FR30BF_INSN_X_BEGIN, FR30BF_SFMT_EMPTY }, + { FR30_INSN_ADD, FR30BF_INSN_ADD, FR30BF_SFMT_ADD }, + { FR30_INSN_ADDI, FR30BF_INSN_ADDI, FR30BF_SFMT_ADDI }, + { FR30_INSN_ADD2, FR30BF_INSN_ADD2, FR30BF_SFMT_ADD2 }, + { FR30_INSN_ADDC, FR30BF_INSN_ADDC, FR30BF_SFMT_ADDC }, + { FR30_INSN_ADDN, FR30BF_INSN_ADDN, FR30BF_SFMT_ADDN }, + { FR30_INSN_ADDNI, FR30BF_INSN_ADDNI, FR30BF_SFMT_ADDNI }, + { FR30_INSN_ADDN2, FR30BF_INSN_ADDN2, FR30BF_SFMT_ADDN2 }, + { FR30_INSN_SUB, FR30BF_INSN_SUB, FR30BF_SFMT_ADD }, + { FR30_INSN_SUBC, FR30BF_INSN_SUBC, FR30BF_SFMT_ADDC }, + { FR30_INSN_SUBN, FR30BF_INSN_SUBN, FR30BF_SFMT_ADDN }, + { FR30_INSN_CMP, FR30BF_INSN_CMP, FR30BF_SFMT_CMP }, + { FR30_INSN_CMPI, FR30BF_INSN_CMPI, FR30BF_SFMT_CMPI }, + { FR30_INSN_CMP2, FR30BF_INSN_CMP2, FR30BF_SFMT_CMP2 }, + { FR30_INSN_AND, FR30BF_INSN_AND, FR30BF_SFMT_AND }, + { FR30_INSN_OR, FR30BF_INSN_OR, FR30BF_SFMT_AND }, + { FR30_INSN_EOR, FR30BF_INSN_EOR, FR30BF_SFMT_AND }, + { FR30_INSN_ANDM, FR30BF_INSN_ANDM, FR30BF_SFMT_ANDM }, + { FR30_INSN_ANDH, FR30BF_INSN_ANDH, FR30BF_SFMT_ANDH }, + { FR30_INSN_ANDB, FR30BF_INSN_ANDB, FR30BF_SFMT_ANDB }, + { FR30_INSN_ORM, FR30BF_INSN_ORM, FR30BF_SFMT_ANDM }, + { FR30_INSN_ORH, FR30BF_INSN_ORH, FR30BF_SFMT_ANDH }, + { FR30_INSN_ORB, FR30BF_INSN_ORB, FR30BF_SFMT_ANDB }, + { FR30_INSN_EORM, FR30BF_INSN_EORM, FR30BF_SFMT_ANDM }, + { FR30_INSN_EORH, FR30BF_INSN_EORH, FR30BF_SFMT_ANDH }, + { FR30_INSN_EORB, FR30BF_INSN_EORB, FR30BF_SFMT_ANDB }, + { FR30_INSN_BANDL, FR30BF_INSN_BANDL, FR30BF_SFMT_BANDL }, + { FR30_INSN_BORL, FR30BF_INSN_BORL, FR30BF_SFMT_BANDL }, + { FR30_INSN_BEORL, FR30BF_INSN_BEORL, FR30BF_SFMT_BANDL }, + { FR30_INSN_BANDH, FR30BF_INSN_BANDH, FR30BF_SFMT_BANDL }, + { FR30_INSN_BORH, FR30BF_INSN_BORH, FR30BF_SFMT_BANDL }, + { FR30_INSN_BEORH, FR30BF_INSN_BEORH, FR30BF_SFMT_BANDL }, + { FR30_INSN_BTSTL, FR30BF_INSN_BTSTL, FR30BF_SFMT_BTSTL }, + { FR30_INSN_BTSTH, FR30BF_INSN_BTSTH, FR30BF_SFMT_BTSTL }, + { FR30_INSN_MUL, FR30BF_INSN_MUL, FR30BF_SFMT_MUL }, + { FR30_INSN_MULU, FR30BF_INSN_MULU, FR30BF_SFMT_MULU }, + { FR30_INSN_MULH, FR30BF_INSN_MULH, FR30BF_SFMT_MULH }, + { FR30_INSN_MULUH, FR30BF_INSN_MULUH, FR30BF_SFMT_MULH }, + { FR30_INSN_DIV0S, FR30BF_INSN_DIV0S, FR30BF_SFMT_DIV0S }, + { FR30_INSN_DIV0U, FR30BF_INSN_DIV0U, FR30BF_SFMT_DIV0U }, + { FR30_INSN_DIV1, FR30BF_INSN_DIV1, FR30BF_SFMT_DIV1 }, + { FR30_INSN_DIV2, FR30BF_INSN_DIV2, FR30BF_SFMT_DIV2 }, + { FR30_INSN_DIV3, FR30BF_INSN_DIV3, FR30BF_SFMT_DIV3 }, + { FR30_INSN_DIV4S, FR30BF_INSN_DIV4S, FR30BF_SFMT_DIV4S }, + { FR30_INSN_LSL, FR30BF_INSN_LSL, FR30BF_SFMT_LSL }, + { FR30_INSN_LSLI, FR30BF_INSN_LSLI, FR30BF_SFMT_LSLI }, + { FR30_INSN_LSL2, FR30BF_INSN_LSL2, FR30BF_SFMT_LSLI }, + { FR30_INSN_LSR, FR30BF_INSN_LSR, FR30BF_SFMT_LSL }, + { FR30_INSN_LSRI, FR30BF_INSN_LSRI, FR30BF_SFMT_LSLI }, + { FR30_INSN_LSR2, FR30BF_INSN_LSR2, FR30BF_SFMT_LSLI }, + { FR30_INSN_ASR, FR30BF_INSN_ASR, FR30BF_SFMT_LSL }, + { FR30_INSN_ASRI, FR30BF_INSN_ASRI, FR30BF_SFMT_LSLI }, + { FR30_INSN_ASR2, FR30BF_INSN_ASR2, FR30BF_SFMT_LSLI }, + { FR30_INSN_LDI8, FR30BF_INSN_LDI8, FR30BF_SFMT_LDI8 }, + { FR30_INSN_LDI20, FR30BF_INSN_LDI20, FR30BF_SFMT_LDI20 }, + { FR30_INSN_LDI32, FR30BF_INSN_LDI32, FR30BF_SFMT_LDI32 }, + { FR30_INSN_LD, FR30BF_INSN_LD, FR30BF_SFMT_LD }, + { FR30_INSN_LDUH, FR30BF_INSN_LDUH, FR30BF_SFMT_LD }, + { FR30_INSN_LDUB, FR30BF_INSN_LDUB, FR30BF_SFMT_LD }, + { FR30_INSN_LDR13, FR30BF_INSN_LDR13, FR30BF_SFMT_LDR13 }, + { FR30_INSN_LDR13UH, FR30BF_INSN_LDR13UH, FR30BF_SFMT_LDR13 }, + { FR30_INSN_LDR13UB, FR30BF_INSN_LDR13UB, FR30BF_SFMT_LDR13 }, + { FR30_INSN_LDR14, FR30BF_INSN_LDR14, FR30BF_SFMT_LDR14 }, + { FR30_INSN_LDR14UH, FR30BF_INSN_LDR14UH, FR30BF_SFMT_LDR14UH }, + { FR30_INSN_LDR14UB, FR30BF_INSN_LDR14UB, FR30BF_SFMT_LDR14UB }, + { FR30_INSN_LDR15, FR30BF_INSN_LDR15, FR30BF_SFMT_LDR15 }, + { FR30_INSN_LDR15GR, FR30BF_INSN_LDR15GR, FR30BF_SFMT_LDR15GR }, + { FR30_INSN_LDR15DR, FR30BF_INSN_LDR15DR, FR30BF_SFMT_LDR15DR }, + { FR30_INSN_LDR15PS, FR30BF_INSN_LDR15PS, FR30BF_SFMT_LDR15PS }, + { FR30_INSN_ST, FR30BF_INSN_ST, FR30BF_SFMT_ST }, + { FR30_INSN_STH, FR30BF_INSN_STH, FR30BF_SFMT_ST }, + { FR30_INSN_STB, FR30BF_INSN_STB, FR30BF_SFMT_ST }, + { FR30_INSN_STR13, FR30BF_INSN_STR13, FR30BF_SFMT_STR13 }, + { FR30_INSN_STR13H, FR30BF_INSN_STR13H, FR30BF_SFMT_STR13 }, + { FR30_INSN_STR13B, FR30BF_INSN_STR13B, FR30BF_SFMT_STR13 }, + { FR30_INSN_STR14, FR30BF_INSN_STR14, FR30BF_SFMT_STR14 }, + { FR30_INSN_STR14H, FR30BF_INSN_STR14H, FR30BF_SFMT_STR14H }, + { FR30_INSN_STR14B, FR30BF_INSN_STR14B, FR30BF_SFMT_STR14B }, + { FR30_INSN_STR15, FR30BF_INSN_STR15, FR30BF_SFMT_STR15 }, + { FR30_INSN_STR15GR, FR30BF_INSN_STR15GR, FR30BF_SFMT_STR15GR }, + { FR30_INSN_STR15DR, FR30BF_INSN_STR15DR, FR30BF_SFMT_STR15DR }, + { FR30_INSN_STR15PS, FR30BF_INSN_STR15PS, FR30BF_SFMT_STR15PS }, + { FR30_INSN_MOV, FR30BF_INSN_MOV, FR30BF_SFMT_MOV }, + { FR30_INSN_MOVDR, FR30BF_INSN_MOVDR, FR30BF_SFMT_MOVDR }, + { FR30_INSN_MOVPS, FR30BF_INSN_MOVPS, FR30BF_SFMT_MOVPS }, + { FR30_INSN_MOV2DR, FR30BF_INSN_MOV2DR, FR30BF_SFMT_MOV2DR }, + { FR30_INSN_MOV2PS, FR30BF_INSN_MOV2PS, FR30BF_SFMT_MOV2PS }, + { FR30_INSN_JMP, FR30BF_INSN_JMP, FR30BF_SFMT_JMP }, + { FR30_INSN_JMPD, FR30BF_INSN_JMPD, FR30BF_SFMT_JMP }, + { FR30_INSN_CALLR, FR30BF_INSN_CALLR, FR30BF_SFMT_CALLR }, + { FR30_INSN_CALLRD, FR30BF_INSN_CALLRD, FR30BF_SFMT_CALLR }, + { FR30_INSN_CALL, FR30BF_INSN_CALL, FR30BF_SFMT_CALL }, + { FR30_INSN_CALLD, FR30BF_INSN_CALLD, FR30BF_SFMT_CALL }, + { FR30_INSN_RET, FR30BF_INSN_RET, FR30BF_SFMT_RET }, + { FR30_INSN_RET_D, FR30BF_INSN_RET_D, FR30BF_SFMT_RET }, + { FR30_INSN_INT, FR30BF_INSN_INT, FR30BF_SFMT_INT }, + { FR30_INSN_INTE, FR30BF_INSN_INTE, FR30BF_SFMT_INTE }, + { FR30_INSN_RETI, FR30BF_INSN_RETI, FR30BF_SFMT_RETI }, + { FR30_INSN_BRAD, FR30BF_INSN_BRAD, FR30BF_SFMT_BRAD }, + { FR30_INSN_BRA, FR30BF_INSN_BRA, FR30BF_SFMT_BRAD }, + { FR30_INSN_BNOD, FR30BF_INSN_BNOD, FR30BF_SFMT_BNOD }, + { FR30_INSN_BNO, FR30BF_INSN_BNO, FR30BF_SFMT_BNOD }, + { FR30_INSN_BEQD, FR30BF_INSN_BEQD, FR30BF_SFMT_BEQD }, + { FR30_INSN_BEQ, FR30BF_INSN_BEQ, FR30BF_SFMT_BEQD }, + { FR30_INSN_BNED, FR30BF_INSN_BNED, FR30BF_SFMT_BEQD }, + { FR30_INSN_BNE, FR30BF_INSN_BNE, FR30BF_SFMT_BEQD }, + { FR30_INSN_BCD, FR30BF_INSN_BCD, FR30BF_SFMT_BCD }, + { FR30_INSN_BC, FR30BF_INSN_BC, FR30BF_SFMT_BCD }, + { FR30_INSN_BNCD, FR30BF_INSN_BNCD, FR30BF_SFMT_BCD }, + { FR30_INSN_BNC, FR30BF_INSN_BNC, FR30BF_SFMT_BCD }, + { FR30_INSN_BND, FR30BF_INSN_BND, FR30BF_SFMT_BND }, + { FR30_INSN_BN, FR30BF_INSN_BN, FR30BF_SFMT_BND }, + { FR30_INSN_BPD, FR30BF_INSN_BPD, FR30BF_SFMT_BND }, + { FR30_INSN_BP, FR30BF_INSN_BP, FR30BF_SFMT_BND }, + { FR30_INSN_BVD, FR30BF_INSN_BVD, FR30BF_SFMT_BVD }, + { FR30_INSN_BV, FR30BF_INSN_BV, FR30BF_SFMT_BVD }, + { FR30_INSN_BNVD, FR30BF_INSN_BNVD, FR30BF_SFMT_BVD }, + { FR30_INSN_BNV, FR30BF_INSN_BNV, FR30BF_SFMT_BVD }, + { FR30_INSN_BLTD, FR30BF_INSN_BLTD, FR30BF_SFMT_BLTD }, + { FR30_INSN_BLT, FR30BF_INSN_BLT, FR30BF_SFMT_BLTD }, + { FR30_INSN_BGED, FR30BF_INSN_BGED, FR30BF_SFMT_BLTD }, + { FR30_INSN_BGE, FR30BF_INSN_BGE, FR30BF_SFMT_BLTD }, + { FR30_INSN_BLED, FR30BF_INSN_BLED, FR30BF_SFMT_BLED }, + { FR30_INSN_BLE, FR30BF_INSN_BLE, FR30BF_SFMT_BLED }, + { FR30_INSN_BGTD, FR30BF_INSN_BGTD, FR30BF_SFMT_BLED }, + { FR30_INSN_BGT, FR30BF_INSN_BGT, FR30BF_SFMT_BLED }, + { FR30_INSN_BLSD, FR30BF_INSN_BLSD, FR30BF_SFMT_BLSD }, + { FR30_INSN_BLS, FR30BF_INSN_BLS, FR30BF_SFMT_BLSD }, + { FR30_INSN_BHID, FR30BF_INSN_BHID, FR30BF_SFMT_BLSD }, + { FR30_INSN_BHI, FR30BF_INSN_BHI, FR30BF_SFMT_BLSD }, + { FR30_INSN_DMOVR13, FR30BF_INSN_DMOVR13, FR30BF_SFMT_DMOVR13 }, + { FR30_INSN_DMOVR13H, FR30BF_INSN_DMOVR13H, FR30BF_SFMT_DMOVR13H }, + { FR30_INSN_DMOVR13B, FR30BF_INSN_DMOVR13B, FR30BF_SFMT_DMOVR13B }, + { FR30_INSN_DMOVR13PI, FR30BF_INSN_DMOVR13PI, FR30BF_SFMT_DMOVR13PI }, + { FR30_INSN_DMOVR13PIH, FR30BF_INSN_DMOVR13PIH, FR30BF_SFMT_DMOVR13PIH }, + { FR30_INSN_DMOVR13PIB, FR30BF_INSN_DMOVR13PIB, FR30BF_SFMT_DMOVR13PIB }, + { FR30_INSN_DMOVR15PI, FR30BF_INSN_DMOVR15PI, FR30BF_SFMT_DMOVR15PI }, + { FR30_INSN_DMOV2R13, FR30BF_INSN_DMOV2R13, FR30BF_SFMT_DMOV2R13 }, + { FR30_INSN_DMOV2R13H, FR30BF_INSN_DMOV2R13H, FR30BF_SFMT_DMOV2R13H }, + { FR30_INSN_DMOV2R13B, FR30BF_INSN_DMOV2R13B, FR30BF_SFMT_DMOV2R13B }, + { FR30_INSN_DMOV2R13PI, FR30BF_INSN_DMOV2R13PI, FR30BF_SFMT_DMOV2R13PI }, + { FR30_INSN_DMOV2R13PIH, FR30BF_INSN_DMOV2R13PIH, FR30BF_SFMT_DMOV2R13PIH }, + { FR30_INSN_DMOV2R13PIB, FR30BF_INSN_DMOV2R13PIB, FR30BF_SFMT_DMOV2R13PIB }, + { FR30_INSN_DMOV2R15PD, FR30BF_INSN_DMOV2R15PD, FR30BF_SFMT_DMOV2R15PD }, + { FR30_INSN_LDRES, FR30BF_INSN_LDRES, FR30BF_SFMT_LDRES }, + { FR30_INSN_STRES, FR30BF_INSN_STRES, FR30BF_SFMT_LDRES }, + { FR30_INSN_COPOP, FR30BF_INSN_COPOP, FR30BF_SFMT_COPOP }, + { FR30_INSN_COPLD, FR30BF_INSN_COPLD, FR30BF_SFMT_COPOP }, + { FR30_INSN_COPST, FR30BF_INSN_COPST, FR30BF_SFMT_COPOP }, + { FR30_INSN_COPSV, FR30BF_INSN_COPSV, FR30BF_SFMT_COPOP }, + { FR30_INSN_NOP, FR30BF_INSN_NOP, FR30BF_SFMT_BNOD }, + { FR30_INSN_ANDCCR, FR30BF_INSN_ANDCCR, FR30BF_SFMT_ANDCCR }, + { FR30_INSN_ORCCR, FR30BF_INSN_ORCCR, FR30BF_SFMT_ANDCCR }, + { FR30_INSN_STILM, FR30BF_INSN_STILM, FR30BF_SFMT_STILM }, + { FR30_INSN_ADDSP, FR30BF_INSN_ADDSP, FR30BF_SFMT_ADDSP }, + { FR30_INSN_EXTSB, FR30BF_INSN_EXTSB, FR30BF_SFMT_EXTSB }, + { FR30_INSN_EXTUB, FR30BF_INSN_EXTUB, FR30BF_SFMT_EXTUB }, + { FR30_INSN_EXTSH, FR30BF_INSN_EXTSH, FR30BF_SFMT_EXTSH }, + { FR30_INSN_EXTUH, FR30BF_INSN_EXTUH, FR30BF_SFMT_EXTUH }, + { FR30_INSN_LDM0, FR30BF_INSN_LDM0, FR30BF_SFMT_LDM0 }, + { FR30_INSN_LDM1, FR30BF_INSN_LDM1, FR30BF_SFMT_LDM1 }, + { FR30_INSN_STM0, FR30BF_INSN_STM0, FR30BF_SFMT_STM0 }, + { FR30_INSN_STM1, FR30BF_INSN_STM1, FR30BF_SFMT_STM1 }, + { FR30_INSN_ENTER, FR30BF_INSN_ENTER, FR30BF_SFMT_ENTER }, + { FR30_INSN_LEAVE, FR30BF_INSN_LEAVE, FR30BF_SFMT_LEAVE }, + { FR30_INSN_XCHB, FR30BF_INSN_XCHB, FR30BF_SFMT_XCHB }, }; -static const struct insn_sem fr30bf_insn_sem_invalid = -{ - VIRTUAL_INSN_X_INVALID, IDX (INSN_X_INVALID), FULL (x_invalid) FAST (x_invalid) +static const struct insn_sem fr30bf_insn_sem_invalid = { + VIRTUAL_INSN_X_INVALID, FR30BF_INSN_X_INVALID, FR30BF_SFMT_EMPTY }; -#undef FMT -#undef FULL -#undef FAST -#undef IDX -#undef TYPE - /* Initialize an IDESC from the compile-time computable parts. */ static INLINE void @@ -255,6 +225,7 @@ init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t) const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries; id->num = t->index; + id->sfmt = t->sfmt; if ((int) t->type <= 0) id->idata = & cgen_virtual_insn_table[- (int) t->type]; else @@ -262,12 +233,7 @@ init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t) id->attrs = CGEN_INSN_ATTRS (id->idata); /* Oh my god, a magic number. */ id->length = CGEN_INSN_BITSIZE (id->idata) / 8; -#if ! WITH_SEM_SWITCH_FULL - id->sem_full = t->sem_full; -#endif -#if WITH_FAST && ! WITH_SEM_SWITCH_FAST - id->sem_fast = t->sem_fast; -#endif + #if WITH_PROFILE_MODEL_P id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index]; { @@ -275,6 +241,8 @@ init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t) SIM_ASSERT (t->index == id->timing->num); } #endif + + /* Semantic pointers are initialized elsewhere. */ } /* Initialize the instruction descriptor table. */ @@ -322,60 +290,60 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 8) & (255 << 0))); switch (val) { - case 0 : itype = FR30BF_INSN_LDR13; goto extract_fmt_ldr13; - case 1 : itype = FR30BF_INSN_LDR13UH; goto extract_fmt_ldr13; - case 2 : itype = FR30BF_INSN_LDR13UB; goto extract_fmt_ldr13; - case 3 : itype = FR30BF_INSN_LDR15; goto extract_fmt_ldr15; - case 4 : itype = FR30BF_INSN_LD; goto extract_fmt_ld; - case 5 : itype = FR30BF_INSN_LDUH; goto extract_fmt_ld; - case 6 : itype = FR30BF_INSN_LDUB; goto extract_fmt_ld; + case 0 : itype = FR30BF_INSN_LDR13; goto extract_sfmt_ldr13; + case 1 : itype = FR30BF_INSN_LDR13UH; goto extract_sfmt_ldr13; + case 2 : itype = FR30BF_INSN_LDR13UB; goto extract_sfmt_ldr13; + case 3 : itype = FR30BF_INSN_LDR15; goto extract_sfmt_ldr15; + case 4 : itype = FR30BF_INSN_LD; goto extract_sfmt_ld; + case 5 : itype = FR30BF_INSN_LDUH; goto extract_sfmt_ld; + case 6 : itype = FR30BF_INSN_LDUB; goto extract_sfmt_ld; case 7 : { unsigned int val = (((insn >> 4) & (15 << 0))); switch (val) { - case 0 : itype = FR30BF_INSN_LDR15GR; goto extract_fmt_ldr15gr; - case 1 : itype = FR30BF_INSN_MOV2PS; goto extract_fmt_mov2ps; - case 8 : itype = FR30BF_INSN_LDR15DR; goto extract_fmt_ldr15dr; - case 9 : itype = FR30BF_INSN_LDR15PS; goto extract_fmt_ldr15ps; - default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty; + case 0 : itype = FR30BF_INSN_LDR15GR; goto extract_sfmt_ldr15gr; + case 1 : itype = FR30BF_INSN_MOV2PS; goto extract_sfmt_mov2ps; + case 8 : itype = FR30BF_INSN_LDR15DR; goto extract_sfmt_ldr15dr; + case 9 : itype = FR30BF_INSN_LDR15PS; goto extract_sfmt_ldr15ps; + default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty; } } - case 8 : itype = FR30BF_INSN_DMOV2R13; goto extract_fmt_dmov2r13; - case 9 : itype = FR30BF_INSN_DMOV2R13H; goto extract_fmt_dmov2r13h; - case 10 : itype = FR30BF_INSN_DMOV2R13B; goto extract_fmt_dmov2r13b; - case 11 : itype = FR30BF_INSN_DMOV2R15PD; goto extract_fmt_dmov2r15pd; - case 12 : itype = FR30BF_INSN_DMOV2R13PI; goto extract_fmt_dmov2r13pi; - case 13 : itype = FR30BF_INSN_DMOV2R13PIH; goto extract_fmt_dmov2r13pih; - case 14 : itype = FR30BF_INSN_DMOV2R13PIB; goto extract_fmt_dmov2r13pib; - case 15 : itype = FR30BF_INSN_ENTER; goto extract_fmt_enter; - case 16 : itype = FR30BF_INSN_STR13; goto extract_fmt_str13; - case 17 : itype = FR30BF_INSN_STR13H; goto extract_fmt_str13; - case 18 : itype = FR30BF_INSN_STR13B; goto extract_fmt_str13; - case 19 : itype = FR30BF_INSN_STR15; goto extract_fmt_str15; - case 20 : itype = FR30BF_INSN_ST; goto extract_fmt_st; - case 21 : itype = FR30BF_INSN_STH; goto extract_fmt_st; - case 22 : itype = FR30BF_INSN_STB; goto extract_fmt_st; + case 8 : itype = FR30BF_INSN_DMOV2R13; goto extract_sfmt_dmov2r13; + case 9 : itype = FR30BF_INSN_DMOV2R13H; goto extract_sfmt_dmov2r13h; + case 10 : itype = FR30BF_INSN_DMOV2R13B; goto extract_sfmt_dmov2r13b; + case 11 : itype = FR30BF_INSN_DMOV2R15PD; goto extract_sfmt_dmov2r15pd; + case 12 : itype = FR30BF_INSN_DMOV2R13PI; goto extract_sfmt_dmov2r13pi; + case 13 : itype = FR30BF_INSN_DMOV2R13PIH; goto extract_sfmt_dmov2r13pih; + case 14 : itype = FR30BF_INSN_DMOV2R13PIB; goto extract_sfmt_dmov2r13pib; + case 15 : itype = FR30BF_INSN_ENTER; goto extract_sfmt_enter; + case 16 : itype = FR30BF_INSN_STR13; goto extract_sfmt_str13; + case 17 : itype = FR30BF_INSN_STR13H; goto extract_sfmt_str13; + case 18 : itype = FR30BF_INSN_STR13B; goto extract_sfmt_str13; + case 19 : itype = FR30BF_INSN_STR15; goto extract_sfmt_str15; + case 20 : itype = FR30BF_INSN_ST; goto extract_sfmt_st; + case 21 : itype = FR30BF_INSN_STH; goto extract_sfmt_st; + case 22 : itype = FR30BF_INSN_STB; goto extract_sfmt_st; case 23 : { unsigned int val = (((insn >> 4) & (15 << 0))); switch (val) { - case 0 : itype = FR30BF_INSN_STR15GR; goto extract_fmt_str15gr; - case 1 : itype = FR30BF_INSN_MOVPS; goto extract_fmt_movps; - case 8 : itype = FR30BF_INSN_STR15DR; goto extract_fmt_str15dr; - case 9 : itype = FR30BF_INSN_STR15PS; goto extract_fmt_str15ps; - default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty; + case 0 : itype = FR30BF_INSN_STR15GR; goto extract_sfmt_str15gr; + case 1 : itype = FR30BF_INSN_MOVPS; goto extract_sfmt_movps; + case 8 : itype = FR30BF_INSN_STR15DR; goto extract_sfmt_str15dr; + case 9 : itype = FR30BF_INSN_STR15PS; goto extract_sfmt_str15ps; + default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty; } } - case 24 : itype = FR30BF_INSN_DMOVR13; goto extract_fmt_dmovr13; - case 25 : itype = FR30BF_INSN_DMOVR13H; goto extract_fmt_dmovr13h; - case 26 : itype = FR30BF_INSN_DMOVR13B; goto extract_fmt_dmovr13b; - case 27 : itype = FR30BF_INSN_DMOVR15PI; goto extract_fmt_dmovr15pi; - case 28 : itype = FR30BF_INSN_DMOVR13PI; goto extract_fmt_dmovr13pi; - case 29 : itype = FR30BF_INSN_DMOVR13PIH; goto extract_fmt_dmovr13pih; - case 30 : itype = FR30BF_INSN_DMOVR13PIB; goto extract_fmt_dmovr13pib; - case 31 : itype = FR30BF_INSN_INT; goto extract_fmt_int; + case 24 : itype = FR30BF_INSN_DMOVR13; goto extract_sfmt_dmovr13; + case 25 : itype = FR30BF_INSN_DMOVR13H; goto extract_sfmt_dmovr13h; + case 26 : itype = FR30BF_INSN_DMOVR13B; goto extract_sfmt_dmovr13b; + case 27 : itype = FR30BF_INSN_DMOVR15PI; goto extract_sfmt_dmovr15pi; + case 28 : itype = FR30BF_INSN_DMOVR13PI; goto extract_sfmt_dmovr13pi; + case 29 : itype = FR30BF_INSN_DMOVR13PIH; goto extract_sfmt_dmovr13pih; + case 30 : itype = FR30BF_INSN_DMOVR13PIB; goto extract_sfmt_dmovr13pib; + case 31 : itype = FR30BF_INSN_INT; goto extract_sfmt_int; case 32 : /* fall through */ case 33 : /* fall through */ case 34 : /* fall through */ @@ -391,7 +359,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 44 : /* fall through */ case 45 : /* fall through */ case 46 : /* fall through */ - case 47 : itype = FR30BF_INSN_LDR14; goto extract_fmt_ldr14; + case 47 : itype = FR30BF_INSN_LDR14; goto extract_sfmt_ldr14; case 48 : /* fall through */ case 49 : /* fall through */ case 50 : /* fall through */ @@ -407,7 +375,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 60 : /* fall through */ case 61 : /* fall through */ case 62 : /* fall through */ - case 63 : itype = FR30BF_INSN_STR14; goto extract_fmt_str14; + case 63 : itype = FR30BF_INSN_STR14; goto extract_sfmt_str14; case 64 : /* fall through */ case 65 : /* fall through */ case 66 : /* fall through */ @@ -423,7 +391,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 76 : /* fall through */ case 77 : /* fall through */ case 78 : /* fall through */ - case 79 : itype = FR30BF_INSN_LDR14UH; goto extract_fmt_ldr14uh; + case 79 : itype = FR30BF_INSN_LDR14UH; goto extract_sfmt_ldr14uh; case 80 : /* fall through */ case 81 : /* fall through */ case 82 : /* fall through */ @@ -439,7 +407,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 92 : /* fall through */ case 93 : /* fall through */ case 94 : /* fall through */ - case 95 : itype = FR30BF_INSN_STR14H; goto extract_fmt_str14h; + case 95 : itype = FR30BF_INSN_STR14H; goto extract_sfmt_str14h; case 96 : /* fall through */ case 97 : /* fall through */ case 98 : /* fall through */ @@ -455,7 +423,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 108 : /* fall through */ case 109 : /* fall through */ case 110 : /* fall through */ - case 111 : itype = FR30BF_INSN_LDR14UB; goto extract_fmt_ldr14ub; + case 111 : itype = FR30BF_INSN_LDR14UB; goto extract_sfmt_ldr14ub; case 112 : /* fall through */ case 113 : /* fall through */ case 114 : /* fall through */ @@ -471,109 +439,109 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 124 : /* fall through */ case 125 : /* fall through */ case 126 : /* fall through */ - case 127 : itype = FR30BF_INSN_STR14B; goto extract_fmt_str14b; - case 128 : itype = FR30BF_INSN_BANDL; goto extract_fmt_bandl; - case 129 : itype = FR30BF_INSN_BANDH; goto extract_fmt_bandl; - case 130 : itype = FR30BF_INSN_AND; goto extract_fmt_and; - case 131 : itype = FR30BF_INSN_ANDCCR; goto extract_fmt_andccr; - case 132 : itype = FR30BF_INSN_ANDM; goto extract_fmt_andm; - case 133 : itype = FR30BF_INSN_ANDH; goto extract_fmt_andh; - case 134 : itype = FR30BF_INSN_ANDB; goto extract_fmt_andb; - case 135 : itype = FR30BF_INSN_STILM; goto extract_fmt_stilm; - case 136 : itype = FR30BF_INSN_BTSTL; goto extract_fmt_btstl; - case 137 : itype = FR30BF_INSN_BTSTH; goto extract_fmt_btstl; - case 138 : itype = FR30BF_INSN_XCHB; goto extract_fmt_xchb; - case 139 : itype = FR30BF_INSN_MOV; goto extract_fmt_mov; - case 140 : itype = FR30BF_INSN_LDM0; goto extract_fmt_ldm0; - case 141 : itype = FR30BF_INSN_LDM1; goto extract_fmt_ldm1; - case 142 : itype = FR30BF_INSN_STM0; goto extract_fmt_stm0; - case 143 : itype = FR30BF_INSN_STM1; goto extract_fmt_stm1; - case 144 : itype = FR30BF_INSN_BORL; goto extract_fmt_bandl; - case 145 : itype = FR30BF_INSN_BORH; goto extract_fmt_bandl; - case 146 : itype = FR30BF_INSN_OR; goto extract_fmt_and; - case 147 : itype = FR30BF_INSN_ORCCR; goto extract_fmt_andccr; - case 148 : itype = FR30BF_INSN_ORM; goto extract_fmt_andm; - case 149 : itype = FR30BF_INSN_ORH; goto extract_fmt_andh; - case 150 : itype = FR30BF_INSN_ORB; goto extract_fmt_andb; + case 127 : itype = FR30BF_INSN_STR14B; goto extract_sfmt_str14b; + case 128 : itype = FR30BF_INSN_BANDL; goto extract_sfmt_bandl; + case 129 : itype = FR30BF_INSN_BANDH; goto extract_sfmt_bandl; + case 130 : itype = FR30BF_INSN_AND; goto extract_sfmt_and; + case 131 : itype = FR30BF_INSN_ANDCCR; goto extract_sfmt_andccr; + case 132 : itype = FR30BF_INSN_ANDM; goto extract_sfmt_andm; + case 133 : itype = FR30BF_INSN_ANDH; goto extract_sfmt_andh; + case 134 : itype = FR30BF_INSN_ANDB; goto extract_sfmt_andb; + case 135 : itype = FR30BF_INSN_STILM; goto extract_sfmt_stilm; + case 136 : itype = FR30BF_INSN_BTSTL; goto extract_sfmt_btstl; + case 137 : itype = FR30BF_INSN_BTSTH; goto extract_sfmt_btstl; + case 138 : itype = FR30BF_INSN_XCHB; goto extract_sfmt_xchb; + case 139 : itype = FR30BF_INSN_MOV; goto extract_sfmt_mov; + case 140 : itype = FR30BF_INSN_LDM0; goto extract_sfmt_ldm0; + case 141 : itype = FR30BF_INSN_LDM1; goto extract_sfmt_ldm1; + case 142 : itype = FR30BF_INSN_STM0; goto extract_sfmt_stm0; + case 143 : itype = FR30BF_INSN_STM1; goto extract_sfmt_stm1; + case 144 : itype = FR30BF_INSN_BORL; goto extract_sfmt_bandl; + case 145 : itype = FR30BF_INSN_BORH; goto extract_sfmt_bandl; + case 146 : itype = FR30BF_INSN_OR; goto extract_sfmt_and; + case 147 : itype = FR30BF_INSN_ORCCR; goto extract_sfmt_andccr; + case 148 : itype = FR30BF_INSN_ORM; goto extract_sfmt_andm; + case 149 : itype = FR30BF_INSN_ORH; goto extract_sfmt_andh; + case 150 : itype = FR30BF_INSN_ORB; goto extract_sfmt_andb; case 151 : { unsigned int val = (((insn >> 4) & (15 << 0))); switch (val) { - case 0 : itype = FR30BF_INSN_JMP; goto extract_fmt_jmp; - case 1 : itype = FR30BF_INSN_CALLR; goto extract_fmt_callr; - case 2 : itype = FR30BF_INSN_RET; goto extract_fmt_ret; - case 3 : itype = FR30BF_INSN_RETI; goto extract_fmt_reti; - case 4 : itype = FR30BF_INSN_DIV0S; goto extract_fmt_div0s; - case 5 : itype = FR30BF_INSN_DIV0U; goto extract_fmt_div0u; - case 6 : itype = FR30BF_INSN_DIV1; goto extract_fmt_div1; - case 7 : itype = FR30BF_INSN_DIV2; goto extract_fmt_div2; - case 8 : itype = FR30BF_INSN_EXTSB; goto extract_fmt_extsb; - case 9 : itype = FR30BF_INSN_EXTUB; goto extract_fmt_extub; - case 10 : itype = FR30BF_INSN_EXTSH; goto extract_fmt_extsh; - case 11 : itype = FR30BF_INSN_EXTUH; goto extract_fmt_extuh; - default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty; + case 0 : itype = FR30BF_INSN_JMP; goto extract_sfmt_jmp; + case 1 : itype = FR30BF_INSN_CALLR; goto extract_sfmt_callr; + case 2 : itype = FR30BF_INSN_RET; goto extract_sfmt_ret; + case 3 : itype = FR30BF_INSN_RETI; goto extract_sfmt_reti; + case 4 : itype = FR30BF_INSN_DIV0S; goto extract_sfmt_div0s; + case 5 : itype = FR30BF_INSN_DIV0U; goto extract_sfmt_div0u; + case 6 : itype = FR30BF_INSN_DIV1; goto extract_sfmt_div1; + case 7 : itype = FR30BF_INSN_DIV2; goto extract_sfmt_div2; + case 8 : itype = FR30BF_INSN_EXTSB; goto extract_sfmt_extsb; + case 9 : itype = FR30BF_INSN_EXTUB; goto extract_sfmt_extub; + case 10 : itype = FR30BF_INSN_EXTSH; goto extract_sfmt_extsh; + case 11 : itype = FR30BF_INSN_EXTUH; goto extract_sfmt_extuh; + default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty; } } - case 152 : itype = FR30BF_INSN_BEORL; goto extract_fmt_bandl; - case 153 : itype = FR30BF_INSN_BEORH; goto extract_fmt_bandl; - case 154 : itype = FR30BF_INSN_EOR; goto extract_fmt_and; - case 155 : itype = FR30BF_INSN_LDI20; goto extract_fmt_ldi20; - case 156 : itype = FR30BF_INSN_EORM; goto extract_fmt_andm; - case 157 : itype = FR30BF_INSN_EORH; goto extract_fmt_andh; - case 158 : itype = FR30BF_INSN_EORB; goto extract_fmt_andb; + case 152 : itype = FR30BF_INSN_BEORL; goto extract_sfmt_bandl; + case 153 : itype = FR30BF_INSN_BEORH; goto extract_sfmt_bandl; + case 154 : itype = FR30BF_INSN_EOR; goto extract_sfmt_and; + case 155 : itype = FR30BF_INSN_LDI20; goto extract_sfmt_ldi20; + case 156 : itype = FR30BF_INSN_EORM; goto extract_sfmt_andm; + case 157 : itype = FR30BF_INSN_EORH; goto extract_sfmt_andh; + case 158 : itype = FR30BF_INSN_EORB; goto extract_sfmt_andb; case 159 : { unsigned int val = (((insn >> 4) & (15 << 0))); switch (val) { - case 0 : itype = FR30BF_INSN_JMPD; goto extract_fmt_jmp; - case 1 : itype = FR30BF_INSN_CALLRD; goto extract_fmt_callr; - case 2 : itype = FR30BF_INSN_RET_D; goto extract_fmt_ret; - case 3 : itype = FR30BF_INSN_INTE; goto extract_fmt_inte; - case 6 : itype = FR30BF_INSN_DIV3; goto extract_fmt_div3; - case 7 : itype = FR30BF_INSN_DIV4S; goto extract_fmt_div4s; - case 8 : itype = FR30BF_INSN_LDI32; goto extract_fmt_ldi32; - case 9 : itype = FR30BF_INSN_LEAVE; goto extract_fmt_leave; - case 10 : itype = FR30BF_INSN_NOP; goto extract_fmt_bnod; - case 12 : itype = FR30BF_INSN_COPOP; goto extract_fmt_copop; - case 13 : itype = FR30BF_INSN_COPLD; goto extract_fmt_copop; - case 14 : itype = FR30BF_INSN_COPST; goto extract_fmt_copop; - case 15 : itype = FR30BF_INSN_COPSV; goto extract_fmt_copop; - default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty; + case 0 : itype = FR30BF_INSN_JMPD; goto extract_sfmt_jmp; + case 1 : itype = FR30BF_INSN_CALLRD; goto extract_sfmt_callr; + case 2 : itype = FR30BF_INSN_RET_D; goto extract_sfmt_ret; + case 3 : itype = FR30BF_INSN_INTE; goto extract_sfmt_inte; + case 6 : itype = FR30BF_INSN_DIV3; goto extract_sfmt_div3; + case 7 : itype = FR30BF_INSN_DIV4S; goto extract_sfmt_div4s; + case 8 : itype = FR30BF_INSN_LDI32; goto extract_sfmt_ldi32; + case 9 : itype = FR30BF_INSN_LEAVE; goto extract_sfmt_leave; + case 10 : itype = FR30BF_INSN_NOP; goto extract_sfmt_bnod; + case 12 : itype = FR30BF_INSN_COPOP; goto extract_sfmt_copop; + case 13 : itype = FR30BF_INSN_COPLD; goto extract_sfmt_copop; + case 14 : itype = FR30BF_INSN_COPST; goto extract_sfmt_copop; + case 15 : itype = FR30BF_INSN_COPSV; goto extract_sfmt_copop; + default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty; } } - case 160 : itype = FR30BF_INSN_ADDNI; goto extract_fmt_addni; - case 161 : itype = FR30BF_INSN_ADDN2; goto extract_fmt_addn2; - case 162 : itype = FR30BF_INSN_ADDN; goto extract_fmt_addn; - case 163 : itype = FR30BF_INSN_ADDSP; goto extract_fmt_addsp; - case 164 : itype = FR30BF_INSN_ADDI; goto extract_fmt_addi; - case 165 : itype = FR30BF_INSN_ADD2; goto extract_fmt_add2; - case 166 : itype = FR30BF_INSN_ADD; goto extract_fmt_add; - case 167 : itype = FR30BF_INSN_ADDC; goto extract_fmt_addc; - case 168 : itype = FR30BF_INSN_CMPI; goto extract_fmt_cmpi; - case 169 : itype = FR30BF_INSN_CMP2; goto extract_fmt_cmp2; - case 170 : itype = FR30BF_INSN_CMP; goto extract_fmt_cmp; - case 171 : itype = FR30BF_INSN_MULU; goto extract_fmt_mulu; - case 172 : itype = FR30BF_INSN_SUB; goto extract_fmt_add; - case 173 : itype = FR30BF_INSN_SUBC; goto extract_fmt_addc; - case 174 : itype = FR30BF_INSN_SUBN; goto extract_fmt_addn; - case 175 : itype = FR30BF_INSN_MUL; goto extract_fmt_mul; - case 176 : itype = FR30BF_INSN_LSRI; goto extract_fmt_lsli; - case 177 : itype = FR30BF_INSN_LSR2; goto extract_fmt_lsli; - case 178 : itype = FR30BF_INSN_LSR; goto extract_fmt_lsl; - case 179 : itype = FR30BF_INSN_MOV2DR; goto extract_fmt_mov2dr; - case 180 : itype = FR30BF_INSN_LSLI; goto extract_fmt_lsli; - case 181 : itype = FR30BF_INSN_LSL2; goto extract_fmt_lsli; - case 182 : itype = FR30BF_INSN_LSL; goto extract_fmt_lsl; - case 183 : itype = FR30BF_INSN_MOVDR; goto extract_fmt_movdr; - case 184 : itype = FR30BF_INSN_ASRI; goto extract_fmt_lsli; - case 185 : itype = FR30BF_INSN_ASR2; goto extract_fmt_lsli; - case 186 : itype = FR30BF_INSN_ASR; goto extract_fmt_lsl; - case 187 : itype = FR30BF_INSN_MULUH; goto extract_fmt_mulh; - case 188 : itype = FR30BF_INSN_LDRES; goto extract_fmt_ldres; - case 189 : itype = FR30BF_INSN_STRES; goto extract_fmt_ldres; - case 191 : itype = FR30BF_INSN_MULH; goto extract_fmt_mulh; + case 160 : itype = FR30BF_INSN_ADDNI; goto extract_sfmt_addni; + case 161 : itype = FR30BF_INSN_ADDN2; goto extract_sfmt_addn2; + case 162 : itype = FR30BF_INSN_ADDN; goto extract_sfmt_addn; + case 163 : itype = FR30BF_INSN_ADDSP; goto extract_sfmt_addsp; + case 164 : itype = FR30BF_INSN_ADDI; goto extract_sfmt_addi; + case 165 : itype = FR30BF_INSN_ADD2; goto extract_sfmt_add2; + case 166 : itype = FR30BF_INSN_ADD; goto extract_sfmt_add; + case 167 : itype = FR30BF_INSN_ADDC; goto extract_sfmt_addc; + case 168 : itype = FR30BF_INSN_CMPI; goto extract_sfmt_cmpi; + case 169 : itype = FR30BF_INSN_CMP2; goto extract_sfmt_cmp2; + case 170 : itype = FR30BF_INSN_CMP; goto extract_sfmt_cmp; + case 171 : itype = FR30BF_INSN_MULU; goto extract_sfmt_mulu; + case 172 : itype = FR30BF_INSN_SUB; goto extract_sfmt_add; + case 173 : itype = FR30BF_INSN_SUBC; goto extract_sfmt_addc; + case 174 : itype = FR30BF_INSN_SUBN; goto extract_sfmt_addn; + case 175 : itype = FR30BF_INSN_MUL; goto extract_sfmt_mul; + case 176 : itype = FR30BF_INSN_LSRI; goto extract_sfmt_lsli; + case 177 : itype = FR30BF_INSN_LSR2; goto extract_sfmt_lsli; + case 178 : itype = FR30BF_INSN_LSR; goto extract_sfmt_lsl; + case 179 : itype = FR30BF_INSN_MOV2DR; goto extract_sfmt_mov2dr; + case 180 : itype = FR30BF_INSN_LSLI; goto extract_sfmt_lsli; + case 181 : itype = FR30BF_INSN_LSL2; goto extract_sfmt_lsli; + case 182 : itype = FR30BF_INSN_LSL; goto extract_sfmt_lsl; + case 183 : itype = FR30BF_INSN_MOVDR; goto extract_sfmt_movdr; + case 184 : itype = FR30BF_INSN_ASRI; goto extract_sfmt_lsli; + case 185 : itype = FR30BF_INSN_ASR2; goto extract_sfmt_lsli; + case 186 : itype = FR30BF_INSN_ASR; goto extract_sfmt_lsl; + case 187 : itype = FR30BF_INSN_MULUH; goto extract_sfmt_mulh; + case 188 : itype = FR30BF_INSN_LDRES; goto extract_sfmt_ldres; + case 189 : itype = FR30BF_INSN_STRES; goto extract_sfmt_ldres; + case 191 : itype = FR30BF_INSN_MULH; goto extract_sfmt_mulh; case 192 : /* fall through */ case 193 : /* fall through */ case 194 : /* fall through */ @@ -589,7 +557,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 204 : /* fall through */ case 205 : /* fall through */ case 206 : /* fall through */ - case 207 : itype = FR30BF_INSN_LDI8; goto extract_fmt_ldi8; + case 207 : itype = FR30BF_INSN_LDI8; goto extract_sfmt_ldi8; case 208 : /* fall through */ case 209 : /* fall through */ case 210 : /* fall through */ @@ -597,7 +565,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 212 : /* fall through */ case 213 : /* fall through */ case 214 : /* fall through */ - case 215 : itype = FR30BF_INSN_CALL; goto extract_fmt_call; + case 215 : itype = FR30BF_INSN_CALL; goto extract_sfmt_call; case 216 : /* fall through */ case 217 : /* fall through */ case 218 : /* fall through */ @@ -605,47 +573,47 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, case 220 : /* fall through */ case 221 : /* fall through */ case 222 : /* fall through */ - case 223 : itype = FR30BF_INSN_CALLD; goto extract_fmt_call; - case 224 : itype = FR30BF_INSN_BRA; goto extract_fmt_brad; - case 225 : itype = FR30BF_INSN_BNO; goto extract_fmt_bnod; - case 226 : itype = FR30BF_INSN_BEQ; goto extract_fmt_beqd; - case 227 : itype = FR30BF_INSN_BNE; goto extract_fmt_beqd; - case 228 : itype = FR30BF_INSN_BC; goto extract_fmt_bcd; - case 229 : itype = FR30BF_INSN_BNC; goto extract_fmt_bcd; - case 230 : itype = FR30BF_INSN_BN; goto extract_fmt_bnd; - case 231 : itype = FR30BF_INSN_BP; goto extract_fmt_bnd; - case 232 : itype = FR30BF_INSN_BV; goto extract_fmt_bvd; - case 233 : itype = FR30BF_INSN_BNV; goto extract_fmt_bvd; - case 234 : itype = FR30BF_INSN_BLT; goto extract_fmt_bltd; - case 235 : itype = FR30BF_INSN_BGE; goto extract_fmt_bltd; - case 236 : itype = FR30BF_INSN_BLE; goto extract_fmt_bled; - case 237 : itype = FR30BF_INSN_BGT; goto extract_fmt_bled; - case 238 : itype = FR30BF_INSN_BLS; goto extract_fmt_blsd; - case 239 : itype = FR30BF_INSN_BHI; goto extract_fmt_blsd; - case 240 : itype = FR30BF_INSN_BRAD; goto extract_fmt_brad; - case 241 : itype = FR30BF_INSN_BNOD; goto extract_fmt_bnod; - case 242 : itype = FR30BF_INSN_BEQD; goto extract_fmt_beqd; - case 243 : itype = FR30BF_INSN_BNED; goto extract_fmt_beqd; - case 244 : itype = FR30BF_INSN_BCD; goto extract_fmt_bcd; - case 245 : itype = FR30BF_INSN_BNCD; goto extract_fmt_bcd; - case 246 : itype = FR30BF_INSN_BND; goto extract_fmt_bnd; - case 247 : itype = FR30BF_INSN_BPD; goto extract_fmt_bnd; - case 248 : itype = FR30BF_INSN_BVD; goto extract_fmt_bvd; - case 249 : itype = FR30BF_INSN_BNVD; goto extract_fmt_bvd; - case 250 : itype = FR30BF_INSN_BLTD; goto extract_fmt_bltd; - case 251 : itype = FR30BF_INSN_BGED; goto extract_fmt_bltd; - case 252 : itype = FR30BF_INSN_BLED; goto extract_fmt_bled; - case 253 : itype = FR30BF_INSN_BGTD; goto extract_fmt_bled; - case 254 : itype = FR30BF_INSN_BLSD; goto extract_fmt_blsd; - case 255 : itype = FR30BF_INSN_BHID; goto extract_fmt_blsd; - default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty; + case 223 : itype = FR30BF_INSN_CALLD; goto extract_sfmt_call; + case 224 : itype = FR30BF_INSN_BRA; goto extract_sfmt_brad; + case 225 : itype = FR30BF_INSN_BNO; goto extract_sfmt_bnod; + case 226 : itype = FR30BF_INSN_BEQ; goto extract_sfmt_beqd; + case 227 : itype = FR30BF_INSN_BNE; goto extract_sfmt_beqd; + case 228 : itype = FR30BF_INSN_BC; goto extract_sfmt_bcd; + case 229 : itype = FR30BF_INSN_BNC; goto extract_sfmt_bcd; + case 230 : itype = FR30BF_INSN_BN; goto extract_sfmt_bnd; + case 231 : itype = FR30BF_INSN_BP; goto extract_sfmt_bnd; + case 232 : itype = FR30BF_INSN_BV; goto extract_sfmt_bvd; + case 233 : itype = FR30BF_INSN_BNV; goto extract_sfmt_bvd; + case 234 : itype = FR30BF_INSN_BLT; goto extract_sfmt_bltd; + case 235 : itype = FR30BF_INSN_BGE; goto extract_sfmt_bltd; + case 236 : itype = FR30BF_INSN_BLE; goto extract_sfmt_bled; + case 237 : itype = FR30BF_INSN_BGT; goto extract_sfmt_bled; + case 238 : itype = FR30BF_INSN_BLS; goto extract_sfmt_blsd; + case 239 : itype = FR30BF_INSN_BHI; goto extract_sfmt_blsd; + case 240 : itype = FR30BF_INSN_BRAD; goto extract_sfmt_brad; + case 241 : itype = FR30BF_INSN_BNOD; goto extract_sfmt_bnod; + case 242 : itype = FR30BF_INSN_BEQD; goto extract_sfmt_beqd; + case 243 : itype = FR30BF_INSN_BNED; goto extract_sfmt_beqd; + case 244 : itype = FR30BF_INSN_BCD; goto extract_sfmt_bcd; + case 245 : itype = FR30BF_INSN_BNCD; goto extract_sfmt_bcd; + case 246 : itype = FR30BF_INSN_BND; goto extract_sfmt_bnd; + case 247 : itype = FR30BF_INSN_BPD; goto extract_sfmt_bnd; + case 248 : itype = FR30BF_INSN_BVD; goto extract_sfmt_bvd; + case 249 : itype = FR30BF_INSN_BNVD; goto extract_sfmt_bvd; + case 250 : itype = FR30BF_INSN_BLTD; goto extract_sfmt_bltd; + case 251 : itype = FR30BF_INSN_BGED; goto extract_sfmt_bltd; + case 252 : itype = FR30BF_INSN_BLED; goto extract_sfmt_bled; + case 253 : itype = FR30BF_INSN_BGTD; goto extract_sfmt_bled; + case 254 : itype = FR30BF_INSN_BLSD; goto extract_sfmt_blsd; + case 255 : itype = FR30BF_INSN_BHID; goto extract_sfmt_blsd; + default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty; } } } /* The instruction has been decoded, now extract the fields. */ - extract_fmt_empty: + extract_sfmt_empty: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; @@ -653,17 +621,17 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_empty", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0)); #undef FLD return idesc; } - extract_fmt_add: + extract_sfmt_add: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f UINT f_Rj; UINT f_Ri; @@ -673,7 +641,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_add", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -688,11 +656,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_addi: + extract_sfmt_addi: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_addi.f +#define FLD(f) abuf->fields.sfmt_addi.f UINT f_u4; UINT f_Ri; @@ -702,7 +670,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_u4) = f_u4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addi", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -716,11 +684,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_add2: + extract_sfmt_add2: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_add2.f +#define FLD(f) abuf->fields.sfmt_add2.f SI f_m4; UINT f_Ri; @@ -730,7 +698,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_m4) = f_m4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_add2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -744,11 +712,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_addc: + extract_sfmt_addc: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_addc.f +#define FLD(f) abuf->fields.sfmt_add.f UINT f_Rj; UINT f_Ri; @@ -758,7 +726,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addc", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -773,11 +741,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_addn: + extract_sfmt_addn: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_addn.f +#define FLD(f) abuf->fields.sfmt_add.f UINT f_Rj; UINT f_Ri; @@ -787,7 +755,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addn", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addn", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -802,11 +770,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_addni: + extract_sfmt_addni: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_addni.f +#define FLD(f) abuf->fields.sfmt_addi.f UINT f_u4; UINT f_Ri; @@ -816,7 +784,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_u4) = f_u4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addni", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addni", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -830,11 +798,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_addn2: + extract_sfmt_addn2: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_addn2.f +#define FLD(f) abuf->fields.sfmt_add2.f SI f_m4; UINT f_Ri; @@ -844,7 +812,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_m4) = f_m4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addn2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addn2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -858,11 +826,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_cmp: + extract_sfmt_cmp: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_cmp.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -872,7 +840,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmp", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -886,11 +854,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_cmpi: + extract_sfmt_cmpi: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_cmpi.f +#define FLD(f) abuf->fields.sfmt_addi.f UINT f_u4; UINT f_Ri; @@ -900,7 +868,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_u4) = f_u4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -913,11 +881,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_cmp2: + extract_sfmt_cmp2: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_cmp2.f +#define FLD(f) abuf->fields.sfmt_add2.f SI f_m4; UINT f_Ri; @@ -927,7 +895,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_m4) = f_m4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmp2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -940,11 +908,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_and: + extract_sfmt_and: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_and.f +#define FLD(f) abuf->fields.sfmt_add.f UINT f_Rj; UINT f_Ri; @@ -954,7 +922,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_and", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -969,11 +937,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_andm: + extract_sfmt_andm: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_andm.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -983,7 +951,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andm", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andm", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -997,11 +965,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_andh: + extract_sfmt_andh: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_andh.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1011,7 +979,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andh", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andh", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1025,11 +993,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_andb: + extract_sfmt_andb: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_andb.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1039,7 +1007,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andb", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andb", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1053,11 +1021,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bandl: + extract_sfmt_bandl: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_bandl.f +#define FLD(f) abuf->fields.sfmt_addi.f UINT f_u4; UINT f_Ri; @@ -1067,7 +1035,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_u4) = f_u4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bandl", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bandl", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1080,11 +1048,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_btstl: + extract_sfmt_btstl: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_btstl.f +#define FLD(f) abuf->fields.sfmt_addi.f UINT f_u4; UINT f_Ri; @@ -1094,7 +1062,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_u4) = f_u4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_btstl", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstl", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1107,11 +1075,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_mul: + extract_sfmt_mul: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_mul.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1121,7 +1089,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mul", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mul", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1135,11 +1103,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_mulu: + extract_sfmt_mulu: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_mulu.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1149,7 +1117,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulu", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulu", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1163,11 +1131,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_mulh: + extract_sfmt_mulh: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_mulh.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1177,7 +1145,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulh", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulh", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1191,18 +1159,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_div0s: + extract_sfmt_div0s: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_div0s.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div0s", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0s", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1215,32 +1183,32 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_div0u: + extract_sfmt_div0u: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_div0u.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div0u", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0u", (char *) 0)); #undef FLD return idesc; } - extract_fmt_div1: + extract_sfmt_div1: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_div1.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div1", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div1", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1253,18 +1221,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_div2: + extract_sfmt_div2: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_div2.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div2", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div2", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1277,39 +1245,39 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_div3: + extract_sfmt_div3: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_div3.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div3", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div3", (char *) 0)); #undef FLD return idesc; } - extract_fmt_div4s: + extract_sfmt_div4s: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_div4s.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div4s", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div4s", (char *) 0)); #undef FLD return idesc; } - extract_fmt_lsl: + extract_sfmt_lsl: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_lsl.f +#define FLD(f) abuf->fields.sfmt_add.f UINT f_Rj; UINT f_Ri; @@ -1319,7 +1287,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lsl", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsl", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1334,11 +1302,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_lsli: + extract_sfmt_lsli: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_lsli.f +#define FLD(f) abuf->fields.sfmt_addi.f UINT f_u4; UINT f_Ri; @@ -1348,7 +1316,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_u4) = f_u4; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lsli", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsli", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1362,11 +1330,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldi8: + extract_sfmt_ldi8: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldi8.f +#define FLD(f) abuf->fields.sfmt_ldi8.f UINT f_i8; UINT f_Ri; @@ -1376,7 +1344,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_i8) = f_i8; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi8", "f_i8 0x%x", 'x', f_i8, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi8", "f_i8 0x%x", 'x', f_i8, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1389,11 +1357,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldi20: + extract_sfmt_ldi20: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldi20.f +#define FLD(f) abuf->fields.sfmt_ldi20.f UINT f_i20_16; UINT f_i20_4; UINT f_Ri; @@ -1412,7 +1380,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_i20) = f_i20; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi20", "f_i20 0x%x", 'x', f_i20, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi20", "f_i20 0x%x", 'x', f_i20, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1425,11 +1393,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldi32: + extract_sfmt_ldi32: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldi32.f +#define FLD(f) abuf->fields.sfmt_ldi32.f UINT f_i32; UINT f_Ri; /* Contents of trailing part of insn. */ @@ -1444,7 +1412,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_i32) = f_i32; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi32", "f_i32 0x%x", 'x', f_i32, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi32", "f_i32 0x%x", 'x', f_i32, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1457,11 +1425,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ld: + extract_sfmt_ld: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ld.f +#define FLD(f) abuf->fields.sfmt_ldr13.f UINT f_Rj; UINT f_Ri; @@ -1471,7 +1439,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Rj) = & CPU (h_gr)[f_Rj]; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1485,11 +1453,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr13: + extract_sfmt_ldr13: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr13.f +#define FLD(f) abuf->fields.sfmt_ldr13.f UINT f_Rj; UINT f_Ri; @@ -1499,7 +1467,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Rj) = & CPU (h_gr)[f_Rj]; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr13", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr13", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1514,11 +1482,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr14: + extract_sfmt_ldr14: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr14.f +#define FLD(f) abuf->fields.sfmt_ldr14.f SI f_disp10; UINT f_Ri; @@ -1528,7 +1496,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_disp10) = f_disp10; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr14", "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr14", "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1542,11 +1510,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr14uh: + extract_sfmt_ldr14uh: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr14uh.f +#define FLD(f) abuf->fields.sfmt_ldr14uh.f SI f_disp9; UINT f_Ri; @@ -1556,7 +1524,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_disp9) = f_disp9; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr14uh", "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr14uh", "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1570,11 +1538,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr14ub: + extract_sfmt_ldr14ub: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr14ub.f +#define FLD(f) abuf->fields.sfmt_ldr14ub.f INT f_disp8; UINT f_Ri; @@ -1584,7 +1552,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_disp8) = f_disp8; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr14ub", "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr14ub", "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1598,11 +1566,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr15: + extract_sfmt_ldr15: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr15.f +#define FLD(f) abuf->fields.sfmt_ldr15.f USI f_udisp6; UINT f_Ri; @@ -1612,7 +1580,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_udisp6) = f_udisp6; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15", "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15", "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1626,11 +1594,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr15gr: + extract_sfmt_ldr15gr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr15gr.f +#define FLD(f) abuf->fields.sfmt_ldr15gr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); @@ -1638,7 +1606,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_Ri) = f_Ri; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15gr", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15gr", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1653,18 +1621,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr15dr: + extract_sfmt_ldr15dr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr15dr.f +#define FLD(f) abuf->fields.sfmt_ldr15dr.f UINT f_Rs2; f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (f_Rs2) = f_Rs2; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1678,15 +1646,15 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldr15ps: + extract_sfmt_ldr15ps: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldr15ps.f +#define FLD(f) abuf->fields.sfmt_addsp.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15ps", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15ps", (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1700,11 +1668,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_st: + extract_sfmt_st: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_st.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1714,7 +1682,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1728,11 +1696,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str13: + extract_sfmt_str13: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str13.f +#define FLD(f) abuf->fields.sfmt_str13.f UINT f_Rj; UINT f_Ri; @@ -1742,7 +1710,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str13", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str13", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1757,11 +1725,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str14: + extract_sfmt_str14: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str14.f +#define FLD(f) abuf->fields.sfmt_str14.f SI f_disp10; UINT f_Ri; @@ -1771,7 +1739,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_disp10) = f_disp10; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str14", "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str14", "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1785,11 +1753,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str14h: + extract_sfmt_str14h: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str14h.f +#define FLD(f) abuf->fields.sfmt_str14h.f SI f_disp9; UINT f_Ri; @@ -1799,7 +1767,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_disp9) = f_disp9; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str14h", "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str14h", "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1813,11 +1781,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str14b: + extract_sfmt_str14b: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str14b.f +#define FLD(f) abuf->fields.sfmt_str14b.f INT f_disp8; UINT f_Ri; @@ -1827,7 +1795,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_disp8) = f_disp8; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str14b", "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str14b", "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1841,11 +1809,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str15: + extract_sfmt_str15: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str15.f +#define FLD(f) abuf->fields.sfmt_str15.f USI f_udisp6; UINT f_Ri; @@ -1855,7 +1823,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_udisp6) = f_udisp6; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15", "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15", "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1869,18 +1837,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str15gr: + extract_sfmt_str15gr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str15gr.f +#define FLD(f) abuf->fields.sfmt_str15gr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15gr", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15gr", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1895,18 +1863,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str15dr: + extract_sfmt_str15dr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str15dr.f +#define FLD(f) abuf->fields.sfmt_ldr15dr.f UINT f_Rs2; f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (f_Rs2) = f_Rs2; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1920,15 +1888,15 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_str15ps: + extract_sfmt_str15ps: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_str15ps.f +#define FLD(f) abuf->fields.sfmt_addsp.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15ps", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15ps", (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1942,11 +1910,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_mov: + extract_sfmt_mov: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_mov.f +#define FLD(f) abuf->fields.sfmt_ldr13.f UINT f_Rj; UINT f_Ri; @@ -1956,7 +1924,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Rj) = & CPU (h_gr)[f_Rj]; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mov", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1970,11 +1938,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_movdr: + extract_sfmt_movdr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_movdr.f +#define FLD(f) abuf->fields.sfmt_movdr.f UINT f_Rs1; UINT f_Ri; @@ -1984,7 +1952,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_Rs1) = f_Rs1; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movdr", "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movdr", "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -1997,18 +1965,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_movps: + extract_sfmt_movps: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_movps.f +#define FLD(f) abuf->fields.sfmt_movdr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movps", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movps", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2021,11 +1989,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_mov2dr: + extract_sfmt_mov2dr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_mov2dr.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Rs1; UINT f_Ri; @@ -2035,7 +2003,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (f_Rs1) = f_Rs1; FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mov2dr", "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov2dr", "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2048,18 +2016,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_mov2ps: + extract_sfmt_mov2ps: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_mov2ps.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mov2ps", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov2ps", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2072,19 +2040,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_jmp: + extract_sfmt_jmp: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_jmp.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_jmp", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jmp", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2097,19 +2064,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_callr: + extract_sfmt_callr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_callr.f +#define FLD(f) abuf->fields.sfmt_mov2dr.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_callr", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_callr", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2122,19 +2088,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_call: + extract_sfmt_call: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_call.f +#define FLD(f) abuf->fields.sfmt_call.f SI f_rel12; f_rel12 = ((((EXTRACT_MSB0_INT (insn, 16, 5, 11)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label12) = f_rel12; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_call", "label12 0x%x", 'x', f_rel12, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_call", "label12 0x%x", 'x', f_rel12, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2146,16 +2111,15 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ret: + extract_sfmt_ret: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_ret.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ret", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret", (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2167,19 +2131,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_int: + extract_sfmt_int: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_int.f +#define FLD(f) abuf->fields.sfmt_int.f UINT f_u8; f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_u8) = f_u8; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_int", "f_u8 0x%x", 'x', f_u8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_int", "f_u8 0x%x", 'x', f_u8, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2191,16 +2154,15 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_inte: + extract_sfmt_inte: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_inte.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_inte", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_inte", (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2212,16 +2174,15 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_reti: + extract_sfmt_reti: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_reti.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_reti", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_reti", (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2233,19 +2194,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_brad: + extract_sfmt_brad: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_brad.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_brad", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_brad", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2257,33 +2217,32 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bnod: + extract_sfmt_bnod: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_bnod.f +#define FLD(f) abuf->fields.fmt_empty.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bnod", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bnod", (char *) 0)); #undef FLD return idesc; } - extract_fmt_beqd: + extract_sfmt_beqd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_beqd.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_beqd", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqd", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2295,19 +2254,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bcd: + extract_sfmt_bcd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_bcd.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bcd", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcd", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2319,19 +2277,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bnd: + extract_sfmt_bnd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_bnd.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bnd", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bnd", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2343,19 +2300,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bvd: + extract_sfmt_bvd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_bvd.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bvd", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bvd", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2367,19 +2323,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bltd: + extract_sfmt_bltd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_bltd.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bltd", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bltd", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2391,19 +2346,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_bled: + extract_sfmt_bled: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_bled.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bled", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bled", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2415,19 +2369,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_blsd: + extract_sfmt_blsd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.cti.fields.fmt_blsd.f +#define FLD(f) abuf->fields.sfmt_brad.f SI f_rel9; f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); /* Record the fields for the semantic handler. */ FLD (i_label9) = f_rel9; - SEM_BRANCH_INIT_EXTRACT (abuf); - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_blsd", "label9 0x%x", 'x', f_rel9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_blsd", "label9 0x%x", 'x', f_rel9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2439,18 +2392,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr13: + extract_sfmt_dmovr13: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr13.f +#define FLD(f) abuf->fields.sfmt_dmovr13pi.f USI f_dir10; f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_dir10) = f_dir10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2463,18 +2416,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr13h: + extract_sfmt_dmovr13h: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr13h.f +#define FLD(f) abuf->fields.sfmt_dmovr13pih.f USI f_dir9; f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); /* Record the fields for the semantic handler. */ FLD (f_dir9) = f_dir9; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2487,18 +2440,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr13b: + extract_sfmt_dmovr13b: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr13b.f +#define FLD(f) abuf->fields.sfmt_dmovr13pib.f UINT f_dir8; f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_dir8) = f_dir8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2511,18 +2464,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr13pi: + extract_sfmt_dmovr13pi: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr13pi.f +#define FLD(f) abuf->fields.sfmt_dmovr13pi.f USI f_dir10; f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_dir10) = f_dir10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2536,18 +2489,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr13pih: + extract_sfmt_dmovr13pih: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr13pih.f +#define FLD(f) abuf->fields.sfmt_dmovr13pih.f USI f_dir9; f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); /* Record the fields for the semantic handler. */ FLD (f_dir9) = f_dir9; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2561,18 +2514,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr13pib: + extract_sfmt_dmovr13pib: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr13pib.f +#define FLD(f) abuf->fields.sfmt_dmovr13pib.f UINT f_dir8; f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_dir8) = f_dir8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2586,18 +2539,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmovr15pi: + extract_sfmt_dmovr15pi: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmovr15pi.f +#define FLD(f) abuf->fields.sfmt_dmovr15pi.f USI f_dir10; f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_dir10) = f_dir10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr15pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr15pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2611,18 +2564,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r13: + extract_sfmt_dmov2r13: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r13.f +#define FLD(f) abuf->fields.sfmt_dmovr13pi.f USI f_dir10; f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_dir10) = f_dir10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2635,18 +2588,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r13h: + extract_sfmt_dmov2r13h: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r13h.f +#define FLD(f) abuf->fields.sfmt_dmovr13pih.f USI f_dir9; f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); /* Record the fields for the semantic handler. */ FLD (f_dir9) = f_dir9; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2659,18 +2612,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r13b: + extract_sfmt_dmov2r13b: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r13b.f +#define FLD(f) abuf->fields.sfmt_dmovr13pib.f UINT f_dir8; f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_dir8) = f_dir8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2683,18 +2636,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r13pi: + extract_sfmt_dmov2r13pi: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r13pi.f +#define FLD(f) abuf->fields.sfmt_dmovr13pi.f USI f_dir10; f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_dir10) = f_dir10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2708,18 +2661,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r13pih: + extract_sfmt_dmov2r13pih: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r13pih.f +#define FLD(f) abuf->fields.sfmt_dmovr13pih.f USI f_dir9; f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); /* Record the fields for the semantic handler. */ FLD (f_dir9) = f_dir9; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2733,18 +2686,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r13pib: + extract_sfmt_dmov2r13pib: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r13pib.f +#define FLD(f) abuf->fields.sfmt_dmovr13pib.f UINT f_dir8; f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_dir8) = f_dir8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2758,18 +2711,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_dmov2r15pd: + extract_sfmt_dmov2r15pd: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_dmov2r15pd.f +#define FLD(f) abuf->fields.sfmt_dmovr15pi.f USI f_dir10; f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_dir10) = f_dir10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r15pd", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r15pd", "f_dir10 0x%x", 'x', f_dir10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2783,18 +2736,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldres: + extract_sfmt_ldres: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldres.f +#define FLD(f) abuf->fields.sfmt_add2.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldres", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldres", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2808,69 +2761,69 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_copop: + extract_sfmt_copop: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_copop.f +#define FLD(f) abuf->fields.fmt_empty.f /* Contents of trailing part of insn. */ UINT word_1; word_1 = GETIMEMUHI (current_cpu, pc + 2); /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_copop", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_copop", (char *) 0)); #undef FLD return idesc; } - extract_fmt_andccr: + extract_sfmt_andccr: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_andccr.f +#define FLD(f) abuf->fields.sfmt_int.f UINT f_u8; f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_u8) = f_u8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andccr", "f_u8 0x%x", 'x', f_u8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andccr", "f_u8 0x%x", 'x', f_u8, (char *) 0)); #undef FLD return idesc; } - extract_fmt_stilm: + extract_sfmt_stilm: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_stilm.f +#define FLD(f) abuf->fields.sfmt_int.f UINT f_u8; f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_u8) = f_u8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stilm", "f_u8 0x%x", 'x', f_u8, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stilm", "f_u8 0x%x", 'x', f_u8, (char *) 0)); #undef FLD return idesc; } - extract_fmt_addsp: + extract_sfmt_addsp: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_addsp.f +#define FLD(f) abuf->fields.sfmt_addsp.f SI f_s10; f_s10 = ((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_s10) = f_s10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addsp", "f_s10 0x%x", 'x', f_s10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addsp", "f_s10 0x%x", 'x', f_s10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2884,18 +2837,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_extsb: + extract_sfmt_extsb: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_extsb.f +#define FLD(f) abuf->fields.sfmt_add2.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extsb", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extsb", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2909,18 +2862,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_extub: + extract_sfmt_extub: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_extub.f +#define FLD(f) abuf->fields.sfmt_add2.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extub", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extub", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2934,18 +2887,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_extsh: + extract_sfmt_extsh: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_extsh.f +#define FLD(f) abuf->fields.sfmt_add2.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extsh", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extsh", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2959,18 +2912,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_extuh: + extract_sfmt_extuh: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_extuh.f +#define FLD(f) abuf->fields.sfmt_add2.f UINT f_Ri; f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extuh", "Ri 0x%x", 'x', f_Ri, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extuh", "Ri 0x%x", 'x', f_Ri, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -2984,18 +2937,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldm0: + extract_sfmt_ldm0: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldm0.f +#define FLD(f) abuf->fields.sfmt_ldm0.f UINT f_reglist_low_ld; f_reglist_low_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_reglist_low_ld) = f_reglist_low_ld; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldm0", "f_reglist_low_ld 0x%x", 'x', f_reglist_low_ld, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldm0", "f_reglist_low_ld 0x%x", 'x', f_reglist_low_ld, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -3017,18 +2970,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_ldm1: + extract_sfmt_ldm1: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_ldm1.f +#define FLD(f) abuf->fields.sfmt_ldm1.f UINT f_reglist_hi_ld; f_reglist_hi_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_reglist_hi_ld) = f_reglist_hi_ld; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldm1", "f_reglist_hi_ld 0x%x", 'x', f_reglist_hi_ld, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldm1", "f_reglist_hi_ld 0x%x", 'x', f_reglist_hi_ld, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -3049,18 +3002,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_stm0: + extract_sfmt_stm0: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_stm0.f +#define FLD(f) abuf->fields.sfmt_stm0.f UINT f_reglist_low_st; f_reglist_low_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_reglist_low_st) = f_reglist_low_st; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stm0", "f_reglist_low_st 0x%x", 'x', f_reglist_low_st, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stm0", "f_reglist_low_st 0x%x", 'x', f_reglist_low_st, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -3082,18 +3035,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_stm1: + extract_sfmt_stm1: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_stm1.f +#define FLD(f) abuf->fields.sfmt_stm1.f UINT f_reglist_hi_st; f_reglist_hi_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8); /* Record the fields for the semantic handler. */ FLD (f_reglist_hi_st) = f_reglist_hi_st; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stm1", "f_reglist_hi_st 0x%x", 'x', f_reglist_hi_st, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stm1", "f_reglist_hi_st 0x%x", 'x', f_reglist_hi_st, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -3114,18 +3067,18 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_enter: + extract_sfmt_enter: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_enter.f +#define FLD(f) abuf->fields.sfmt_enter.f USI f_u10; f_u10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); /* Record the fields for the semantic handler. */ FLD (f_u10) = f_u10; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_enter", "f_u10 0x%x", 'x', f_u10, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_enter", "f_u10 0x%x", 'x', f_u10, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -3141,15 +3094,15 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_leave: + extract_sfmt_leave: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_leave.f +#define FLD(f) abuf->fields.sfmt_enter.f /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_leave", (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_leave", (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ @@ -3165,11 +3118,11 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_fmt_xchb: + extract_sfmt_xchb: { const IDESC *idesc = &fr30bf_insn_data[itype]; CGEN_INSN_INT insn = base_insn; -#define FLD(f) abuf->fields.fmt_xchb.f +#define FLD(f) abuf->fields.sfmt_add.f UINT f_Rj; UINT f_Ri; @@ -3179,7 +3132,7 @@ fr30bf_decode (SIM_CPU *current_cpu, IADDR pc, /* Record the fields for the semantic handler. */ FLD (i_Ri) = & CPU (h_gr)[f_Ri]; FLD (i_Rj) = & CPU (h_gr)[f_Rj]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_xchb", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); + TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_xchb", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0)); #if WITH_PROFILE_MODEL_P /* Record the fields for profiling. */ |