diff options
author | mooglyguy <therealmogminer@gmail.com> | 2017-11-04 14:01:44 +0100 |
---|---|---|
committer | mooglyguy <therealmogminer@gmail.com> | 2017-11-04 14:02:05 +0100 |
commit | f11cbaac4d41b6a611fbe0cd5e975e176a7b1a14 (patch) | |
tree | ad736cf7f54fa38291122641965403af8731d5b3 | |
parent | 239d44f6c23dda85674b59832a98d99a470b5c09 (diff) |
E132XS/Hyperstone optimization: Remove unnecessary full reinit of regs_decode struct. (nw)
-rw-r--r-- | src/devices/cpu/e132xs/e132xs.cpp | 421 | ||||
-rw-r--r-- | src/devices/cpu/e132xs/e132xs.h | 246 | ||||
-rw-r--r-- | src/devices/cpu/e132xs/e132xsop.hxx | 531 |
3 files changed, 590 insertions, 608 deletions
diff --git a/src/devices/cpu/e132xs/e132xs.cpp b/src/devices/cpu/e132xs/e132xs.cpp index 246093ba309..c5c8e7388a0 100644 --- a/src/devices/cpu/e132xs/e132xs.cpp +++ b/src/devices/cpu/e132xs/e132xs.cpp @@ -259,25 +259,25 @@ /* Internal registers */ -#define SREG (decode)->src_value -#define SREGF (decode)->next_src_value -#define DREG (decode)->dst_value -#define DREGF (decode)->next_dst_value -#define EXTRA_U (decode)->extra.u -#define EXTRA_S (decode)->extra.s - -#define SET_SREG( _data_ ) ((decode)->src_is_local ? set_local_register((decode)->src, (uint32_t)_data_) : set_global_register((decode)->src, (uint32_t)_data_)) -#define SET_SREGF( _data_ ) ((decode)->src_is_local ? set_local_register((decode)->src + 1, (uint32_t)_data_) : set_global_register((decode)->src + 1, (uint32_t)_data_)) -#define SET_DREG( _data_ ) ((decode)->dst_is_local ? set_local_register((decode)->dst, (uint32_t)_data_) : set_global_register((decode)->dst, (uint32_t)_data_)) -#define SET_DREGF( _data_ ) ((decode)->dst_is_local ? set_local_register((decode)->dst + 1, (uint32_t)_data_) : set_global_register((decode)->dst + 1, (uint32_t)_data_)) - -#define SRC_IS_PC (!(decode)->src_is_local && (decode)->src == PC_REGISTER) -#define DST_IS_PC (!(decode)->dst_is_local && (decode)->dst == PC_REGISTER) -#define SRC_IS_SR (!(decode)->src_is_local && (decode)->src == SR_REGISTER) -#define DST_IS_SR (!(decode)->dst_is_local && (decode)->dst == SR_REGISTER) -#define SAME_SRC_DST (decode)->same_src_dst -#define SAME_SRC_DSTF (decode)->same_src_dstf -#define SAME_SRCF_DST (decode)->same_srcf_dst +#define SREG decode.src_value +#define SREGF decode.next_src_value +#define DREG decode.dst_value +#define DREGF decode.next_dst_value +#define EXTRA_U decode.extra.u +#define EXTRA_S decode.extra.s + +#define SET_SREG( _data_ ) (decode.src_is_local ? set_local_register(decode.src, (uint32_t)_data_) : set_global_register(decode.src, (uint32_t)_data_)) +#define SET_SREGF( _data_ ) (decode.src_is_local ? set_local_register(decode.src + 1, (uint32_t)_data_) : set_global_register(decode.src + 1, (uint32_t)_data_)) +#define SET_DREG( _data_ ) (decode.dst_is_local ? set_local_register(decode.dst, (uint32_t)_data_) : set_global_register(decode.dst, (uint32_t)_data_)) +#define SET_DREGF( _data_ ) (decode.dst_is_local ? set_local_register(decode.dst + 1, (uint32_t)_data_) : set_global_register(decode.dst + 1, (uint32_t)_data_)) + +#define SRC_IS_PC (!decode.src_is_local && decode.src == PC_REGISTER) +#define DST_IS_PC (!decode.dst_is_local && decode.dst == PC_REGISTER) +#define SRC_IS_SR (!decode.src_is_local && decode.src == SR_REGISTER) +#define DST_IS_SR (!decode.dst_is_local && decode.dst == SR_REGISTER) +#define SAME_SRC_DST decode.same_src_dst +#define SAME_SRC_DSTF decode.same_src_dstf +#define SAME_SRCF_DST decode.same_srcf_dst /* Memory access */ @@ -900,38 +900,42 @@ do { \ if(local) \ { \ - uint8_t code = (decode)->src; \ - (decode)->src_is_local = 1; \ - code = ((decode)->src + GET_FP) % 64; /* registers offset by frame pointer */\ + uint8_t code = decode.src; \ + decode.src_is_local = 1; \ + code = (decode.src + GET_FP) % 64; /* registers offset by frame pointer */ \ SREG = m_local_regs[code]; \ - code = ((decode)->src + 1 + GET_FP) % 64; \ + code = (decode.src + 1 + GET_FP) % 64; \ SREGF = m_local_regs[code]; \ } \ else \ { \ - (decode)->src_is_local = 0; \ + decode.src_is_local = 0; \ \ if (!hflag) \ { \ - SREG = get_global_register((decode)->src); \ + SREG = get_global_register(decode.src); \ \ /* bound safe */ \ - if ((decode)->src != 15) \ - SREGF = get_global_register((decode)->src + 1); \ + if (decode.src != 15) \ + SREGF = get_global_register(decode.src + 1); \ + else \ + SREGF = 0; \ } \ else \ { \ - (decode)->src += 16; \ + decode.src += 16; \ \ - SREG = get_global_register((decode)->src); \ - if ((WRITE_ONLY_REGMASK >> (decode)->src) & 1) \ + SREG = get_global_register(decode.src); \ + if ((WRITE_ONLY_REGMASK >> decode.src) & 1) \ SREG = 0; /* write-only registers */ \ - else if ((decode)->src == ISR_REGISTER) \ + else if (decode.src == ISR_REGISTER) \ DEBUG_PRINTF(("read src ISR. PC = %08X\n",PPC)); \ \ /* bound safe */ \ - if ((decode)->src != 31) \ - SREGF = get_global_register((decode)->src + 1); \ + if (decode.src != 31) \ + SREGF = get_global_register(decode.src + 1); \ + else \ + SREGF = 0; \ } \ } \ } while (0) @@ -941,36 +945,36 @@ do { \ if(local) \ { \ - uint8_t code = (decode)->dst; \ - (decode)->dst_is_local = 1; \ - code = ((decode)->dst + GET_FP) % 64; /* registers offset by frame pointer */\ + uint8_t code = decode.dst; \ + decode.dst_is_local = 1; \ + code = (decode.dst + GET_FP) % 64; /* registers offset by frame pointer */ \ DREG = m_local_regs[code]; \ - code = ((decode)->dst + 1 + GET_FP) % 64; \ + code = (decode.dst + 1 + GET_FP) % 64; \ DREGF = m_local_regs[code]; \ } \ else \ { \ - (decode)->dst_is_local = 0; \ + decode.dst_is_local = 0; \ \ if (!hflag) \ { \ - DREG = get_global_register((decode)->dst); \ + DREG = get_global_register(decode.dst); \ \ /* bound safe */ \ - if ((decode)->dst != 15) \ - DREGF = get_global_register((decode)->dst + 1); \ + if (decode.dst != 15) \ + DREGF = get_global_register(decode.dst + 1); \ } \ else \ { \ - (decode)->dst += 16; \ + decode.dst += 16; \ \ - DREG = get_global_register((decode)->dst); \ - if( (decode)->dst == ISR_REGISTER ) \ + DREG = get_global_register(decode.dst); \ + if( decode.dst == ISR_REGISTER ) \ DEBUG_PRINTF(("read dst ISR. PC = %08X\n",PPC)); \ \ /* bound safe */ \ - if ((decode)->dst != 31) \ - DREGF = get_global_register((decode)->dst + 1); \ + if (decode.dst != 31) \ + DREGF = get_global_register(decode.dst + 1); \ } \ } \ } while (0) @@ -978,57 +982,54 @@ do #define decode_RR(decode, dlocal, slocal) \ do \ { \ - (decode)->src = SRC_CODE; \ - (decode)->dst = DST_CODE; \ + decode.src = SRC_CODE; \ + decode.dst = DST_CODE; \ decode_source(decode, slocal, 0); \ decode_dest(decode, dlocal, 0); \ \ - if( (slocal) == (dlocal) && SRC_CODE == DST_CODE ) \ - SAME_SRC_DST = 1; \ + SAME_SRC_DST = ((slocal) == (dlocal) && SRC_CODE == DST_CODE); \ \ - if( (slocal) == LOCAL && (dlocal) == LOCAL ) \ + if ((slocal) && (dlocal)) \ { \ - if( SRC_CODE == ((DST_CODE + 1) % 64) ) \ - SAME_SRC_DSTF = 1; \ - \ - if( ((SRC_CODE + 1) % 64) == DST_CODE ) \ - SAME_SRCF_DST = 1; \ + SAME_SRC_DSTF = (SRC_CODE == ((DST_CODE + 1) % 64)); \ + SAME_SRCF_DST = (((SRC_CODE + 1) % 64) == DST_CODE); \ } \ - else if( (slocal) == 0 && (dlocal) == 0 ) \ + else if ((slocal) == 0 && (dlocal) == 0) \ { \ - if( SRC_CODE == (DST_CODE + 1) ) \ - SAME_SRC_DSTF = 1; \ - \ - if( (SRC_CODE + 1) == DST_CODE ) \ - SAME_SRCF_DST = 1; \ + SAME_SRC_DSTF = (SRC_CODE == (DST_CODE + 1)); \ + SAME_SRCF_DST = ((SRC_CODE + 1) == DST_CODE); \ } \ + else \ + { \ + SAME_SRC_DSTF = 0; \ + SAME_SRCF_DST = 0; \ + } \ } while (0) #define decode_LL(decode) \ do \ { \ - (decode)->src = SRC_CODE; \ - (decode)->dst = DST_CODE; \ + decode.src = SRC_CODE; \ + decode.dst = DST_CODE; \ decode_source(decode, LOCAL, 0); \ decode_dest(decode, LOCAL, 0); \ \ - if( SRC_CODE == DST_CODE ) \ - SAME_SRC_DST = 1; \ - \ - if( SRC_CODE == ((DST_CODE + 1) % 64) ) \ - SAME_SRC_DSTF = 1; \ + SAME_SRC_DST = (SRC_CODE == DST_CODE); \ + SAME_SRC_DSTF = (SRC_CODE == ((DST_CODE + 1) % 64)); \ + SAME_SRCF_DST = 0; \ } while (0) #define decode_LR(decode, slocal) \ do \ { \ - (decode)->src = SRC_CODE; \ - (decode)->dst = DST_CODE; \ + decode.src = SRC_CODE; \ + decode.dst = DST_CODE; \ decode_source(decode, slocal, 0); \ decode_dest(decode, LOCAL, 0); \ \ - if( ((SRC_CODE + 1) % 64) == DST_CODE && slocal == LOCAL ) \ - SAME_SRCF_DST = 1; \ + SAME_SRC_DST = 0; \ + SAME_SRC_DSTF = 0; \ + SAME_SRCF_DST = (((SRC_CODE + 1) % 64) == DST_CODE && slocal == LOCAL); \ } while (0) #define check_delay_PC() \ @@ -1141,7 +1142,7 @@ do PC += 2; \ m_instruction_length = (2<<19); \ \ - (decode)->sub_type = DD(next_1); \ + decode.sub_type = DD(next_1); \ \ if( E_BIT(next_1) ) \ { \ @@ -1176,7 +1177,7 @@ do PC += 2; \ m_instruction_length = (2<<19); \ \ - (decode)->sub_type = X_CODE(next); \ + decode.sub_type = X_CODE(next); \ \ if( E_BIT(next) ) \ { \ @@ -1225,8 +1226,8 @@ do do \ { \ check_delay_PC(); \ - (decode)->src = SRC_CODE; \ - (decode)->dst = DST_CODE; \ + decode.src = SRC_CODE; \ + decode.dst = DST_CODE; \ decode_source(decode, slocal, GET_H); \ decode_dest(decode, dlocal, GET_H); \ \ @@ -1240,7 +1241,7 @@ do { \ decode_immediate(decode, nbit); \ check_delay_PC(); \ - (decode)->dst = DST_CODE; \ + decode.dst = DST_CODE; \ decode_dest(decode, dlocal, 0); \ } while (0) @@ -1248,7 +1249,7 @@ do do \ { \ check_delay_PC(); \ - (decode)->dst = DST_CODE; \ + decode.dst = DST_CODE; \ decode_dest(decode, dlocal, 0); \ } while (0) @@ -1257,7 +1258,7 @@ do { \ decode_immediate(decode, nbit); \ check_delay_PC(); \ - (decode)->dst = DST_CODE; \ + decode.dst = DST_CODE; \ decode_dest(decode, dlocal, GET_H); \ } while (0) @@ -1265,7 +1266,7 @@ do do \ { \ check_delay_PC(); \ - (decode)->dst = DST_CODE; \ + decode.dst = DST_CODE; \ decode_dest(decode, LOCAL, 0); \ } while (0) @@ -1320,7 +1321,7 @@ do } while (0) -void hyperstone_device::execute_br(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::execute_br(regs_decode &decode) { PPC = PC; PC += EXTRA_S; @@ -1329,7 +1330,7 @@ void hyperstone_device::execute_br(struct hyperstone_device::regs_decode *decode m_icount -= m_clock_cycles_2; } -void hyperstone_device::execute_dbr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::execute_dbr(regs_decode &decode) { m_delay.delay_cmd = DELAY_EXECUTE; m_delay.delay_pc = PC + EXTRA_S; @@ -1423,7 +1424,7 @@ void hyperstone_device::execute_exception(uint32_t addr) m_icount -= m_clock_cycles_2; } -void hyperstone_device::execute_software(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::execute_software(regs_decode &decode) { uint8_t reg; uint32_t oldSR; @@ -1438,7 +1439,7 @@ void hyperstone_device::execute_software(struct hyperstone_device::regs_decode * //since it's sure the register is in the register part of the stack, //set the stack address to a value above the highest address //that can be set by a following frame instruction - stack_of_dst = (SP & ~0xff) + 64*4 + (((GET_FP + decode->dst) % 64) * 4); //converted to 32bits offset + stack_of_dst = (SP & ~0xff) + 64*4 + (((GET_FP + decode.dst) % 64) * 4); //converted to 32bits offset oldSR = SR; @@ -1960,7 +1961,7 @@ offs_t hyperstone_device::disasm_disassemble(std::ostream &stream, offs_t pc, co /* Opcodes */ -void hyperstone_device::hyperstone_chk(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_chk(regs_decode &decode) { uint32_t addr = get_trap_addr(TRAPNO_RANGE_ERROR); @@ -1986,7 +1987,7 @@ void hyperstone_device::hyperstone_chk(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_movd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_movd(regs_decode &decode) { if( DST_IS_PC ) // Rd denotes PC { @@ -2065,7 +2066,7 @@ void hyperstone_device::hyperstone_movd(struct hyperstone_device::regs_decode *d } } -void hyperstone_device::hyperstone_divu(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_divu(regs_decode &decode) { if( SAME_SRC_DST || SAME_SRC_DSTF ) { @@ -2114,7 +2115,7 @@ void hyperstone_device::hyperstone_divu(struct hyperstone_device::regs_decode *d m_icount -= 36 << m_clck_scale; } -void hyperstone_device::hyperstone_divs(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_divs(regs_decode &decode) { if( SAME_SRC_DST || SAME_SRC_DSTF ) { @@ -2163,7 +2164,7 @@ void hyperstone_device::hyperstone_divs(struct hyperstone_device::regs_decode *d m_icount -= 36 << m_clck_scale; } -void hyperstone_device::hyperstone_xm(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_xm(regs_decode &decode) { if( SRC_IS_SR || DST_IS_SR || DST_IS_PC ) { @@ -2171,7 +2172,7 @@ void hyperstone_device::hyperstone_xm(struct hyperstone_device::regs_decode *dec } else { - switch( decode->sub_type ) // x_code + switch( decode.sub_type ) // x_code { case 0: case 1: @@ -2189,7 +2190,7 @@ void hyperstone_device::hyperstone_xm(struct hyperstone_device::regs_decode *dec } else { - SREG <<= decode->sub_type; + SREG <<= decode.sub_type; } break; @@ -2198,8 +2199,8 @@ void hyperstone_device::hyperstone_xm(struct hyperstone_device::regs_decode *dec case 5: case 6: case 7: - decode->sub_type -= 4; - SREG <<= decode->sub_type; + decode.sub_type -= 4; + SREG <<= decode.sub_type; break; } @@ -2210,7 +2211,7 @@ void hyperstone_device::hyperstone_xm(struct hyperstone_device::regs_decode *dec m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_mask(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_mask(regs_decode &decode) { DREG = SREG & EXTRA_U; @@ -2220,7 +2221,7 @@ void hyperstone_device::hyperstone_mask(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_sum(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sum(regs_decode &decode) { uint64_t tmp; @@ -2244,7 +2245,7 @@ void hyperstone_device::hyperstone_sum(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_sums(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sums(regs_decode &decode) { int32_t res; int64_t tmp; @@ -2275,7 +2276,7 @@ void hyperstone_device::hyperstone_sums(struct hyperstone_device::regs_decode *d } } -void hyperstone_device::hyperstone_cmp(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_cmp(regs_decode &decode) { uint64_t tmp; @@ -2303,9 +2304,9 @@ void hyperstone_device::hyperstone_cmp(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_mov(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_mov(regs_decode &decode) { - if( !GET_S && decode->dst >= 16 ) + if( !GET_S && decode.dst >= 16 ) { uint32_t addr = get_trap_addr(TRAPNO_PRIVILEGE_ERROR); execute_exception(addr); @@ -2323,7 +2324,7 @@ void hyperstone_device::hyperstone_mov(struct hyperstone_device::regs_decode *de } -void hyperstone_device::hyperstone_add(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_add(regs_decode &decode) { uint64_t tmp; @@ -2346,7 +2347,7 @@ void hyperstone_device::hyperstone_add(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_adds(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_adds(regs_decode &decode) { int32_t res; int64_t tmp; @@ -2377,14 +2378,14 @@ void hyperstone_device::hyperstone_adds(struct hyperstone_device::regs_decode *d } } -void hyperstone_device::hyperstone_cmpb(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_cmpb(regs_decode &decode) { SET_Z( (DREG & SREG) == 0 ? 1 : 0 ); m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_andn(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_andn(regs_decode &decode) { DREG = DREG & ~SREG; @@ -2394,7 +2395,7 @@ void hyperstone_device::hyperstone_andn(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_or(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_or(regs_decode &decode) { DREG = DREG | SREG; @@ -2404,7 +2405,7 @@ void hyperstone_device::hyperstone_or(struct hyperstone_device::regs_decode *dec m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_xor(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_xor(regs_decode &decode) { DREG = DREG ^ SREG; @@ -2414,7 +2415,7 @@ void hyperstone_device::hyperstone_xor(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_subc(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_subc(regs_decode &decode) { uint64_t tmp; @@ -2450,7 +2451,7 @@ void hyperstone_device::hyperstone_subc(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_not(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_not(regs_decode &decode) { SET_DREG(~SREG); SET_Z( ~SREG == 0 ? 1 : 0 ); @@ -2458,7 +2459,7 @@ void hyperstone_device::hyperstone_not(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_sub(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sub(regs_decode &decode) { uint64_t tmp; @@ -2481,7 +2482,7 @@ void hyperstone_device::hyperstone_sub(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_subs(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_subs(regs_decode &decode) { int32_t res; int64_t tmp; @@ -2513,7 +2514,7 @@ void hyperstone_device::hyperstone_subs(struct hyperstone_device::regs_decode *d } } -void hyperstone_device::hyperstone_addc(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_addc(regs_decode &decode) { uint64_t tmp; @@ -2554,7 +2555,7 @@ void hyperstone_device::hyperstone_addc(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_and(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_and(regs_decode &decode) { DREG = DREG & SREG; @@ -2564,7 +2565,7 @@ void hyperstone_device::hyperstone_and(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_neg(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_neg(regs_decode &decode) { uint64_t tmp; @@ -2585,7 +2586,7 @@ void hyperstone_device::hyperstone_neg(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_negs(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_negs(regs_decode &decode) { int32_t res; int64_t tmp; @@ -2617,7 +2618,7 @@ void hyperstone_device::hyperstone_negs(struct hyperstone_device::regs_decode *d } } -void hyperstone_device::hyperstone_cmpi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_cmpi(regs_decode &decode) { uint64_t tmp; @@ -2642,9 +2643,9 @@ void hyperstone_device::hyperstone_cmpi(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_movi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_movi(regs_decode &decode) { - if( !GET_S && decode->dst >= 16 ) + if( !GET_S && decode.dst >= 16 ) { uint32_t addr = get_trap_addr(TRAPNO_PRIVILEGE_ERROR); execute_exception(addr); @@ -2665,7 +2666,7 @@ void hyperstone_device::hyperstone_movi(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_addi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_addi(regs_decode &decode) { uint32_t imm; uint64_t tmp; @@ -2692,7 +2693,7 @@ void hyperstone_device::hyperstone_addi(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_addsi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_addsi(regs_decode &decode) { int32_t imm, res; int64_t tmp; @@ -2725,7 +2726,7 @@ void hyperstone_device::hyperstone_addsi(struct hyperstone_device::regs_decode * } } -void hyperstone_device::hyperstone_cmpbi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_cmpbi(regs_decode &decode) { uint32_t imm; @@ -2754,7 +2755,7 @@ void hyperstone_device::hyperstone_cmpbi(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_andni(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_andni(regs_decode &decode) { uint32_t imm; @@ -2771,7 +2772,7 @@ void hyperstone_device::hyperstone_andni(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_ori(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_ori(regs_decode &decode) { DREG = DREG | EXTRA_U; @@ -2781,7 +2782,7 @@ void hyperstone_device::hyperstone_ori(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_xori(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_xori(regs_decode &decode) { DREG = DREG ^ EXTRA_U; @@ -2791,7 +2792,7 @@ void hyperstone_device::hyperstone_xori(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_shrdi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shrdi(regs_decode &decode) { uint32_t low_order, high_order; uint64_t val; @@ -2819,7 +2820,7 @@ void hyperstone_device::hyperstone_shrdi(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_shrd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shrd(regs_decode &decode) { uint32_t low_order, high_order; uint64_t val; @@ -2857,7 +2858,7 @@ void hyperstone_device::hyperstone_shrd(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_shr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shr(regs_decode &decode) { uint32_t ret; uint8_t n; @@ -2879,7 +2880,7 @@ void hyperstone_device::hyperstone_shr(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_sardi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sardi(regs_decode &decode) { uint32_t low_order, high_order; uint64_t val; @@ -2919,7 +2920,7 @@ void hyperstone_device::hyperstone_sardi(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_sard(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sard(regs_decode &decode) { uint32_t low_order, high_order; uint64_t val; @@ -2969,7 +2970,7 @@ void hyperstone_device::hyperstone_sard(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_sar(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sar(regs_decode &decode) { uint32_t ret; uint8_t n, sign_bit; @@ -3001,7 +3002,7 @@ void hyperstone_device::hyperstone_sar(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_shldi(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shldi(regs_decode &decode) { uint32_t low_order, high_order, tmp; uint64_t val, mask; @@ -3034,7 +3035,7 @@ void hyperstone_device::hyperstone_shldi(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_shld(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shld(regs_decode &decode) { uint32_t low_order, high_order, tmp, n; uint64_t val, mask; @@ -3078,7 +3079,7 @@ void hyperstone_device::hyperstone_shld(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_shl(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shl(regs_decode &decode) { uint32_t base, ret, n; uint64_t mask; @@ -3102,12 +3103,12 @@ void hyperstone_device::hyperstone_shl(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::reserved(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::reserved(regs_decode &decode) { DEBUG_PRINTF(("Executed Reserved opcode. PC = %08X OP = %04X\n", PC, OP)); } -void hyperstone_device::hyperstone_testlz(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_testlz(regs_decode &decode) { uint8_t zeros = 0; uint32_t mask; @@ -3128,7 +3129,7 @@ void hyperstone_device::hyperstone_testlz(struct hyperstone_device::regs_decode m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_rol(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_rol(regs_decode &decode) { uint32_t val, base; uint8_t n; @@ -3165,13 +3166,13 @@ void hyperstone_device::hyperstone_rol(struct hyperstone_device::regs_decode *de } //TODO: add trap error -void hyperstone_device::hyperstone_ldxx1(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_ldxx1(regs_decode &decode) { uint32_t load; if( DST_IS_SR ) { - switch( decode->sub_type ) + switch( decode.sub_type ) { case 0: // LDBS.A @@ -3245,7 +3246,7 @@ void hyperstone_device::hyperstone_ldxx1(struct hyperstone_device::regs_decode * } else { - switch( decode->sub_type ) + switch( decode.sub_type ) { case 0: // LDBS.D @@ -3321,7 +3322,7 @@ void hyperstone_device::hyperstone_ldxx1(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_ldxx2(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_ldxx2(regs_decode &decode) { uint32_t load; @@ -3331,7 +3332,7 @@ void hyperstone_device::hyperstone_ldxx2(struct hyperstone_device::regs_decode * } else { - switch( decode->sub_type ) + switch( decode.sub_type ) { case 0: // LDBS.N @@ -3442,14 +3443,14 @@ void hyperstone_device::hyperstone_ldxx2(struct hyperstone_device::regs_decode * } //TODO: add trap error -void hyperstone_device::hyperstone_stxx1(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_stxx1(regs_decode &decode) { if( SRC_IS_SR ) SREG = SREGF = 0; if( DST_IS_SR ) { - switch( decode->sub_type ) + switch( decode.sub_type ) { case 0: // STBS.A @@ -3511,7 +3512,7 @@ void hyperstone_device::hyperstone_stxx1(struct hyperstone_device::regs_decode * } else { - switch( decode->sub_type ) + switch( decode.sub_type ) { case 0: // STBS.D @@ -3575,7 +3576,7 @@ void hyperstone_device::hyperstone_stxx1(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_stxx2(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_stxx2(regs_decode &decode) { if( SRC_IS_SR ) SREG = SREGF = 0; @@ -3586,7 +3587,7 @@ void hyperstone_device::hyperstone_stxx2(struct hyperstone_device::regs_decode * } else { - switch( decode->sub_type ) + switch( decode.sub_type ) { case 0: // STBS.N @@ -3629,7 +3630,7 @@ void hyperstone_device::hyperstone_stxx2(struct hyperstone_device::regs_decode * WRITE_W(DREG, SREG); else { - if(((DREG & 0xfc) >> 2) == ((decode->src + GET_FP) % 64) && S_BIT == LOCAL) + if(((DREG & 0xfc) >> 2) == ((decode.src + GET_FP) % 64) && S_BIT == LOCAL) DEBUG_PRINTF(("STW.S denoted the same local register @ %08X\n",PPC)); SET_ABS_L_REG((DREG & 0xfc) >> 2,SREG); @@ -3669,7 +3670,7 @@ void hyperstone_device::hyperstone_stxx2(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_shri(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shri(regs_decode &decode) { uint32_t val; @@ -3689,7 +3690,7 @@ void hyperstone_device::hyperstone_shri(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_sari(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_sari(regs_decode &decode) { uint32_t val; uint8_t sign_bit; @@ -3720,7 +3721,7 @@ void hyperstone_device::hyperstone_sari(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_shli(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_shli(regs_decode &decode) { uint32_t val, val2; uint64_t mask; @@ -3743,7 +3744,7 @@ void hyperstone_device::hyperstone_shli(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_mulu(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_mulu(regs_decode &decode) { uint32_t low_order, high_order; uint64_t double_word; @@ -3773,7 +3774,7 @@ void hyperstone_device::hyperstone_mulu(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_muls(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_muls(regs_decode &decode) { uint32_t low_order, high_order; int64_t double_word; @@ -3802,7 +3803,7 @@ void hyperstone_device::hyperstone_muls(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_set(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_set(regs_decode &decode) { int n = N_VALUE; @@ -4148,7 +4149,7 @@ void hyperstone_device::hyperstone_set(struct hyperstone_device::regs_decode *de } } -void hyperstone_device::hyperstone_mul(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_mul(regs_decode &decode) { uint32_t single_word; @@ -4173,91 +4174,91 @@ void hyperstone_device::hyperstone_mul(struct hyperstone_device::regs_decode *de m_icount -= 5 << m_clck_scale; } -void hyperstone_device::hyperstone_fadd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fadd(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_faddd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_faddd(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fsub(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fsub(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fsubd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fsubd(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fmul(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fmul(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fmuld(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fmuld(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fdiv(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fdiv(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fdivd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fdivd(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fcmp(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fcmp(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fcmpd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fcmpd(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fcmpu(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fcmpu(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fcmpud(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fcmpud(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fcvt(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fcvt(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_fcvtd(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_fcvtd(regs_decode &decode) { execute_software(decode); m_icount -= m_clock_cycles_6; } -void hyperstone_device::hyperstone_extend(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_extend(regs_decode &decode) { //TODO: add locks, overflow error and other things uint32_t vals, vald; @@ -4458,19 +4459,19 @@ void hyperstone_device::hyperstone_extend(struct hyperstone_device::regs_decode m_icount -= m_clock_cycles_1; //TODO: with the latency it can change } -void hyperstone_device::hyperstone_do(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_do(regs_decode &decode) { fatalerror("Executed hyperstone_do instruction. PC = %08X\n", PPC); } -void hyperstone_device::hyperstone_ldwr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_ldwr(regs_decode &decode) { SET_SREG(READ_W(DREG)); m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_lddr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_lddr(regs_decode &decode) { SET_SREG(READ_W(DREG)); SET_SREGF(READ_W(DREG + 4)); @@ -4478,26 +4479,26 @@ void hyperstone_device::hyperstone_lddr(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_ldwp(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_ldwp(regs_decode &decode) { SET_SREG(READ_W(DREG)); // post increment the destination register if it's different from the source one // (needed by Hidden Catch) - if(!(decode->src == decode->dst && S_BIT == LOCAL)) + if(!(decode.src == decode.dst && S_BIT == LOCAL)) SET_DREG(DREG + 4); m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_lddp(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_lddp(regs_decode &decode) { SET_SREG(READ_W(DREG)); SET_SREGF(READ_W(DREG + 4)); // post increment the destination register if it's different from the source one // and from the "next source" one - if(!(decode->src == decode->dst && S_BIT == LOCAL) && !SAME_SRCF_DST ) + if(!(decode.src == decode.dst && S_BIT == LOCAL) && !SAME_SRCF_DST ) { SET_DREG(DREG + 8); } @@ -4509,7 +4510,7 @@ void hyperstone_device::hyperstone_lddp(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_stwr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_stwr(regs_decode &decode) { if( SRC_IS_SR ) SREG = 0; @@ -4519,7 +4520,7 @@ void hyperstone_device::hyperstone_stwr(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_stdr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_stdr(regs_decode &decode) { if( SRC_IS_SR ) SREG = SREGF = 0; @@ -4530,7 +4531,7 @@ void hyperstone_device::hyperstone_stdr(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_stwp(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_stwp(regs_decode &decode) { if( SRC_IS_SR ) SREG = 0; @@ -4541,7 +4542,7 @@ void hyperstone_device::hyperstone_stwp(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_stdp(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_stdp(regs_decode &decode) { if( SRC_IS_SR ) SREG = SREGF = 0; @@ -4557,7 +4558,7 @@ void hyperstone_device::hyperstone_stdp(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_2; } -void hyperstone_device::hyperstone_dbv(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dbv(regs_decode &decode) { if( GET_V ) execute_dbr(decode); @@ -4565,7 +4566,7 @@ void hyperstone_device::hyperstone_dbv(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbnv(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dbnv(regs_decode &decode) { if( !GET_V ) execute_dbr(decode); @@ -4573,7 +4574,7 @@ void hyperstone_device::hyperstone_dbnv(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbe(struct hyperstone_device::regs_decode *decode) //or DBZ +void hyperstone_device::hyperstone_dbe(regs_decode &decode) //or DBZ { if( GET_Z ) execute_dbr(decode); @@ -4581,7 +4582,7 @@ void hyperstone_device::hyperstone_dbe(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbne(struct hyperstone_device::regs_decode *decode) //or DBNZ +void hyperstone_device::hyperstone_dbne(regs_decode &decode) //or DBNZ { if( !GET_Z ) execute_dbr(decode); @@ -4589,7 +4590,7 @@ void hyperstone_device::hyperstone_dbne(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbc(struct hyperstone_device::regs_decode *decode) //or DBST +void hyperstone_device::hyperstone_dbc(regs_decode &decode) //or DBST { if( GET_C ) execute_dbr(decode); @@ -4597,7 +4598,7 @@ void hyperstone_device::hyperstone_dbc(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbnc(struct hyperstone_device::regs_decode *decode) //or DBHE +void hyperstone_device::hyperstone_dbnc(regs_decode &decode) //or DBHE { if( !GET_C ) execute_dbr(decode); @@ -4605,7 +4606,7 @@ void hyperstone_device::hyperstone_dbnc(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbse(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dbse(regs_decode &decode) { if( GET_C || GET_Z ) execute_dbr(decode); @@ -4613,7 +4614,7 @@ void hyperstone_device::hyperstone_dbse(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbht(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dbht(regs_decode &decode) { if( !GET_C && !GET_Z ) execute_dbr(decode); @@ -4621,7 +4622,7 @@ void hyperstone_device::hyperstone_dbht(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbn(struct hyperstone_device::regs_decode *decode) //or DBLT +void hyperstone_device::hyperstone_dbn(regs_decode &decode) //or DBLT { if( GET_N ) execute_dbr(decode); @@ -4629,7 +4630,7 @@ void hyperstone_device::hyperstone_dbn(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbnn(struct hyperstone_device::regs_decode *decode) //or DBGE +void hyperstone_device::hyperstone_dbnn(regs_decode &decode) //or DBGE { if( !GET_N ) execute_dbr(decode); @@ -4637,7 +4638,7 @@ void hyperstone_device::hyperstone_dbnn(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dble(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dble(regs_decode &decode) { if( GET_N || GET_Z ) execute_dbr(decode); @@ -4645,7 +4646,7 @@ void hyperstone_device::hyperstone_dble(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbgt(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dbgt(regs_decode &decode) { if( !GET_N && !GET_Z ) execute_dbr(decode); @@ -4653,12 +4654,12 @@ void hyperstone_device::hyperstone_dbgt(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_dbr(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_dbr(regs_decode &decode) { execute_dbr(decode); } -void hyperstone_device::hyperstone_frame(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_frame(regs_decode &decode) { int8_t difference; // really it's 7 bits uint8_t realfp = GET_FP - SRC_CODE; @@ -4700,13 +4701,13 @@ void hyperstone_device::hyperstone_frame(struct hyperstone_device::regs_decode * m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_call(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_call(regs_decode &decode) { if( SRC_IS_SR ) SREG = 0; if( !DST_CODE ) - decode->dst = 16; + decode.dst = 16; EXTRA_S = (EXTRA_S & ~1) + SREG; @@ -4715,7 +4716,7 @@ void hyperstone_device::hyperstone_call(struct hyperstone_device::regs_decode *d SET_DREG((PC & 0xfffffffe) | GET_S); SET_DREGF(SR); - SET_FP(GET_FP + decode->dst); + SET_FP(GET_FP + decode.dst); SET_FL(6); //default value for call SET_M(0); @@ -4731,7 +4732,7 @@ void hyperstone_device::hyperstone_call(struct hyperstone_device::regs_decode *d m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bv(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_bv(regs_decode &decode) { if( GET_V ) execute_br(decode); @@ -4739,7 +4740,7 @@ void hyperstone_device::hyperstone_bv(struct hyperstone_device::regs_decode *dec m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bnv(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_bnv(regs_decode &decode) { if( !GET_V ) execute_br(decode); @@ -4747,7 +4748,7 @@ void hyperstone_device::hyperstone_bnv(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_be(struct hyperstone_device::regs_decode *decode) //or BZ +void hyperstone_device::hyperstone_be(regs_decode &decode) //or BZ { if( GET_Z ) execute_br(decode); @@ -4755,7 +4756,7 @@ void hyperstone_device::hyperstone_be(struct hyperstone_device::regs_decode *dec m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bne(struct hyperstone_device::regs_decode *decode) //or BNZ +void hyperstone_device::hyperstone_bne(regs_decode &decode) //or BNZ { if( !GET_Z ) execute_br(decode); @@ -4763,7 +4764,7 @@ void hyperstone_device::hyperstone_bne(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bc(struct hyperstone_device::regs_decode *decode) //or BST +void hyperstone_device::hyperstone_bc(regs_decode &decode) //or BST { if( GET_C ) execute_br(decode); @@ -4771,7 +4772,7 @@ void hyperstone_device::hyperstone_bc(struct hyperstone_device::regs_decode *dec m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bnc(struct hyperstone_device::regs_decode *decode) //or BHE +void hyperstone_device::hyperstone_bnc(regs_decode &decode) //or BHE { if( !GET_C ) execute_br(decode); @@ -4779,7 +4780,7 @@ void hyperstone_device::hyperstone_bnc(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bse(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_bse(regs_decode &decode) { if( GET_C || GET_Z ) execute_br(decode); @@ -4787,7 +4788,7 @@ void hyperstone_device::hyperstone_bse(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bht(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_bht(regs_decode &decode) { if( !GET_C && !GET_Z ) execute_br(decode); @@ -4795,7 +4796,7 @@ void hyperstone_device::hyperstone_bht(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bn(struct hyperstone_device::regs_decode *decode) //or BLT +void hyperstone_device::hyperstone_bn(regs_decode &decode) //or BLT { if( GET_N ) execute_br(decode); @@ -4803,7 +4804,7 @@ void hyperstone_device::hyperstone_bn(struct hyperstone_device::regs_decode *dec m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bnn(struct hyperstone_device::regs_decode *decode) //or BGE +void hyperstone_device::hyperstone_bnn(regs_decode &decode) //or BGE { if( !GET_N ) execute_br(decode); @@ -4811,7 +4812,7 @@ void hyperstone_device::hyperstone_bnn(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_ble(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_ble(regs_decode &decode) { if( GET_N || GET_Z ) execute_br(decode); @@ -4819,7 +4820,7 @@ void hyperstone_device::hyperstone_ble(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_bgt(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_bgt(regs_decode &decode) { if( !GET_N && !GET_Z ) execute_br(decode); @@ -4827,12 +4828,12 @@ void hyperstone_device::hyperstone_bgt(struct hyperstone_device::regs_decode *de m_icount -= m_clock_cycles_1; } -void hyperstone_device::hyperstone_br(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_br(regs_decode &decode) { execute_br(decode); } -void hyperstone_device::hyperstone_trap(struct hyperstone_device::regs_decode *decode) +void hyperstone_device::hyperstone_trap(regs_decode &decode) { uint8_t code, trapno; uint32_t addr; diff --git a/src/devices/cpu/e132xs/e132xs.h b/src/devices/cpu/e132xs/e132xs.h index fd168d9eb75..2395d64f85b 100644 --- a/src/devices/cpu/e132xs/e132xs.h +++ b/src/devices/cpu/e132xs/e132xs.h @@ -215,132 +215,132 @@ private: TIMER_CALLBACK_MEMBER(timer_callback); - void execute_br(struct regs_decode *decode); - void execute_dbr(struct regs_decode *decode); + void execute_br(regs_decode &decode); + void execute_dbr(regs_decode &decode); void execute_trap(uint32_t addr); void execute_int(uint32_t addr); void execute_exception(uint32_t addr); - void execute_software(struct regs_decode *decode); - - void hyperstone_chk(struct regs_decode *decode); - void hyperstone_movd(struct regs_decode *decode); - void hyperstone_divu(struct regs_decode *decode); - void hyperstone_divs(struct regs_decode *decode); - void hyperstone_xm(struct regs_decode *decode); - void hyperstone_mask(struct regs_decode *decode); - void hyperstone_sum(struct regs_decode *decode); - void hyperstone_sums(struct regs_decode *decode); - void hyperstone_cmp(struct regs_decode *decode); - void hyperstone_mov(struct regs_decode *decode); - void hyperstone_add(struct regs_decode *decode); - void hyperstone_adds(struct regs_decode *decode); - void hyperstone_cmpb(struct regs_decode *decode); - void hyperstone_andn(struct regs_decode *decode); - void hyperstone_or(struct regs_decode *decode); - void hyperstone_xor(struct regs_decode *decode); - void hyperstone_subc(struct regs_decode *decode); - void hyperstone_not(struct regs_decode *decode); - void hyperstone_sub(struct regs_decode *decode); - void hyperstone_subs(struct regs_decode *decode); - void hyperstone_addc(struct regs_decode *decode); - void hyperstone_and(struct regs_decode *decode); - void hyperstone_neg(struct regs_decode *decode); - void hyperstone_negs(struct regs_decode *decode); - void hyperstone_cmpi(struct regs_decode *decode); - void hyperstone_movi(struct regs_decode *decode); - void hyperstone_addi(struct regs_decode *decode); - void hyperstone_addsi(struct regs_decode *decode); - void hyperstone_cmpbi(struct regs_decode *decode); - void hyperstone_andni(struct regs_decode *decode); - void hyperstone_ori(struct regs_decode *decode); - void hyperstone_xori(struct regs_decode *decode); - void hyperstone_shrdi(struct regs_decode *decode); - void hyperstone_shrd(struct regs_decode *decode); - void hyperstone_shr(struct regs_decode *decode); - void hyperstone_shri(struct regs_decode *decode); - void hyperstone_sardi(struct regs_decode *decode); - void hyperstone_sard(struct regs_decode *decode); - void hyperstone_sar(struct regs_decode *decode); - void hyperstone_sari(struct regs_decode *decode); - void hyperstone_shldi(struct regs_decode *decode); - void hyperstone_shld(struct regs_decode *decode); - void hyperstone_shl(struct regs_decode *decode); - void hyperstone_shli(struct regs_decode *decode); - void hyperstone_testlz(struct regs_decode *decode); - void hyperstone_rol(struct regs_decode *decode); - void hyperstone_ldxx1(struct regs_decode *decode); - void hyperstone_ldxx2(struct regs_decode *decode); - void hyperstone_stxx1(struct regs_decode *decode); - void hyperstone_stxx2(struct regs_decode *decode); - void hyperstone_mulu(struct regs_decode *decode); - void hyperstone_muls(struct regs_decode *decode); - void hyperstone_mul(struct regs_decode *decode); - void hyperstone_set(struct regs_decode *decode); - - void hyperstone_fadd(struct regs_decode *decode); - void hyperstone_faddd(struct regs_decode *decode); - void hyperstone_fsub(struct regs_decode *decode); - void hyperstone_fsubd(struct regs_decode *decode); - void hyperstone_fmul(struct regs_decode *decode); - void hyperstone_fmuld(struct regs_decode *decode); - void hyperstone_fdiv(struct regs_decode *decode); - void hyperstone_fdivd(struct regs_decode *decode); - - void hyperstone_fcmp(struct regs_decode *decode); - void hyperstone_fcmpd(struct regs_decode *decode); - void hyperstone_fcmpu(struct regs_decode *decode); - void hyperstone_fcmpud(struct regs_decode *decode); - - void hyperstone_fcvt(struct regs_decode *decode); - void hyperstone_fcvtd(struct regs_decode *decode); - - void hyperstone_extend(struct regs_decode *decode); - - void hyperstone_ldwr(struct regs_decode *decode); - void hyperstone_lddr(struct regs_decode *decode); - void hyperstone_ldwp(struct regs_decode *decode); - void hyperstone_lddp(struct regs_decode *decode); - - void hyperstone_stwr(struct regs_decode *decode); - void hyperstone_stdr(struct regs_decode *decode); - void hyperstone_stwp(struct regs_decode *decode); - void hyperstone_stdp(struct regs_decode *decode); - - void hyperstone_dbv(struct regs_decode *decode); - void hyperstone_dbnv(struct regs_decode *decode); - void hyperstone_dbe(struct regs_decode *decode); - void hyperstone_dbne(struct regs_decode *decode); - void hyperstone_dbc(struct regs_decode *decode); - void hyperstone_dbnc(struct regs_decode *decode); - void hyperstone_dbse(struct regs_decode *decode); - void hyperstone_dbht(struct regs_decode *decode); - void hyperstone_dbn(struct regs_decode *decode); - void hyperstone_dbnn(struct regs_decode *decode); - void hyperstone_dble(struct regs_decode *decode); - void hyperstone_dbgt(struct regs_decode *decode); - void hyperstone_dbr(struct regs_decode *decode); - - void hyperstone_frame(struct regs_decode *decode); - void hyperstone_call(struct regs_decode *decode); - - void hyperstone_bv(struct regs_decode *decode); - void hyperstone_bnv(struct regs_decode *decode); - void hyperstone_be(struct regs_decode *decode); - void hyperstone_bne(struct regs_decode *decode); - void hyperstone_bc(struct regs_decode *decode); - void hyperstone_bnc(struct regs_decode *decode); - void hyperstone_bse(struct regs_decode *decode); - void hyperstone_bht(struct regs_decode *decode); - void hyperstone_bn(struct regs_decode *decode); - void hyperstone_bnn(struct regs_decode *decode); - void hyperstone_ble(struct regs_decode *decode); - void hyperstone_bgt(struct regs_decode *decode); - void hyperstone_br(struct regs_decode *decode); - - void hyperstone_trap(struct regs_decode *decode); - void hyperstone_do(struct regs_decode *decode); - - void reserved(struct regs_decode *decode); + void execute_software(regs_decode &decode); + + void hyperstone_chk(regs_decode &decode); + void hyperstone_movd(regs_decode &decode); + void hyperstone_divu(regs_decode &decode); + void hyperstone_divs(regs_decode &decode); + void hyperstone_xm(regs_decode &decode); + void hyperstone_mask(regs_decode &decode); + void hyperstone_sum(regs_decode &decode); + void hyperstone_sums(regs_decode &decode); + void hyperstone_cmp(regs_decode &decode); + void hyperstone_mov(regs_decode &decode); + void hyperstone_add(regs_decode &decode); + void hyperstone_adds(regs_decode &decode); + void hyperstone_cmpb(regs_decode &decode); + void hyperstone_andn(regs_decode &decode); + void hyperstone_or(regs_decode &decode); + void hyperstone_xor(regs_decode &decode); + void hyperstone_subc(regs_decode &decode); + void hyperstone_not(regs_decode &decode); + void hyperstone_sub(regs_decode &decode); + void hyperstone_subs(regs_decode &decode); + void hyperstone_addc(regs_decode &decode); + void hyperstone_and(regs_decode &decode); + void hyperstone_neg(regs_decode &decode); + void hyperstone_negs(regs_decode &decode); + void hyperstone_cmpi(regs_decode &decode); + void hyperstone_movi(regs_decode &decode); + void hyperstone_addi(regs_decode &decode); + void hyperstone_addsi(regs_decode &decode); + void hyperstone_cmpbi(regs_decode &decode); + void hyperstone_andni(regs_decode &decode); + void hyperstone_ori(regs_decode &decode); + void hyperstone_xori(regs_decode &decode); + void hyperstone_shrdi(regs_decode &decode); + void hyperstone_shrd(regs_decode &decode); + void hyperstone_shr(regs_decode &decode); + void hyperstone_shri(regs_decode &decode); + void hyperstone_sardi(regs_decode &decode); + void hyperstone_sard(regs_decode &decode); + void hyperstone_sar(regs_decode &decode); + void hyperstone_sari(regs_decode &decode); + void hyperstone_shldi(regs_decode &decode); + void hyperstone_shld(regs_decode &decode); + void hyperstone_shl(regs_decode &decode); + void hyperstone_shli(regs_decode &decode); + void hyperstone_testlz(regs_decode &decode); + void hyperstone_rol(regs_decode &decode); + void hyperstone_ldxx1(regs_decode &decode); + void hyperstone_ldxx2(regs_decode &decode); + void hyperstone_stxx1(regs_decode &decode); + void hyperstone_stxx2(regs_decode &decode); + void hyperstone_mulu(regs_decode &decode); + void hyperstone_muls(regs_decode &decode); + void hyperstone_mul(regs_decode &decode); + void hyperstone_set(regs_decode &decode); + + void hyperstone_fadd(regs_decode &decode); + void hyperstone_faddd(regs_decode &decode); + void hyperstone_fsub(regs_decode &decode); + void hyperstone_fsubd(regs_decode &decode); + void hyperstone_fmul(regs_decode &decode); + void hyperstone_fmuld(regs_decode &decode); + void hyperstone_fdiv(regs_decode &decode); + void hyperstone_fdivd(regs_decode &decode); + + void hyperstone_fcmp(regs_decode &decode); + void hyperstone_fcmpd(regs_decode &decode); + void hyperstone_fcmpu(regs_decode &decode); + void hyperstone_fcmpud(regs_decode &decode); + + void hyperstone_fcvt(regs_decode &decode); + void hyperstone_fcvtd(regs_decode &decode); + + void hyperstone_extend(regs_decode &decode); + + void hyperstone_ldwr(regs_decode &decode); + void hyperstone_lddr(regs_decode &decode); + void hyperstone_ldwp(regs_decode &decode); + void hyperstone_lddp(regs_decode &decode); + + void hyperstone_stwr(regs_decode &decode); + void hyperstone_stdr(regs_decode &decode); + void hyperstone_stwp(regs_decode &decode); + void hyperstone_stdp(regs_decode &decode); + + void hyperstone_dbv(regs_decode &decode); + void hyperstone_dbnv(regs_decode &decode); + void hyperstone_dbe(regs_decode &decode); + void hyperstone_dbne(regs_decode &decode); + void hyperstone_dbc(regs_decode &decode); + void hyperstone_dbnc(regs_decode &decode); + void hyperstone_dbse(regs_decode &decode); + void hyperstone_dbht(regs_decode &decode); + void hyperstone_dbn(regs_decode &decode); + void hyperstone_dbnn(regs_decode &decode); + void hyperstone_dble(regs_decode &decode); + void hyperstone_dbgt(regs_decode &decode); + void hyperstone_dbr(regs_decode &decode); + + void hyperstone_frame(regs_decode &decode); + void hyperstone_call(regs_decode &decode); + + void hyperstone_bv(regs_decode &decode); + void hyperstone_bnv(regs_decode &decode); + void hyperstone_be(regs_decode &decode); + void hyperstone_bne(regs_decode &decode); + void hyperstone_bc(regs_decode &decode); + void hyperstone_bnc(regs_decode &decode); + void hyperstone_bse(regs_decode &decode); + void hyperstone_bht(regs_decode &decode); + void hyperstone_bn(regs_decode &decode); + void hyperstone_bnn(regs_decode &decode); + void hyperstone_ble(regs_decode &decode); + void hyperstone_bgt(regs_decode &decode); + void hyperstone_br(regs_decode &decode); + + void hyperstone_trap(regs_decode &decode); + void hyperstone_do(regs_decode &decode); + + void reserved(regs_decode &decode); void op00(); void op01(); void op02(); void op03(); void op04(); void op05(); void op06(); void op07(); void op08(); void op09(); void op0a(); void op0b(); void op0c(); void op0d(); void op0e(); void op0f(); diff --git a/src/devices/cpu/e132xs/e132xsop.hxx b/src/devices/cpu/e132xs/e132xsop.hxx index e37ef914246..8b0b15f14a6 100644 --- a/src/devices/cpu/e132xs/e132xsop.hxx +++ b/src/devices/cpu/e132xs/e132xsop.hxx @@ -1,132 +1,113 @@ // license:BSD-3-Clause // copyright-holders:Pierpaolo Prazzoli -#define LOCAL_DECODE_INIT \ - struct regs_decode decode_state; \ - struct regs_decode *decode = &decode_state; \ -\ - /* clear 'current regs / flags' */ \ - decode->src = 0; \ - decode->dst = 0; \ - decode->src_value = 0; \ - decode->next_src_value = 0; \ - decode->dst_value = 0; \ - decode->next_dst_value = 0; \ - decode->sub_type = 0; \ - decode->extra.u = 0; \ - decode->src_is_local = 0; \ - decode->dst_is_local = 0; \ - decode->same_src_dst = 0; \ - decode->same_src_dstf = 0; \ - decode->same_srcf_dst = 0; - void hyperstone_device::op00() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_chk(decode); } void hyperstone_device::op01() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_chk(decode); } void hyperstone_device::op02() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_chk(decode); } void hyperstone_device::op03() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_chk(decode); } void hyperstone_device::op04() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_movd(decode); } void hyperstone_device::op05() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_movd(decode); } void hyperstone_device::op06() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_movd(decode); } void hyperstone_device::op07() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_movd(decode); } void hyperstone_device::op08() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_divu(decode); } void hyperstone_device::op09() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_divu(decode); } void hyperstone_device::op0a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_divu(decode); } void hyperstone_device::op0b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_divu(decode); } void hyperstone_device::op0c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_divs(decode); } void hyperstone_device::op0d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_divs(decode); } void hyperstone_device::op0e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_divs(decode); } void hyperstone_device::op0f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_divs(decode); } @@ -135,112 +116,112 @@ void hyperstone_device::op0f() void hyperstone_device::op10() { - LOCAL_DECODE_INIT; + regs_decode decode; RRlimdecode(decode, 0, 0); hyperstone_xm(decode); } void hyperstone_device::op11() { - LOCAL_DECODE_INIT; + regs_decode decode; RRlimdecode(decode, 0, 1); hyperstone_xm(decode); } void hyperstone_device::op12() { - LOCAL_DECODE_INIT; + regs_decode decode; RRlimdecode(decode, 1, 0); hyperstone_xm(decode); } void hyperstone_device::op13() { - LOCAL_DECODE_INIT; + regs_decode decode; RRlimdecode(decode, 1, 1); hyperstone_xm(decode); } void hyperstone_device::op14() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 0, 0); hyperstone_mask(decode); } void hyperstone_device::op15() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 0, 1); hyperstone_mask(decode); } void hyperstone_device::op16() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 1, 0); hyperstone_mask(decode); } void hyperstone_device::op17() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 1, 1); hyperstone_mask(decode); } void hyperstone_device::op18() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 0, 0); hyperstone_sum(decode); } void hyperstone_device::op19() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 0, 1); hyperstone_sum(decode); } void hyperstone_device::op1a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 1, 0); hyperstone_sum(decode); } void hyperstone_device::op1b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 1, 1); hyperstone_sum(decode); } void hyperstone_device::op1c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 0, 0); hyperstone_sums(decode); } void hyperstone_device::op1d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 0, 1); hyperstone_sums(decode); } void hyperstone_device::op1e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 1, 0); hyperstone_sums(decode); } void hyperstone_device::op1f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRconstdecode(decode, 1, 1); hyperstone_sums(decode); } @@ -249,112 +230,112 @@ void hyperstone_device::op1f() void hyperstone_device::op20() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_cmp(decode); } void hyperstone_device::op21() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_cmp(decode); } void hyperstone_device::op22() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_cmp(decode); } void hyperstone_device::op23() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_cmp(decode); } void hyperstone_device::op24() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecodewithHflag(decode, 0, 0); hyperstone_mov(decode); } void hyperstone_device::op25() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecodewithHflag(decode, 0, 1); hyperstone_mov(decode); } void hyperstone_device::op26() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecodewithHflag(decode, 1, 0); hyperstone_mov(decode); } void hyperstone_device::op27() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecodewithHflag(decode, 1, 1); hyperstone_mov(decode); } void hyperstone_device::op28() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_add(decode); } void hyperstone_device::op29() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_add(decode); } void hyperstone_device::op2a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_add(decode); } void hyperstone_device::op2b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_add(decode); } void hyperstone_device::op2c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_adds(decode); } void hyperstone_device::op2d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_adds(decode); } void hyperstone_device::op2e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_adds(decode); } void hyperstone_device::op2f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_adds(decode); } @@ -363,112 +344,112 @@ void hyperstone_device::op2f() void hyperstone_device::op30() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_cmpb(decode); } void hyperstone_device::op31() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_cmpb(decode); } void hyperstone_device::op32() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_cmpb(decode); } void hyperstone_device::op33() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_cmpb(decode); } void hyperstone_device::op34() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_andn(decode); } void hyperstone_device::op35() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_andn(decode); } void hyperstone_device::op36() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_andn(decode); } void hyperstone_device::op37() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_andn(decode); } void hyperstone_device::op38() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_or(decode); } void hyperstone_device::op39() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_or(decode); } void hyperstone_device::op3a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_or(decode); } void hyperstone_device::op3b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_or(decode); } void hyperstone_device::op3c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_xor(decode); } void hyperstone_device::op3d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_xor(decode); } void hyperstone_device::op3e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_xor(decode); } void hyperstone_device::op3f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_xor(decode); } @@ -477,112 +458,112 @@ void hyperstone_device::op3f() void hyperstone_device::op40() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_subc(decode); } void hyperstone_device::op41() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_subc(decode); } void hyperstone_device::op42() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_subc(decode); } void hyperstone_device::op43() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_subc(decode); } void hyperstone_device::op44() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_not(decode); } void hyperstone_device::op45() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_not(decode); } void hyperstone_device::op46() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_not(decode); } void hyperstone_device::op47() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_not(decode); } void hyperstone_device::op48() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_sub(decode); } void hyperstone_device::op49() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_sub(decode); } void hyperstone_device::op4a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_sub(decode); } void hyperstone_device::op4b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_sub(decode); } void hyperstone_device::op4c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_subs(decode); } void hyperstone_device::op4d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_subs(decode); } void hyperstone_device::op4e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_subs(decode); } void hyperstone_device::op4f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_subs(decode); } @@ -591,112 +572,112 @@ void hyperstone_device::op4f() void hyperstone_device::op50() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_addc(decode); } void hyperstone_device::op51() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_addc(decode); } void hyperstone_device::op52() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_addc(decode); } void hyperstone_device::op53() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_addc(decode); } void hyperstone_device::op54() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_and(decode); } void hyperstone_device::op55() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_and(decode); } void hyperstone_device::op56() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_and(decode); } void hyperstone_device::op57() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_and(decode); } void hyperstone_device::op58() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_neg(decode); } void hyperstone_device::op59() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_neg(decode); } void hyperstone_device::op5a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_neg(decode); } void hyperstone_device::op5b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_neg(decode); } void hyperstone_device::op5c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_negs(decode); } void hyperstone_device::op5d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_negs(decode); } void hyperstone_device::op5e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_negs(decode); } void hyperstone_device::op5f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_negs(decode); } @@ -705,112 +686,112 @@ void hyperstone_device::op5f() void hyperstone_device::op60() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_cmpi(decode); } void hyperstone_device::op61() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_cmpi(decode); } void hyperstone_device::op62() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_cmpi(decode); } void hyperstone_device::op63() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_cmpi(decode); } void hyperstone_device::op64() { - LOCAL_DECODE_INIT; + regs_decode decode; RimmdecodewithHflag(decode, 0, 0); hyperstone_movi(decode); } void hyperstone_device::op65() { - LOCAL_DECODE_INIT; + regs_decode decode; RimmdecodewithHflag(decode, 0, 1); hyperstone_movi(decode); } void hyperstone_device::op66() { - LOCAL_DECODE_INIT; + regs_decode decode; RimmdecodewithHflag(decode, 1, 0); hyperstone_movi(decode); } void hyperstone_device::op67() { - LOCAL_DECODE_INIT; + regs_decode decode; RimmdecodewithHflag(decode, 1, 1); hyperstone_movi(decode); } void hyperstone_device::op68() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_addi(decode); } void hyperstone_device::op69() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_addi(decode); } void hyperstone_device::op6a() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_addi(decode); } void hyperstone_device::op6b() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_addi(decode); } void hyperstone_device::op6c() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_addsi(decode); } void hyperstone_device::op6d() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_addsi(decode); } void hyperstone_device::op6e() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_addsi(decode); } void hyperstone_device::op6f() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_addsi(decode); } @@ -819,112 +800,112 @@ void hyperstone_device::op6f() void hyperstone_device::op70() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_cmpbi(decode); } void hyperstone_device::op71() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_cmpbi(decode); } void hyperstone_device::op72() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_cmpbi(decode); } void hyperstone_device::op73() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_cmpbi(decode); } void hyperstone_device::op74() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_andni(decode); } void hyperstone_device::op75() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_andni(decode); } void hyperstone_device::op76() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_andni(decode); } void hyperstone_device::op77() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_andni(decode); } void hyperstone_device::op78() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_ori(decode); } void hyperstone_device::op79() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_ori(decode); } void hyperstone_device::op7a() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_ori(decode); } void hyperstone_device::op7b() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_ori(decode); } void hyperstone_device::op7c() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 0); hyperstone_xori(decode); } void hyperstone_device::op7d() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 0, 1); hyperstone_xori(decode); } void hyperstone_device::op7e() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 0); hyperstone_xori(decode); } void hyperstone_device::op7f() { - LOCAL_DECODE_INIT; + regs_decode decode; Rimmdecode(decode, 1, 1); hyperstone_xori(decode); } @@ -933,112 +914,112 @@ void hyperstone_device::op7f() void hyperstone_device::op80() { - LOCAL_DECODE_INIT; + regs_decode decode; Lndecode(decode); hyperstone_shrdi(decode); } void hyperstone_device::op81() { - LOCAL_DECODE_INIT; + regs_decode decode; Lndecode(decode); hyperstone_shrdi(decode); } void hyperstone_device::op82() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_shrd(decode); } void hyperstone_device::op83() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_shr(decode); } void hyperstone_device::op84() { - LOCAL_DECODE_INIT; + regs_decode decode; Lndecode(decode); hyperstone_sardi(decode); } void hyperstone_device::op85() { - LOCAL_DECODE_INIT; + regs_decode decode; Lndecode(decode); hyperstone_sardi(decode); } void hyperstone_device::op86() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_sard(decode); } void hyperstone_device::op87() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_sar(decode); } void hyperstone_device::op88() { - LOCAL_DECODE_INIT; + regs_decode decode; Lndecode(decode); hyperstone_shldi(decode); } void hyperstone_device::op89() { - LOCAL_DECODE_INIT; + regs_decode decode; Lndecode(decode); hyperstone_shldi(decode); } void hyperstone_device::op8a() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_shld(decode); } void hyperstone_device::op8b() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_shl(decode); } void hyperstone_device::op8c() { - LOCAL_DECODE_INIT; + regs_decode decode; no_decode(decode); reserved(decode); } void hyperstone_device::op8d() { - LOCAL_DECODE_INIT; + regs_decode decode; no_decode(decode); reserved(decode); } void hyperstone_device::op8e() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_testlz(decode); } void hyperstone_device::op8f() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_rol(decode); } @@ -1047,112 +1028,112 @@ void hyperstone_device::op8f() void hyperstone_device::op90() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 0); hyperstone_ldxx1(decode); } void hyperstone_device::op91() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 1); hyperstone_ldxx1(decode); } void hyperstone_device::op92() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 0); hyperstone_ldxx1(decode); } void hyperstone_device::op93() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 1); hyperstone_ldxx1(decode); } void hyperstone_device::op94() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 0); hyperstone_ldxx2(decode); } void hyperstone_device::op95() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 1); hyperstone_ldxx2(decode); } void hyperstone_device::op96() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 0); hyperstone_ldxx2(decode); } void hyperstone_device::op97() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 1); hyperstone_ldxx2(decode); } void hyperstone_device::op98() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 0); hyperstone_stxx1(decode); } void hyperstone_device::op99() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 1); hyperstone_stxx1(decode); } void hyperstone_device::op9a() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 0); hyperstone_stxx1(decode); } void hyperstone_device::op9b() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 1); hyperstone_stxx1(decode); } void hyperstone_device::op9c() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 0); hyperstone_stxx2(decode); } void hyperstone_device::op9d() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 0, 1); hyperstone_stxx2(decode); } void hyperstone_device::op9e() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 0); hyperstone_stxx2(decode); } void hyperstone_device::op9f() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdisdecode(decode, 1, 1); hyperstone_stxx2(decode); } @@ -1161,112 +1142,112 @@ void hyperstone_device::op9f() void hyperstone_device::opa0() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_shri(decode); } void hyperstone_device::opa1() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_shri(decode); } void hyperstone_device::opa2() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_shri(decode); } void hyperstone_device::opa3() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_shri(decode); } void hyperstone_device::opa4() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_sari(decode); } void hyperstone_device::opa5() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_sari(decode); } void hyperstone_device::opa6() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_sari(decode); } void hyperstone_device::opa7() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_sari(decode); } void hyperstone_device::opa8() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_shli(decode); } void hyperstone_device::opa9() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_shli(decode); } void hyperstone_device::opaa() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_shli(decode); } void hyperstone_device::opab() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_shli(decode); } void hyperstone_device::opac() { - LOCAL_DECODE_INIT; + regs_decode decode; no_decode(decode); reserved(decode); } void hyperstone_device::opad() { - LOCAL_DECODE_INIT; + regs_decode decode; no_decode(decode); reserved(decode); } void hyperstone_device::opae() { - LOCAL_DECODE_INIT; + regs_decode decode; no_decode(decode); reserved(decode); } void hyperstone_device::opaf() { - LOCAL_DECODE_INIT; + regs_decode decode; no_decode(decode); reserved(decode); } @@ -1275,112 +1256,112 @@ void hyperstone_device::opaf() void hyperstone_device::opb0() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_mulu(decode); } void hyperstone_device::opb1() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_mulu(decode); } void hyperstone_device::opb2() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_mulu(decode); } void hyperstone_device::opb3() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_mulu(decode); } void hyperstone_device::opb4() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_muls(decode); } void hyperstone_device::opb5() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_muls(decode); } void hyperstone_device::opb6() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_muls(decode); } void hyperstone_device::opb7() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_muls(decode); } void hyperstone_device::opb8() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_set(decode); } void hyperstone_device::opb9() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 0); hyperstone_set(decode); } void hyperstone_device::opba() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_set(decode); } void hyperstone_device::opbb() { - LOCAL_DECODE_INIT; + regs_decode decode; Rndecode(decode, 1); hyperstone_set(decode); } void hyperstone_device::opbc() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 0); hyperstone_mul(decode); } void hyperstone_device::opbd() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 0, 1); hyperstone_mul(decode); } void hyperstone_device::opbe() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 0); hyperstone_mul(decode); } void hyperstone_device::opbf() { - LOCAL_DECODE_INIT; + regs_decode decode; RRdecode(decode, 1, 1); hyperstone_mul(decode); } @@ -1389,112 +1370,112 @@ void hyperstone_device::opbf() void hyperstone_device::opc0() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fadd(decode); } void hyperstone_device::opc1() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_faddd(decode); } void hyperstone_device::opc2() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fsub(decode); } void hyperstone_device::opc3() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fsubd(decode); } void hyperstone_device::opc4() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fmul(decode); } void hyperstone_device::opc5() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fmuld(decode); } void hyperstone_device::opc6() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fdiv(decode); } void hyperstone_device::opc7() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fdivd(decode); } void hyperstone_device::opc8() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fcmp(decode); } void hyperstone_device::opc9() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fcmpd(decode); } void hyperstone_device::opca() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fcmpu(decode); } void hyperstone_device::opcb() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fcmpud(decode); } void hyperstone_device::opcc() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fcvt(decode); } void hyperstone_device::opcd() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_fcvtd(decode); } void hyperstone_device::opce() { - LOCAL_DECODE_INIT; + regs_decode decode; LLextdecode(decode); hyperstone_extend(decode); } void hyperstone_device::opcf() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_do(decode); } @@ -1503,112 +1484,112 @@ void hyperstone_device::opcf() void hyperstone_device::opd0() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_ldwr(decode); } void hyperstone_device::opd1() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_ldwr(decode); } void hyperstone_device::opd2() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_lddr(decode); } void hyperstone_device::opd3() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_lddr(decode); } void hyperstone_device::opd4() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_ldwp(decode); } void hyperstone_device::opd5() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_ldwp(decode); } void hyperstone_device::opd6() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_lddp(decode); } void hyperstone_device::opd7() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_lddp(decode); } void hyperstone_device::opd8() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_stwr(decode); } void hyperstone_device::opd9() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_stwr(decode); } void hyperstone_device::opda() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_stdr(decode); } void hyperstone_device::opdb() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_stdr(decode); } void hyperstone_device::opdc() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_stwp(decode); } void hyperstone_device::opdd() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_stwp(decode); } void hyperstone_device::opde() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 0); hyperstone_stdp(decode); } void hyperstone_device::opdf() { - LOCAL_DECODE_INIT; + regs_decode decode; LRdecode(decode, 1); hyperstone_stdp(decode); } @@ -1617,112 +1598,112 @@ void hyperstone_device::opdf() void hyperstone_device::ope0() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbv(decode); } void hyperstone_device::ope1() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbnv(decode); } void hyperstone_device::ope2() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbe(decode); } void hyperstone_device::ope3() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbne(decode); } void hyperstone_device::ope4() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbc(decode); } void hyperstone_device::ope5() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbnc(decode); } void hyperstone_device::ope6() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbse(decode); } void hyperstone_device::ope7() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbht(decode); } void hyperstone_device::ope8() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbn(decode); } void hyperstone_device::ope9() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbnn(decode); } void hyperstone_device::opea() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dble(decode); } void hyperstone_device::opeb() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbgt(decode); } void hyperstone_device::opec() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_dbr(decode); } void hyperstone_device::oped() { - LOCAL_DECODE_INIT; + regs_decode decode; LLdecode(decode); hyperstone_frame(decode); } void hyperstone_device::opee() { - LOCAL_DECODE_INIT; + regs_decode decode; LRconstdecode(decode, 0); hyperstone_call(decode); } void hyperstone_device::opef() { - LOCAL_DECODE_INIT; + regs_decode decode; LRconstdecode(decode, 1); hyperstone_call(decode); } @@ -1731,112 +1712,112 @@ void hyperstone_device::opef() void hyperstone_device::opf0() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bv(decode); } void hyperstone_device::opf1() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bnv(decode); } void hyperstone_device::opf2() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_be(decode); } void hyperstone_device::opf3() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bne(decode); } void hyperstone_device::opf4() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bc(decode); } void hyperstone_device::opf5() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bnc(decode); } void hyperstone_device::opf6() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bse(decode); } void hyperstone_device::opf7() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bht(decode); } void hyperstone_device::opf8() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bn(decode); } void hyperstone_device::opf9() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bnn(decode); } void hyperstone_device::opfa() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_ble(decode); } void hyperstone_device::opfb() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_bgt(decode); } void hyperstone_device::opfc() { - LOCAL_DECODE_INIT; + regs_decode decode; PCreldecode(decode); hyperstone_br(decode); } void hyperstone_device::opfd() { - LOCAL_DECODE_INIT; + regs_decode decode; PCadrdecode(decode); hyperstone_trap(decode); } void hyperstone_device::opfe() { - LOCAL_DECODE_INIT; + regs_decode decode; PCadrdecode(decode); hyperstone_trap(decode); } void hyperstone_device::opff() { - LOCAL_DECODE_INIT; + regs_decode decode; PCadrdecode(decode); hyperstone_trap(decode); } |