diff options
author | 2008-11-24 02:40:16 +0000 | |
---|---|---|
committer | 2008-11-24 02:40:16 +0000 | |
commit | 513011179dadbaf95bd72a113dc1cb9a9f8afe4b (patch) | |
tree | ec9c992e3715c7e4bc90a6892fc88169fa2c535d /src | |
parent | 64164a3e97154682d3ebdd5ffdf4cd8b22a1a6b2 (diff) |
change_pc? What change_pc?
Diffstat (limited to 'src')
108 files changed, 116 insertions, 907 deletions
diff --git a/src/emu/cpu/arm/arm.c b/src/emu/cpu/arm/arm.c index 03b8664e635..4ac447f70b3 100644 --- a/src/emu/cpu/arm/arm.c +++ b/src/emu/cpu/arm/arm.c @@ -295,8 +295,6 @@ INLINE UINT32 GetRegister( int rIndex ) INLINE void SetRegister( int rIndex, UINT32 value ) { arm.sArmRegister[sRegisterTable[MODE][rIndex]] = value; - if (rIndex == eR15) - change_pc(value & ADDRESS_MASK); } /***************************************************************************/ @@ -311,7 +309,6 @@ static CPU_RESET( arm ) /* start up in SVC mode with interrupts disabled. */ R15 = eARM_MODE_SVC|I_MASK|F_MASK; - change_pc(R15 & ADDRESS_MASK); } static CPU_EXIT( arm ) @@ -415,7 +412,6 @@ static CPU_EXECUTE( arm ) R15 = eARM_MODE_SVC; /* Set SVC mode so PC is saved to correct R14 bank */ SetRegister( 14, pc ); /* save PC */ R15 = (pc&PSR_MASK)|(pc&IRQ_MASK)|0x8|eARM_MODE_SVC|I_MASK|(pc&MODE_MASK); - change_pc(pc&ADDRESS_MASK); arm_icount -= 2 * S_CYCLE + N_CYCLE; } else /* Undefined */ @@ -447,7 +443,6 @@ static CPU_SET_CONTEXT( arm ) if (src) { memcpy( &arm, src, sizeof(arm) ); - change_pc(R15 & ADDRESS_MASK); } } @@ -469,7 +464,6 @@ static void arm_check_irq_state(void) R15 = eARM_MODE_FIQ; /* Set FIQ mode so PC is saved to correct R14 bank */ SetRegister( 14, pc ); /* save PC */ R15 = (pc&PSR_MASK)|(pc&IRQ_MASK)|0x1c|eARM_MODE_FIQ|I_MASK|F_MASK; /* Mask both IRQ & FIRQ, set PC=0x1c */ - change_pc(R15 & ADDRESS_MASK); arm.pendingFiq=0; return; } @@ -478,7 +472,6 @@ static void arm_check_irq_state(void) R15 = eARM_MODE_IRQ; /* Set IRQ mode so PC is saved to correct R14 bank */ SetRegister( 14, pc ); /* save PC */ R15 = (pc&PSR_MASK)|(pc&IRQ_MASK)|0x18|eARM_MODE_IRQ|I_MASK|(pc&F_MASK); /* Mask only IRQ, set PC=0x18 */ - change_pc(R15 & ADDRESS_MASK); arm.pendingIrq=0; return; } @@ -545,7 +538,6 @@ static void HandleBranch( UINT32 insn ) { R15 += off + 8; } - change_pc(R15 & ADDRESS_MASK); arm_icount -= 2 * S_CYCLE + N_CYCLE; } @@ -621,7 +613,6 @@ static void HandleMemSingle( UINT32 insn ) if (rd == eR15) { R15 = (READ32(rnv) & ADDRESS_MASK) | (R15 & PSR_MASK) | (R15 & MODE_MASK); - change_pc(R15 & ADDRESS_MASK); /* The docs are explicit in that the bottom bits should be masked off @@ -857,7 +848,6 @@ static void HandleALU( UINT32 insn ) { /* Merge the old NZCV flags into the new PC value */ R15 = (rd & ADDRESS_MASK) | (R15 & PSR_MASK) | (R15 & IRQ_MASK) | (R15&MODE_MASK); - change_pc(R15 & ADDRESS_MASK); arm_icount -= S_CYCLE + N_CYCLE; } else diff --git a/src/emu/cpu/arm7/arm7core.c b/src/emu/cpu/arm7/arm7core.c index 6d3e2d13dcf..9a86e48de03 100644 --- a/src/emu/cpu/arm7/arm7core.c +++ b/src/emu/cpu/arm7/arm7core.c @@ -533,7 +533,6 @@ static void arm7_core_reset(const device_config *device) SwitchMode(eARM7_MODE_SVC); SET_CPSR(GET_CPSR | I_MASK | F_MASK | 0x10); R15 = 0; - change_pc(R15); } // Execute used to be here.. moved to separate file (arm7exec.c) to be included by cpu cores separately @@ -564,7 +563,6 @@ static void arm7_check_irq_state(void) SET_CPSR(GET_CPSR | I_MASK); /* Mask IRQ */ SET_CPSR(GET_CPSR & ~T_MASK); R15 = 0x10; /* IRQ Vector address */ - change_pc(R15); ARM7.pendingAbtD = 0; return; } @@ -577,7 +575,6 @@ static void arm7_check_irq_state(void) SET_CPSR(GET_CPSR | I_MASK | F_MASK); /* Mask both IRQ & FIQ */ SET_CPSR(GET_CPSR & ~T_MASK); R15 = 0x1c; /* IRQ Vector address */ - change_pc(R15); return; } @@ -589,7 +586,6 @@ static void arm7_check_irq_state(void) SET_CPSR(GET_CPSR | I_MASK); /* Mask IRQ */ SET_CPSR(GET_CPSR & ~T_MASK); R15 = 0x18; /* IRQ Vector address */ - change_pc(R15); return; } @@ -601,7 +597,6 @@ static void arm7_check_irq_state(void) SET_CPSR(GET_CPSR | I_MASK); /* Mask IRQ */ SET_CPSR(GET_CPSR & ~T_MASK); R15 = 0x0c; /* IRQ Vector address */ - change_pc(R15); ARM7.pendingAbtP = 0; return; } @@ -614,7 +609,6 @@ static void arm7_check_irq_state(void) SET_CPSR(GET_CPSR | I_MASK); /* Mask IRQ */ SET_CPSR(GET_CPSR & ~T_MASK); R15 = 0x04; /* IRQ Vector address */ - change_pc(R15); ARM7.pendingUnd = 0; return; } @@ -635,7 +629,6 @@ static void arm7_check_irq_state(void) SET_CPSR(GET_CPSR | I_MASK); /* Mask IRQ */ SET_CPSR(GET_CPSR & ~T_MASK); /* Go to ARM mode */ R15 = 0x08; /* Jump to the SWI vector */ - change_pc(R15); ARM7.pendingSwi = 0; return; } @@ -792,8 +785,6 @@ static void HandleBranch(UINT32 insn) { R15 += off + 8; } - - change_pc(R15); } static void HandleMemSingle(UINT32 insn) @@ -866,7 +857,6 @@ static void HandleMemSingle(UINT32 insn) { R15 = READ32(rnv); R15 -= 4; - change_pc(R15); // LDR, PC takes 2S + 2N + 1I (5 total cycles) ARM7_ICOUNT -= 2; } @@ -1100,7 +1090,6 @@ static void HandleHalfWordDT(UINT32 insn) } } } - change_pc(R15); } static void HandleSwap(UINT32 insn) @@ -1234,7 +1223,6 @@ static void HandleALU(UINT32 insn) { UINT32 op2, sc = 0, rd, rn, opcode; UINT32 by, rdn; - UINT32 oldR15 = R15; opcode = (insn & INSN_OPCODE) >> INSN_OPCODE_SHIFT; @@ -1396,9 +1384,6 @@ static void HandleALU(UINT32 insn) #endif } } - - if (oldR15 != R15) - change_pc(R15); } static void HandleMul(UINT32 insn) @@ -1512,7 +1497,6 @@ static void HandleMemBlock(UINT32 insn) { UINT32 rb = (insn & INSN_RN) >> INSN_RN_SHIFT; UINT32 rbp = GET_REGISTER(rb); - UINT32 oldR15 = R15; int result; #if ARM7_DEBUG_CORE @@ -1687,7 +1671,4 @@ static void HandleMemBlock(UINT32 insn) // STM takes (n+1)S+2N+1I cycles (n = # of register transfers) ARM7_ICOUNT -= (result + 1) + 2 + 1; } - - if (oldR15 != R15) - change_pc(R15); } /* HandleMemBlock */ diff --git a/src/emu/cpu/arm7/arm7exec.c b/src/emu/cpu/arm7/arm7exec.c index a712b980956..c7d017a53ee 100644 --- a/src/emu/cpu/arm7/arm7exec.c +++ b/src/emu/cpu/arm7/arm7exec.c @@ -513,7 +513,6 @@ if (rd == 7) { R15 += 2; - change_pc(R15); } break; case 0x3: /* Add HRd, HRs */ @@ -526,7 +525,6 @@ if (rd == 7) { R15 += 2; - change_pc(R15); } break; default: @@ -595,7 +593,6 @@ else { R15 &= ~1; - change_pc(R15); } break; case 0x3: // MOV Hd, Hs @@ -616,7 +613,6 @@ if (rd == 7) { R15 &= ~1; - change_pc(R15); } break; default: @@ -1355,8 +1351,6 @@ } } - change_pc(R15); - ARM7_CHECKIRQ; /* All instructions remove 3 cycles.. Others taking less / more will have adjusted this # prior to here */ diff --git a/src/emu/cpu/asap/asap.c b/src/emu/cpu/asap/asap.c index ffd0eaa897b..6a2212f1451 100644 --- a/src/emu/cpu/asap/asap.c +++ b/src/emu/cpu/asap/asap.c @@ -266,7 +266,6 @@ static void (*const conditiontable[16])(asap_state *) = ***************************************************************************/ #define ROPCODE(A,pc) memory_decrypted_read_dword((A)->program, pc) -#define UPDATEPC(A) change_pc((A)->pc) INLINE UINT8 READBYTE(asap_state *asap, offs_t address) @@ -361,7 +360,6 @@ INLINE void generate_exception(asap_state *asap, int exception) asap->pc = 0x40 * exception; asap->nextpc = ~0; - UPDATEPC(asap); asap->icount--; } @@ -462,8 +460,6 @@ static CPU_RESET( asap ) asap->nextpc = ~0; asap->irq_state = 0; asap->irq_callback = NULL; - - UPDATEPC(asap); } @@ -512,7 +508,6 @@ static CPU_EXECUTE( asap ) /* check for IRQs */ asap->icount = cycles; check_irqs(asap); - UPDATEPC(asap); /* core execution loop */ if ((device->machine->debug_flags & DEBUG_FLAG_ENABLED) == 0) @@ -615,7 +610,6 @@ static void bsp(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -631,7 +625,6 @@ static void bmz(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -647,7 +640,6 @@ static void bgt(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -663,7 +655,6 @@ static void ble(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -679,7 +670,6 @@ static void bge(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -695,7 +685,6 @@ static void blt(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -711,7 +700,6 @@ static void bhi(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -727,7 +715,6 @@ static void bls(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -743,7 +730,6 @@ static void bcc(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -759,7 +745,6 @@ static void bcs(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -775,7 +760,6 @@ static void bpl(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -791,7 +775,6 @@ static void bmi(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -807,7 +790,6 @@ static void bne(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -823,7 +805,6 @@ static void beq(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -839,7 +820,6 @@ static void bvc(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -855,7 +835,6 @@ static void bvs(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -872,7 +851,6 @@ static void bsr(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -885,7 +863,6 @@ static void bsr_0(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - /*UPDATEPC(asap);*/ execute_instruction(asap); asap->icount--; @@ -1621,7 +1598,6 @@ static void jsr(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - UPDATEPC(asap); execute_instruction(asap); asap->icount--; @@ -1634,7 +1610,6 @@ static void jsr_0(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - UPDATEPC(asap); execute_instruction(asap); asap->icount--; @@ -1649,7 +1624,6 @@ static void jsr_c(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - UPDATEPC(asap); execute_instruction(asap); asap->icount--; @@ -1664,7 +1638,6 @@ static void jsr_c0(asap_state *asap) fetch_instruction(asap); asap->pc = asap->nextpc; asap->nextpc = ~0; - UPDATEPC(asap); execute_instruction(asap); asap->icount--; diff --git a/src/emu/cpu/ccpu/ccpu.c b/src/emu/cpu/ccpu/ccpu.c index a1ac88e998b..e4256bcfa38 100644 --- a/src/emu/cpu/ccpu/ccpu.c +++ b/src/emu/cpu/ccpu/ccpu.c @@ -112,7 +112,6 @@ static CPU_SET_CONTEXT( ccpu ) /* copy the context */ if (src) ccpu = *(ccpuRegs *)src; - change_pc(ccpu.PC); } @@ -296,7 +295,6 @@ static CPU_EXECUTE( ccpu ) /* T4K */ case 0x50: ccpu.PC = (ccpu.P << 12) + ccpu.J; - change_pc(ccpu.PC); NEXT_ACC_B(); CYCLES(4); break; diff --git a/src/emu/cpu/drcfe.c b/src/emu/cpu/drcfe.c index f5aa67632e1..17070fce1d1 100644 --- a/src/emu/cpu/drcfe.c +++ b/src/emu/cpu/drcfe.c @@ -301,7 +301,6 @@ static opcode_desc *describe_one(drcfe_state *drcfe, offs_t curpc, const opcode_ } /* get a pointer to the physical address */ - change_pc(desc->physpc); desc->opptr.v = memory_decrypted_read_ptr(drcfe->program, desc->physpc ^ drcfe->codexor); assert(desc->opptr.v != NULL); if (desc->opptr.v == NULL) diff --git a/src/emu/cpu/dsp32/dsp32.c b/src/emu/cpu/dsp32/dsp32.c index 94a1c801660..2a1524a003f 100644 --- a/src/emu/cpu/dsp32/dsp32.c +++ b/src/emu/cpu/dsp32/dsp32.c @@ -336,7 +336,6 @@ static CPU_SET_CONTEXT( dsp32c ) /* copy the context */ if (src) dsp32 = *(dsp32_regs *)src; - change_pc(dsp32.PC); /* check for IRQs */ check_irqs(); @@ -365,7 +364,6 @@ static CPU_RESET( dsp32c ) { /* reset goes to 0 */ dsp32.PC = 0; - change_pc(dsp32.PC); /* clear some registers */ dsp32.pcw &= 0x03ff; diff --git a/src/emu/cpu/dsp32/dsp32ops.c b/src/emu/cpu/dsp32/dsp32ops.c index e9b1e731341..ae294d8bb18 100644 --- a/src/emu/cpu/dsp32/dsp32ops.c +++ b/src/emu/cpu/dsp32/dsp32ops.c @@ -692,8 +692,6 @@ static void nop(void) return; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); - } @@ -702,7 +700,6 @@ static void goto_t(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } @@ -713,7 +710,6 @@ static void goto_pl(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -725,7 +721,6 @@ static void goto_mi(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -737,7 +732,6 @@ static void goto_ne(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -749,7 +743,6 @@ static void goto_eq(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -761,7 +754,6 @@ static void goto_vc(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -773,7 +765,6 @@ static void goto_vs(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -785,7 +776,6 @@ static void goto_cc(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -797,7 +787,6 @@ static void goto_cs(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -809,7 +798,6 @@ static void goto_ge(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -821,7 +809,6 @@ static void goto_lt(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -833,7 +820,6 @@ static void goto_gt(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -845,7 +831,6 @@ static void goto_le(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -857,7 +842,6 @@ static void goto_hi(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -869,7 +853,6 @@ static void goto_ls(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -881,7 +864,6 @@ static void goto_auc(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -893,7 +875,6 @@ static void goto_aus(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -905,7 +886,6 @@ static void goto_age(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -917,7 +897,6 @@ static void goto_alt(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -929,7 +908,6 @@ static void goto_ane(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -941,7 +919,6 @@ static void goto_aeq(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -953,7 +930,6 @@ static void goto_avc(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -965,7 +941,6 @@ static void goto_avs(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -977,7 +952,6 @@ static void goto_agt(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -989,7 +963,6 @@ static void goto_ale(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -1100,7 +1073,6 @@ static void dec_goto(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } } @@ -1113,7 +1085,6 @@ static void call(void) dsp32.r[mr] = dsp32.PC + 4; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (INT16)op); - change_pc(dsp32.PC); } @@ -1122,7 +1093,6 @@ static void goto24(void) UINT32 op = OP; execute_one(); dsp32.PC = TRUNCATE24(REG24((op >> 16) & 0x1f) + (op & 0xffff) + ((op >> 5) & 0xff0000)); - change_pc(dsp32.PC); } @@ -1134,7 +1104,6 @@ static void call24(void) dsp32.r[mr] = dsp32.PC + 4; execute_one(); dsp32.PC = (op & 0xffff) + ((op >> 5) & 0xff0000); - change_pc(dsp32.PC); } diff --git a/src/emu/cpu/dsp56k/dsp56ops.c b/src/emu/cpu/dsp56k/dsp56ops.c index 6cba8a2cf62..4984c58568c 100644 --- a/src/emu/cpu/dsp56k/dsp56ops.c +++ b/src/emu/cpu/dsp56k/dsp56ops.c @@ -594,7 +594,6 @@ static void execute_one(void) if (size != 0x1337) { PC += size; - change_pc(PC); dsp56k_process_loop(); dsp56k_process_rep(size); @@ -1081,7 +1080,6 @@ static void execute_one(void) /* Must have been a good opcode */ PC += size; - change_pc(PC); dsp56k_process_loop(); dsp56k_process_rep(size); @@ -2384,7 +2382,6 @@ static size_t dsp56k_op_bcc(const UINT16 op, const UINT16 op2, UINT8* cycles) core.ppc = PC; PC += offset; - change_pc(PC); cycles += 4; return 0; @@ -2413,7 +2410,6 @@ static size_t dsp56k_op_bcc_1(const UINT16 op, UINT8* cycles) core.ppc = PC; PC += offset; - change_pc(PC) ; cycles += 4; return 0; @@ -2457,7 +2453,6 @@ static size_t dsp56k_op_bra_1(const UINT16 op, UINT8* cycles) /* Jump */ core.ppc = PC; PC += branchOffset; - change_pc(PC); /* S L E U N Z V C */ /* - - - - - - - - */ @@ -2483,7 +2478,6 @@ static size_t dsp56k_op_brkcc(const UINT16 op, UINT8* cycles) /* TODO: I think this PC = LA thing is off-by-1, but it's working this way because its consistently so */ core.ppc = PC; PC = LA; - change_pc(PC); SR = SSL; /* TODO: A-83. I believe only the Loop Flag and Forever Flag come back here. */ SP--; @@ -2524,7 +2518,6 @@ static size_t dsp56k_op_bscc(const UINT16 op, const UINT16 op2, UINT8* cycles) /* Change */ core.ppc = PC; PC = PC + (INT16)op2; - change_pc(PC); } /* S L E U N Z V C */ @@ -2555,7 +2548,6 @@ static size_t dsp56k_op_bsr(const UINT16 op, const UINT16 op2, UINT8* cycles) /* Change */ core.ppc = PC; PC = PC + (INT16)op2; - change_pc(PC); /* S L E U N Z V C */ /* - - - - - - - - */ @@ -2813,7 +2805,6 @@ static size_t dsp56k_op_jmp(const UINT16 op, const UINT16 op2, UINT8* cycles) { core.ppc = PC; PC = op2; - change_pc(PC); /* S L E U N Z V C */ /* - - - - - - - - */ @@ -2830,7 +2821,6 @@ static size_t dsp56k_op_jmp_1(const UINT16 op, UINT8* cycles) core.ppc = PC; PC = *((UINT16*)R.addr); - change_pc(PC); /* S L E U N Z V C */ /* - - - - - - - - */ @@ -2858,7 +2848,6 @@ static size_t dsp56k_op_jscc(const UINT16 op, const UINT16 op2, UINT8* cycles) core.ppc = PC; PC = branchOffset; - change_pc(PC); cycles += 4; /* TODO: +jx oscillator clock cycles */ return 0; @@ -2897,7 +2886,6 @@ static size_t dsp56k_op_jsr(const UINT16 op, const UINT16 op2, UINT8* cycles) core.ppc = PC; PC = branchOffset; - change_pc(PC); /* S L E U N Z V C */ /* - - - - - - - - */ @@ -3569,7 +3557,6 @@ static size_t dsp56k_op_rti(const UINT16 op, UINT8* cycles) { core.ppc = PC; PC = SSH; - change_pc(PC); SR = SSL; SP = SP - 1; @@ -3587,7 +3574,6 @@ static size_t dsp56k_op_rts(const UINT16 op, UINT8* cycles) /* Pop */ core.ppc = PC; PC = SSH; - change_pc(PC); /* SR = SSL; The status register is not affected. */ @@ -4255,7 +4241,6 @@ static void dsp56k_process_loop(void) core.ppc = PC; PC = SSH; - change_pc(PC); } } else if (LF_bit()) @@ -4277,7 +4262,6 @@ static void dsp56k_process_loop(void) { LC--; PC = SSH; - change_pc(PC); } } } @@ -4300,7 +4284,6 @@ static void dsp56k_process_rep(size_t repSize) { LC--; PC -= repSize; /* A little strange - rewind by the size of the rep'd op */ - change_pc(PC); } } } diff --git a/src/emu/cpu/dsp56k/dsp56pcu.c b/src/emu/cpu/dsp56k/dsp56pcu.c index 07766f8ae39..e7fe558c36a 100644 --- a/src/emu/cpu/dsp56k/dsp56pcu.c +++ b/src/emu/cpu/dsp56k/dsp56pcu.c @@ -289,7 +289,6 @@ static void pcu_service_interrupts(void) core.ppc = PC; PC = irq_vector; - change_pc(PC); // TODO: 5-9 5-11 Gotta' Clear HC (HCP gets it too) when taking this exception! HC_bit_set(0); diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/emu/cpu/e132xs/e132xs.c index 1407fb0d01c..645bf31654c 100644 --- a/src/emu/cpu/e132xs/e132xs.c +++ b/src/emu/cpu/e132xs/e132xs.c @@ -709,7 +709,6 @@ INLINE void set_global_register(UINT8 code, UINT32 val) if( code == PC_REGISTER ) { SET_PC(val); - change_pc(PC); } else if( code == SR_REGISTER ) { @@ -1266,7 +1265,6 @@ INLINE void execute_br(struct regs_decode *decode) { PPC = PC; PC += EXTRA_S; - change_pc(PC); SET_M(0); hyperstone_ICount -= hyperstone.clock_cycles_2; @@ -1304,7 +1302,6 @@ static void execute_trap(UINT32 addr) PPC = PC; PC = addr; - change_pc(PC); hyperstone_ICount -= hyperstone.clock_cycles_2; } @@ -1334,7 +1331,6 @@ static void execute_int(UINT32 addr) PPC = PC; PC = addr; - change_pc(PC); hyperstone_ICount -= hyperstone.clock_cycles_2; } @@ -1363,7 +1359,6 @@ static void execute_exception(UINT32 addr) PPC = PC; PC = addr; - change_pc(PC); DEBUG_PRINTF(("EXCEPTION! PPC = %08X PC = %08X\n",PPC-2,PC-2)); hyperstone_ICount -= hyperstone.clock_cycles_2; @@ -1403,7 +1398,6 @@ static void execute_software(struct regs_decode *decode) PPC = PC; PC = addr; - change_pc(PC); } @@ -1697,7 +1691,6 @@ static CPU_RESET( hyperstone ) set_global_register(TPR_REGISTER, 0xc000000); PC = get_trap_addr(TRAPNO_RESET); - change_pc(PC); SET_FP(0); SET_FL(2); @@ -1785,7 +1778,6 @@ INLINE void hyperstone_movd(struct regs_decode *decode) PPC = PC; PC = SET_PC(SREG); - change_pc(PC); SR = (SREGF & 0xffe00000) | ((SREG & 0x01) << 18 ) | (SREGF & 0x3ffff); if (hyperstone.intblock < 1) hyperstone.intblock = 1; @@ -4502,7 +4494,6 @@ INLINE void hyperstone_call(struct regs_decode *decode) PPC = PC; PC = EXTRA_S; // const value - change_pc(PC); hyperstone.intblock = 2; @@ -4759,9 +4750,9 @@ static CPU_SET_INFO( hyperstone ) /* --- the following bits of info are set as 64-bit signed integers --- */ case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + E132XS_PC: PC = info->i; change_pc(PC); break; - case CPUINFO_INT_REGISTER + E132XS_SR: SR = info->i; break; - case CPUINFO_INT_REGISTER + E132XS_FER: FER = info->i; break; + case CPUINFO_INT_REGISTER + E132XS_PC: PC = info->i; break; + case CPUINFO_INT_REGISTER + E132XS_SR: SR = info->i; break; + case CPUINFO_INT_REGISTER + E132XS_FER: FER = info->i; break; case CPUINFO_INT_REGISTER + E132XS_G3: set_global_register(3, info->i); break; case CPUINFO_INT_REGISTER + E132XS_G4: set_global_register(4, info->i); break; case CPUINFO_INT_REGISTER + E132XS_G5: set_global_register(5, info->i); break; diff --git a/src/emu/cpu/g65816/g65816.h b/src/emu/cpu/g65816/g65816.h index cc12e672d3f..90e62e47e58 100644 --- a/src/emu/cpu/g65816/g65816.h +++ b/src/emu/cpu/g65816/g65816.h @@ -97,7 +97,7 @@ CPU_GET_INFO( g65816 ); #define g65816_read_8(addr) memory_read_byte_8be(g65816i_cpu.program, addr) #define g65816_write_8(addr,data) memory_write_byte_8be(g65816i_cpu.program, addr,data) #define g65816_read_8_immediate(A) memory_read_byte_8be(g65816i_cpu.program, A) -#define g65816_jumping(A) change_pc(A) +#define g65816_jumping(A) #define g65816_branching(A) diff --git a/src/emu/cpu/h6280/h6280ops.h b/src/emu/cpu/h6280/h6280ops.h index ec3970217c5..0467336a56f 100644 --- a/src/emu/cpu/h6280/h6280ops.h +++ b/src/emu/cpu/h6280/h6280ops.h @@ -28,7 +28,6 @@ #define S h6280.sp.b.l #define TRANSLATED(addr) ((h6280.mmr[(addr)>>13] << 13) | ((addr)&0x1fff)) -//#define CHANGE_PC do { offs_t temp = TRANSLATED(PCW); change_pc(temp); } while (0) #define CHANGE_PC #define H6280_CYCLES(cyc) \ { \ @@ -80,7 +79,6 @@ P = (P & ~_fD) | _fI; /* knock out D and set I flag */ \ PCL = RDMEM(vector); \ PCH = RDMEM((vector+1)); \ - CHANGE_PC; \ } #define CHECK_AND_TAKE_IRQ_LINES \ @@ -203,7 +201,6 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { PCW++; \ EAW = PCW + (signed char)tmp; \ PCD = EAD; \ - CHANGE_PC; \ } \ else \ { \ @@ -568,7 +565,6 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { P = (P & ~_fD) | _fI; \ PCL = RDMEM(H6280_IRQ2_VEC); \ PCH = RDMEM(H6280_IRQ2_VEC+1); \ - CHANGE_PC /* 6280 ******************************************************** * BSR Branch to subroutine @@ -766,7 +762,6 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { #define JMP \ CLEAR_T; \ PCD = EAD; \ - CHANGE_PC /* 6280 ******************************************************** * JSR Jump to subroutine @@ -779,7 +774,6 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { PUSH(PCH); \ PUSH(PCL); \ PCD = EAD; \ - CHANGE_PC /* 6280 ******************************************************** * LDA Load accumulator @@ -958,7 +952,6 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { ((P & _fZ) ^ _fZ); \ PULL(PCL); \ PULL(PCH); \ - CHANGE_PC; \ CHECK_IRQ_LINES #else @@ -967,7 +960,6 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { P |= _fB; \ PULL(PCL); \ PULL(PCH); \ - CHANGE_PC; \ CHECK_IRQ_LINES #endif @@ -979,8 +971,7 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { CLEAR_T; \ PULL(PCL); \ PULL(PCH); \ - PCW++; \ - CHANGE_PC + PCW++; /* 6280 ******************************************************** * SAX Swap accumulator and index X @@ -1204,8 +1195,7 @@ INLINE void WRMEM(offs_t addr, UINT8 data) { if (tmp&0x10) h6280.mmr[4] = A; \ if (tmp&0x20) h6280.mmr[5] = A; \ if (tmp&0x40) h6280.mmr[6] = A; \ - if (tmp&0x80) h6280.mmr[7] = A; \ - CHANGE_PC + if (tmp&0x80) h6280.mmr[7] = A /* 6280 ******************************************************** * TAX Transfer accumulator to index X diff --git a/src/emu/cpu/h83002/h8_16.c b/src/emu/cpu/h83002/h8_16.c index 82179f5876a..fe715c55750 100644 --- a/src/emu/cpu/h83002/h8_16.c +++ b/src/emu/cpu/h83002/h8_16.c @@ -247,7 +247,6 @@ static CPU_RESET(h8) h8->h8err = 0; h8->pc = h8_mem_read32(h8, 0) & 0xffffff; - change_pc(h8->pc); // disable timers h8->h8TSTR = 0; @@ -270,7 +269,6 @@ static void h8_GenException(h83xx_state *h8, UINT8 vectornr) if (h8->h8uiflag == 0) h8_set_ccr(h8, h8_get_ccr(h8) | 0x40); h8->pc = h8_mem_read32(h8, vectornr * 4) & 0xffffff; - change_pc(h8->pc); // I couldn't find timing info for exceptions, so this is a guess (based on JSR/BSR) H8_IFETCH_TIMING(2); @@ -373,9 +371,9 @@ static CPU_SET_INFO( h8 ) h83xx_state *h8 = device->token; switch(state) { - case CPUINFO_INT_PC: h8->pc = info->i; change_pc(h8->pc); break; - case CPUINFO_INT_REGISTER + H8_PC: h8->pc = info->i; change_pc(h8->pc); break; - case CPUINFO_INT_REGISTER + H8_CCR: h8_set_ccr(h8, info->i); break; + case CPUINFO_INT_PC: h8->pc = info->i; break; + case CPUINFO_INT_REGISTER + H8_PC: h8->pc = info->i; break; + case CPUINFO_INT_REGISTER + H8_CCR: h8_set_ccr(h8, info->i); break; case CPUINFO_INT_REGISTER + H8_E0: h8->regs[0] = info->i; break; case CPUINFO_INT_REGISTER + H8_E1: h8->regs[1] = info->i; break; diff --git a/src/emu/cpu/h83002/h8_8.c b/src/emu/cpu/h83002/h8_8.c index aa3345f637b..76afb3e644d 100644 --- a/src/emu/cpu/h83002/h8_8.c +++ b/src/emu/cpu/h83002/h8_8.c @@ -247,7 +247,6 @@ static CPU_RESET(h8bit) h8->h8err = 0; h8->pc = h8_mem_read16(h8, 0); - change_pc(h8->pc); // disable timers h8->h8TSTR = 0; @@ -267,7 +266,6 @@ static void h8_GenException(h83xx_state *h8, UINT8 vectornr) if (h8->h8uiflag == 0) h8_set_ccr(h8, h8_get_ccr(h8) | 0x40); h8->pc = h8_mem_read16(h8, vectornr * 2) & 0xffff; - change_pc(h8->pc); // I couldn't find timing info for exceptions, so this is a guess (based on JSR/BSR) H8_IFETCH_TIMING(2); @@ -364,9 +362,9 @@ static CPU_SET_INFO( h8 ) h83xx_state *h8 = device->token; switch(state) { - case CPUINFO_INT_PC: h8->pc = info->i; change_pc(h8->pc); break; - case CPUINFO_INT_REGISTER + H8_PC: h8->pc = info->i; change_pc(h8->pc); break; - case CPUINFO_INT_REGISTER + H8_CCR: h8_set_ccr(h8, info->i); break; + case CPUINFO_INT_PC: h8->pc = info->i; break; + case CPUINFO_INT_REGISTER + H8_PC: h8->pc = info->i; break; + case CPUINFO_INT_REGISTER + H8_CCR: h8_set_ccr(h8, info->i); break; case CPUINFO_INT_REGISTER + H8_E0: h8->regs[0] = info->i; break; case CPUINFO_INT_REGISTER + H8_E1: h8->regs[1] = info->i; break; diff --git a/src/emu/cpu/h83002/h8ops.h b/src/emu/cpu/h83002/h8ops.h index 2f26e717d9f..738f6215ee5 100644 --- a/src/emu/cpu/h83002/h8ops.h +++ b/src/emu/cpu/h83002/h8ops.h @@ -151,7 +151,6 @@ static CPU_EXECUTE(h8) // bcc @xx:8 sdata8 = (opcode & 0xff); if( h8_branch(h8, (opcode >> 8) & 0xf) == 1) h8->pc += sdata8; - change_pc(h8->pc); break; case 0x5: h8_group5(h8, opcode); @@ -1222,7 +1221,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) h8_setreg32(h8, H8_SP, h8_getreg32(h8, H8_SP)+4); // extended mode h8->pc = udata32; - change_pc(h8->pc); H8_IFETCH_TIMING(2); H8_STACK_TIMING(2); H8_IOP_TIMING(2); @@ -1240,7 +1238,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) h8_setreg32(h8, H8_SP, h8_getreg32(h8, H8_SP)-4); h8_mem_write32(h8, h8_getreg32(h8, H8_SP), h8->pc); h8->pc = h8->pc + sdata8; - change_pc(h8->pc); H8_IFETCH_TIMING(2); H8_STACK_TIMING(2); break; case 0x6: @@ -1258,7 +1255,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) h8_setreg16(h8, H8_SP, h8_getreg16(h8, H8_SP)+2); h8->pc = udata16; - change_pc(h8->pc); } else { @@ -1268,7 +1264,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) // extended mode h8->pc = udata32; - change_pc(h8->pc); } // must do this last, because set_ccr() does a check_irq() h8_set_ccr(h8, (UINT8)udata16); @@ -1299,7 +1294,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) sdata16 = h8_mem_read16(h8, h8->pc); h8->pc += 2; if( h8_branch(h8, (opcode >> 4) & 0xf) == 1) h8->pc += sdata16; - change_pc(h8->pc); H8_IOP_TIMING(2) } break; @@ -1308,7 +1302,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) address24 = h8_getreg32(h8, (opcode>>4)&7); address24 &= H8_ADDR_MASK; h8->pc = address24; - change_pc(h8->pc); H8_IFETCH_TIMING(2); break; // jmp @aa:24 @@ -1316,7 +1309,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) address24 = h8_mem_read32(h8, h8->pc-2); address24 &= H8_ADDR_MASK; h8->pc = address24; - change_pc(h8->pc); H8_IFETCH_TIMING(2); H8_IOP_TIMING(2); break; @@ -1334,7 +1326,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) h8_setreg32(h8, H8_SP, h8_getreg32(h8, H8_SP)-4); h8_mem_write32(h8, h8_getreg32(h8, H8_SP), h8->pc+2); h8->pc += sdata16 + 2; - change_pc(h8->pc); H8_IFETCH_TIMING(2); H8_STACK_TIMING(2); H8_IOP_TIMING(2); } break; @@ -1346,7 +1337,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) h8_setreg32(h8, H8_SP, h8_getreg32(h8, H8_SP)-4); h8_mem_write32(h8, h8_getreg32(h8, H8_SP), h8->pc); h8->pc = address24; - change_pc(h8->pc); H8_STACK_TIMING(2); H8_IOP_TIMING(2); break; @@ -1358,7 +1348,6 @@ static void h8_group5(h83xx_state *h8, UINT16 opcode) h8_setreg32(h8, H8_SP, h8_getreg32(h8, H8_SP)-4); h8_mem_write32(h8, h8_getreg32(h8, H8_SP), h8->pc+2); h8->pc = address24; - change_pc(h8->pc); H8_IFETCH_TIMING(2); H8_STACK_TIMING(2); H8_IOP_TIMING(2); diff --git a/src/emu/cpu/hd6309/6309ops.c b/src/emu/cpu/hd6309/6309ops.c index 0590023390a..246b54c7149 100644 --- a/src/emu/cpu/hd6309/6309ops.c +++ b/src/emu/cpu/hd6309/6309ops.c @@ -37,7 +37,6 @@ OP_HANDLER( illegal ) PUSHBYTE(CC); PCD = RM16(m68_state, 0xfff0); - CHANGE_PC; } static void IIError(m68_state_t *m68_state) @@ -217,7 +216,6 @@ OP_HANDLER( jmp_di ) { DIRECT; PCD = EAD; - CHANGE_PC; } /* $0F CLR direct -0100 */ @@ -273,7 +271,6 @@ OP_HANDLER( lbra ) { IMMWORD(EAP); PC += EA; - CHANGE_PC; if ( EA == 0xfffd ) /* EHC 980508 speed up busy loop */ if ( m68_state->icount > 0) @@ -286,7 +283,6 @@ OP_HANDLER( lbsr ) IMMWORD(EAP); PUSHWORD(pPC); PC += EA; - CHANGE_PC; } /* $18 ILLEGAL */ @@ -393,7 +389,7 @@ OP_HANDLER( exg ) case 2: Y = t2; break; case 3: U = t2; break; case 4: S = t2; break; - case 5: PC = t2; CHANGE_PC; break; + case 5: PC = t2; break; case 6: W = t2; break; case 7: V = t2; break; case 8: A = (promote ? t2 >> 8 : t2); break; @@ -411,7 +407,7 @@ OP_HANDLER( exg ) case 2: Y = t1; break; case 3: U = t1; break; case 4: S = t1; break; - case 5: PC = t1; CHANGE_PC; break; + case 5: PC = t1; break; case 6: W = t1; break; case 7: V = t1; break; case 8: A = (promote ? t1 >> 8 : t1); break; @@ -463,7 +459,7 @@ OP_HANDLER( tfr ) case 2: Y = t; break; case 3: U = t; break; case 4: S = t; break; - case 5: PC = t; CHANGE_PC; break; + case 5: PC = t; break; case 6: W = t; break; case 7: V = t; break; case 8: A = (promote ? t >> 8 : t); break; @@ -483,7 +479,6 @@ OP_HANDLER( bra ) UINT8 t; IMMBYTE(t); PC += SIGNED(t); - CHANGE_PC; /* JB 970823 - speed up busy loops */ if( t == 0xfe ) if( m68_state->icount > 0 ) m68_state->icount = 0; @@ -730,11 +725,6 @@ OP_HANDLER( addr_r ) CLR_NZVC; *dst16Reg = r16; SET_FLAGS16(*src16Reg,*dst16Reg,r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -763,11 +753,6 @@ OP_HANDLER( adcr ) CLR_NZVC; *dst16Reg = r16; SET_FLAGS16(*src16Reg,*dst16Reg,r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -797,11 +782,6 @@ OP_HANDLER( subr ) CLR_NZVC; *dst16Reg = r16; SET_FLAGS16((UINT32)*dst16Reg,(UINT32)*src16Reg,r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -830,11 +810,6 @@ OP_HANDLER( sbcr ) CLR_NZVC; *dst16Reg = r16; SET_FLAGS16((UINT32)*dst16Reg,(UINT32)*src16Reg,r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -863,11 +838,6 @@ OP_HANDLER( andr ) CLR_NZV; *dst16Reg = r16; SET_NZ16(r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -896,11 +866,6 @@ OP_HANDLER( orr ) CLR_NZV; *dst16Reg = r16; SET_NZ16(r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -929,11 +894,6 @@ OP_HANDLER( eorr ) CLR_NZV; *dst16Reg = r16; SET_NZ16(r16); - - if ( (tb&15) == 5 ) - { - CHANGE_PC; - } } else { @@ -998,7 +958,6 @@ OP_HANDLER( tfmpp ) } PCD = PCD - 3; - CHANGE_PC; W--; } else @@ -1033,7 +992,6 @@ OP_HANDLER( tfmmm ) } PCD = PCD - 3; - CHANGE_PC; W--; } else @@ -1068,7 +1026,6 @@ OP_HANDLER( tfmpc ) } PCD = PCD - 3; - CHANGE_PC; W--; } else @@ -1103,7 +1060,6 @@ OP_HANDLER( tfmcp ) } PCD = PCD - 3; - CHANGE_PC; W--; } else @@ -1182,7 +1138,7 @@ OP_HANDLER( puls ) if( t&0x10 ) { PULLWORD(XD); m68_state->icount -= 2; } if( t&0x20 ) { PULLWORD(YD); m68_state->icount -= 2; } if( t&0x40 ) { PULLWORD(UD); m68_state->icount -= 2; } - if( t&0x80 ) { PULLWORD(PCD); CHANGE_PC; m68_state->icount -= 2; } + if( t&0x80 ) { PULLWORD(PCD); m68_state->icount -= 2; } /* HJB 990225: moved check after all PULLs */ if( t&0x01 ) { check_irq_lines(m68_state); } @@ -1227,7 +1183,7 @@ OP_HANDLER( pulu ) if( t&0x10 ) { PULUWORD(XD); m68_state->icount -= 2; } if( t&0x20 ) { PULUWORD(YD); m68_state->icount -= 2; } if( t&0x40 ) { PULUWORD(SD); m68_state->icount -= 2; } - if( t&0x80 ) { PULUWORD(PCD); CHANGE_PC; m68_state->icount -= 2; } + if( t&0x80 ) { PULUWORD(PCD); m68_state->icount -= 2; } /* HJB 990225: moved check after all PULLs */ if( t&0x01 ) { check_irq_lines(m68_state); } @@ -1239,7 +1195,6 @@ OP_HANDLER( pulu ) OP_HANDLER( rts ) { PULLWORD(PCD); - CHANGE_PC; } /* $3A ABX inherent ----- */ @@ -1271,7 +1226,6 @@ OP_HANDLER( rti ) PULLWORD(UD); } PULLWORD(PCD); - CHANGE_PC; check_irq_lines(m68_state); /* HJB 990116 */ } @@ -1337,7 +1291,6 @@ OP_HANDLER( swi ) PUSHBYTE(CC); CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD=RM16(m68_state, 0xfffa); - CHANGE_PC; } /* $1130 BAND */ @@ -1508,7 +1461,6 @@ OP_HANDLER( swi2 ) PUSHBYTE(A); PUSHBYTE(CC); PCD = RM16(m68_state, 0xfff4); - CHANGE_PC; } /* $113F SWI3 absolute indirect ----- */ @@ -1529,7 +1481,6 @@ OP_HANDLER( swi3 ) PUSHBYTE(A); PUSHBYTE(CC); PCD = RM16(m68_state, 0xfff2); - CHANGE_PC; } /* $40 NEGA inherent ?**** */ @@ -2180,7 +2131,6 @@ OP_HANDLER( jmp_ix ) { fetch_effective_address(m68_state); PCD = EAD; - CHANGE_PC; } /* $6F CLR indexed -0100 */ @@ -2334,7 +2284,6 @@ OP_HANDLER( jmp_ex ) { EXTENDED; PCD = EAD; - CHANGE_PC; } /* $7F CLR extended -0100 */ @@ -2555,7 +2504,6 @@ OP_HANDLER( bsr ) IMMBYTE(t); PUSHWORD(pPC); PC += SIGNED(t); - CHANGE_PC; } /* $8E LDX (LDY) immediate -**0- */ @@ -2905,7 +2853,6 @@ OP_HANDLER( jsr_di ) DIRECT; PUSHWORD(pPC); PCD = EAD; - CHANGE_PC; } /* $9E LDX (LDY) direct -**0- */ @@ -3297,7 +3244,6 @@ OP_HANDLER( jsr_ix ) fetch_effective_address(m68_state); PUSHWORD(pPC); PCD = EAD; - CHANGE_PC; } /* $aE LDX (LDY) indexed -**0- */ @@ -3686,7 +3632,6 @@ OP_HANDLER( jsr_ex ) EXTENDED; PUSHWORD(pPC); PCD = EAD; - CHANGE_PC; } /* $bE LDX (LDY) extended -**0- */ diff --git a/src/emu/cpu/hd6309/hd6309.c b/src/emu/cpu/hd6309/hd6309.c index 07d32507259..1176962112b 100644 --- a/src/emu/cpu/hd6309/hd6309.c +++ b/src/emu/cpu/hd6309/hd6309.c @@ -214,8 +214,6 @@ INLINE void fetch_effective_address( m68_state_t *m68_state ); #define EAD m68_state->ea.d #define EAP m68_state->ea -#define CHANGE_PC change_pc(PCD) - #define M6809_CWAI 8 /* set when CWAI is waiting for an interrupt */ #define M6809_SYNC 16 /* set when SYNC is waiting for an interrupt */ #define M6809_LDS 32 /* set when LDS occured at least once */ @@ -349,7 +347,6 @@ INLINE void fetch_effective_address( m68_state_t *m68_state ); if( f ) \ { \ PC += SIGNED(t); \ - CHANGE_PC; \ } \ } @@ -361,7 +358,6 @@ INLINE void fetch_effective_address( m68_state_t *m68_state ); if( !(MD & MD_EM) ) \ m68_state->icount -= 1; \ PC += t.w.l; \ - CHANGE_PC; \ } \ } @@ -459,7 +455,6 @@ static void check_irq_lines( m68_state_t *m68_state ) } CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD=RM16(m68_state, 0xfff6); - CHANGE_PC; (void)(*m68_state->irq_callback)(m68_state->device, HD6309_FIRQ_LINE); } else @@ -493,7 +488,6 @@ static void check_irq_lines( m68_state_t *m68_state ) } CC |= CC_II; /* inhibit IRQ */ PCD=RM16(m68_state, 0xfff8); - CHANGE_PC; (void)(*m68_state->irq_callback)(m68_state->device, HD6309_IRQ_LINE); } } @@ -577,7 +571,6 @@ static CPU_RESET( hd6309 ) CC |= CC_IF; /* FIRQ disabled */ PCD = RM16(m68_state, 0xfffe); - CHANGE_PC; UpdateState(m68_state); } @@ -630,7 +623,6 @@ static void set_irq_line(m68_state_t *m68_state, int irqline, int state) } CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD = RM16(m68_state, 0xfffc); - CHANGE_PC; } else if (irqline < 2) { @@ -1246,7 +1238,7 @@ static CPU_SET_INFO( hd6309 ) case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(m68_state, INPUT_LINE_NMI, info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + HD6309_PC: PC = info->i; CHANGE_PC; break; + case CPUINFO_INT_REGISTER + HD6309_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + HD6309_S: S = info->i; break; case CPUINFO_INT_REGISTER + HD6309_CC: CC = info->i; check_irq_lines(m68_state); break; diff --git a/src/emu/cpu/i386/i386.h b/src/emu/cpu/i386/i386.h index 7c1ea3a061c..c8fecfbc835 100644 --- a/src/emu/cpu/i386/i386.h +++ b/src/emu/cpu/i386/i386.h @@ -381,8 +381,6 @@ INLINE void CHANGE_PC(UINT32 pc) { translate_address(&address); } - - change_pc(address & I.a20_mask); } INLINE void NEAR_BRANCH(INT32 offs) @@ -398,8 +396,6 @@ INLINE void NEAR_BRANCH(INT32 offs) { translate_address(&address); } - - change_pc(address & I.a20_mask); } INLINE UINT8 FETCH(void) diff --git a/src/emu/cpu/i8085/i8085.c b/src/emu/cpu/i8085/i8085.c index beb60d9afc8..84c293943fe 100644 --- a/src/emu/cpu/i8085/i8085.c +++ b/src/emu/cpu/i8085/i8085.c @@ -1084,7 +1084,6 @@ INLINE void execute_one(int opcode) break; case 0xe9: i8085_ICount -= (I.cputype) ? 6 : 5; /* PCHL */ I.PC.d = I.HL.w.l; - change_pc(I.PC.d); break; case 0xea: i8085_ICount -= 10; /* JPE nnnn */ M_JMP( I.AF.b.l & VF ); @@ -1280,7 +1279,6 @@ static void Interrupt(void) case 0xc30000: /* JMP nnnn */ i8085_ICount -= 10; I.PC.d = I.IRQ1 & 0xffff; - change_pc(I.PC.d); break; default: switch( I.ISRV ) @@ -1294,7 +1292,6 @@ static void Interrupt(void) I.PC.d = I.IRQ1; else I.PC.d = 0x3c; - change_pc(I.PC.d); break; default: LOG(("i8085 take int $%02x\n", I.IRQ1)); @@ -1405,7 +1402,6 @@ static CPU_RESET( i8085 ) I.device = device; I.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM); I.io = memory_find_address_space(device, ADDRESS_SPACE_IO); - change_pc(I.PC.d); I.cputype = cputype_bak; } @@ -1435,7 +1431,6 @@ static CPU_SET_CONTEXT( i8085 ) if( src ) { I = *(i8085_Regs*)src; - change_pc(I.PC.d); } } @@ -1663,7 +1658,7 @@ static CPU_SET_INFO( i8085 ) case CPUINFO_INT_INPUT_STATE + I8085_RST75_LINE:i8085_set_irq_line(I8085_RST75_LINE, info->i); break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: i8085_set_irq_line(INPUT_LINE_NMI, info->i); break; - case CPUINFO_INT_PC: I.PC.w.l = info->i; change_pc(I.PC.d); break; + case CPUINFO_INT_PC: I.PC.w.l = info->i; break; case CPUINFO_INT_REGISTER + I8085_PC: I.PC.w.l = info->i; break; case CPUINFO_INT_SP: I.SP.w.l = info->i; break; case CPUINFO_INT_REGISTER + I8085_SP: I.SP.w.l = info->i; break; diff --git a/src/emu/cpu/i8085/i8085cpu.h b/src/emu/cpu/i8085/i8085cpu.h index 27919a1b42a..f1fed3c83a0 100644 --- a/src/emu/cpu/i8085/i8085cpu.h +++ b/src/emu/cpu/i8085/i8085cpu.h @@ -142,7 +142,6 @@ int q = I.AF.b.h+R; \ { \ i8085_ICount -= 6; \ M_POP(PC); \ - change_pc(I.PC.d); \ } \ } @@ -150,7 +149,6 @@ int q = I.AF.b.h+R; \ #define M_JMP(cc) { \ if (cc) { \ I.PC.w.l = ARG16(); \ - change_pc(I.PC.d); \ } else { \ I.PC.w.l += 2; \ i8085_ICount += (I.cputype) ? 3 : 0; \ @@ -166,7 +164,6 @@ int q = I.AF.b.h+R; \ i8085_ICount -= (I.cputype) ? 7 : 6 ; \ M_PUSH(PC); \ I.PC.d = a; \ - change_pc(I.PC.d); \ } else { \ I.PC.w.l += 2; \ i8085_ICount += (I.cputype) ? 2 : 0; \ @@ -176,7 +173,6 @@ int q = I.AF.b.h+R; \ #define M_RST(nn) { \ M_PUSH(PC); \ I.PC.d = 8 * nn; \ - change_pc(I.PC.d); \ } #define M_DSUB() { \ diff --git a/src/emu/cpu/i86/i86.c b/src/emu/cpu/i86/i86.c index f610a28c857..bc820a8e729 100644 --- a/src/emu/cpu/i86/i86.c +++ b/src/emu/cpu/i86/i86.c @@ -178,8 +178,6 @@ static CPU_RESET( i8086 ) I.base[CS] = SegBase(CS); I.pc = 0xffff0 & AMASK; ExpandFlags(I.flags); - - change_pc(I.pc); } static CPU_EXIT( i8086 ) @@ -204,7 +202,6 @@ static CPU_SET_CONTEXT( i8086 ) I.base[DS] = SegBase(DS); I.base[ES] = SegBase(ES); I.base[SS] = SegBase(SS); - change_pc(I.pc); } } diff --git a/src/emu/cpu/i86/i86.h b/src/emu/cpu/i86/i86.h index 3c7ff29861f..4b0334ca3fd 100644 --- a/src/emu/cpu/i86/i86.h +++ b/src/emu/cpu/i86/i86.h @@ -103,7 +103,7 @@ typedef enum { AH,AL,CH,CL,DH,DL,BH,BL,SPH,SPL,BPH,BPL,SIH,SIL,DIH,DIL } BREGS; #define FETCHOP (memory_decrypted_read_byte(I.program, FETCH_XOR(I.pc++))) #define PEEKOP(addr) (memory_decrypted_read_byte(I.program, FETCH_XOR(addr))) #define FETCHWORD(var) { var = memory_raw_read_byte(I.program, FETCH_XOR(I.pc)); var += (memory_raw_read_byte(I.program, FETCH_XOR(I.pc + 1)) << 8); I.pc += 2; } -#define CHANGE_PC(addr) change_pc(addr) +#define CHANGE_PC(addr) #define PUSH(val) { I.regs.w[SP] -= 2; WriteWord(((I.base[SS] + I.regs.w[SP]) & AMASK), val); } #define POP(var) { var = ReadWord(((I.base[SS] + I.regs.w[SP]) & AMASK)); I.regs.w[SP] += 2; } diff --git a/src/emu/cpu/i960/i960.c b/src/emu/cpu/i960/i960.c index 67dc03d29f7..6ea3de928b0 100644 --- a/src/emu/cpu/i960/i960.c +++ b/src/emu/cpu/i960/i960.c @@ -98,7 +98,6 @@ INLINE void send_iac(i960_state_t *i960, UINT32 adr) i960->SAT = iac[1]; i960->PRCB = iac[2]; i960->IP = iac[3]; - change_pc(i960->IP); break; default: fatalerror("I960: %x: IAC %08x %08x %08x %08x", i960->PIP, iac[0], iac[1], iac[2], iac[3]); @@ -377,7 +376,6 @@ INLINE void bxx(i960_state_t *i960, UINT32 opcode, int mask) { if(i960->AC & mask) { i960->IP += get_disp(i960, opcode); - change_pc(i960->IP); } } @@ -385,7 +383,6 @@ INLINE void bxx_s(i960_state_t *i960, UINT32 opcode, int mask) { if(i960->AC & mask) { i960->IP += get_disp_s(i960, opcode); - change_pc(i960->IP); } } @@ -547,8 +544,6 @@ static void do_call(i960_state_t *i960, UINT32 adr, int type, UINT32 stack) i960->r[I960_FP] = (i960->r[I960_SP] + 63) & ~63; i960->r[I960_SP] = i960->r[I960_FP] + 64; - - change_pc(i960->IP); } static void do_ret_0(i960_state_t *i960) @@ -580,7 +575,6 @@ static void do_ret_0(i960_state_t *i960) // mame_printf_debug("RET (type %d): FP %x, %x => %x, rcache_pos %d\n", type, i960->r[I960_FP], i960->IP, i960->r[I960_RIP], i960->rcache_pos); i960->IP = i960->r[I960_RIP]; - change_pc(i960->IP); } static void do_ret(i960_state_t *i960) @@ -618,7 +612,6 @@ INLINE void execute_op(i960_state_t *i960, UINT32 opcode) case 0x08: // b i960->icount--; i960->IP += get_disp(i960, opcode); - change_pc(i960->IP); break; case 0x09: // call @@ -633,14 +626,12 @@ INLINE void execute_op(i960_state_t *i960, UINT32 opcode) i960->icount -= 5; i960->r[0x1e] = i960->IP; i960->IP += get_disp(i960, opcode); - change_pc(i960->IP); break; case 0x10: // bno i960->icount--; if(!(i960->AC & 7)) { i960->IP += get_disp(i960, opcode); - change_pc(i960->IP); } break; @@ -729,7 +720,6 @@ INLINE void execute_op(i960_state_t *i960, UINT32 opcode) if(!(t2 & (1<<t1))) { i960->AC = (i960->AC & ~7) | 2; i960->IP += get_disp_s(i960, opcode); - change_pc(i960->IP); } else i960->AC &= ~7; break; @@ -789,7 +779,6 @@ INLINE void execute_op(i960_state_t *i960, UINT32 opcode) if(t2 & (1<<t1)) { i960->AC = (i960->AC & ~7) | 2; i960->IP += get_disp_s(i960, opcode); - change_pc(i960->IP); } else i960->AC &= ~7; break; @@ -1799,7 +1788,6 @@ INLINE void execute_op(i960_state_t *i960, UINT32 opcode) case 0x84: // bx i960->icount -= 3; i960->IP = get_ea(i960, opcode); - change_pc(i960->IP); break; case 0x85: // balx @@ -1807,7 +1795,6 @@ INLINE void execute_op(i960_state_t *i960, UINT32 opcode) t1 = get_ea(i960, opcode); i960->r[(opcode>>19)&0x1f] = i960->IP; i960->IP = t1; - change_pc(i960->IP); break; case 0x86: // callx @@ -2058,7 +2045,7 @@ static CPU_SET_INFO( i960 ) switch(state) { // Interfacing - case CPUINFO_INT_REGISTER + I960_IP: i960->IP = info->i; change_pc(i960->IP); break; + case CPUINFO_INT_REGISTER + I960_IP: i960->IP = info->i; break; case CPUINFO_INT_INPUT_STATE + I960_IRQ0: set_irq_line(i960, I960_IRQ0, info->i); break; case CPUINFO_INT_INPUT_STATE + I960_IRQ1: set_irq_line(i960, I960_IRQ1, info->i); break; case CPUINFO_INT_INPUT_STATE + I960_IRQ2: set_irq_line(i960, I960_IRQ2, info->i); break; diff --git a/src/emu/cpu/konami/konami.c b/src/emu/cpu/konami/konami.c index 02ee6ac6d33..2fffb9fb06b 100644 --- a/src/emu/cpu/konami/konami.c +++ b/src/emu/cpu/konami/konami.c @@ -131,7 +131,6 @@ static PAIR ea; /* effective address */ } \ CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ \ PCD = RM16(0xfff6); \ - change_pc(PC); /* TS 971002 */ \ (void)(*konami.irq_callback)(konami.device, KONAMI_FIRQ_LINE); \ } \ else \ @@ -159,7 +158,6 @@ static PAIR ea; /* effective address */ } \ CC |= CC_II; /* inhibit IRQ */ \ PCD = RM16(0xfff8); \ - change_pc(PC); /* TS 971002 */ \ (void)(*konami.irq_callback)(konami.device, KONAMI_IRQ_LINE); \ } @@ -291,7 +289,6 @@ CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N if( f ) \ { \ PC += SIGNED(t); \ - change_pc(PC); /* TS 971002 */ \ } \ } @@ -302,7 +299,6 @@ CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N { \ konami_ICount -= 1; \ PC += t.w.l; \ - change_pc(PC); /* TS 971002 */ \ } \ } @@ -381,7 +377,6 @@ static CPU_SET_CONTEXT( konami ) { if( src ) konami = *(konami_Regs*)src; - change_pc(PC); /* TS 971002 */ CHECK_IRQ_LINES; } @@ -422,7 +417,6 @@ static CPU_RESET( konami ) CC |= CC_IF; /* FIRQ disabled */ PCD = RM16(0xfffe); - change_pc(PC); /* TS 971002 */ } static CPU_EXIT( konami ) @@ -467,7 +461,6 @@ static void set_irq_line(int irqline, int state) } CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD = RM16(0xfffc); - change_pc(PC); /* TS 971002 */ } else if (irqline < 2) { @@ -533,7 +526,7 @@ static CPU_SET_INFO( konami ) case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(INPUT_LINE_NMI, info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + KONAMI_PC: PC = info->i; change_pc(PC); break; + case CPUINFO_INT_REGISTER + KONAMI_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + KONAMI_S: S = info->i; break; case CPUINFO_INT_REGISTER + KONAMI_CC: CC = info->i; CHECK_IRQ_LINES; break; diff --git a/src/emu/cpu/konami/konamops.c b/src/emu/cpu/konami/konamops.c index 808b2a58603..f7c9d411eed 100644 --- a/src/emu/cpu/konami/konamops.c +++ b/src/emu/cpu/konami/konamops.c @@ -147,7 +147,6 @@ INLINE void jmp_di( void ) { DIRECT; PCD=EAD; - change_pc(PCD); } /* $0F CLR direct -0100 */ @@ -192,7 +191,6 @@ INLINE void lbra( void ) { IMMWORD(ea); PC += EA; - change_pc(PCD); /* EHC 980508 speed up busy loop */ if( EA == 0xfffd && konami_ICount > 0 ) @@ -205,7 +203,6 @@ INLINE void lbsr( void ) IMMWORD(ea); PUSHWORD(pPC); PC += EA; - change_pc(PCD); } /* $18 ILLEGAL */ @@ -304,7 +301,6 @@ INLINE void bra( void ) UINT8 t; IMMBYTE(t); PC += SIGNED(t); - change_pc(PCD); /* JB 970823 - speed up busy loops */ if( t == 0xfe && konami_ICount > 0 ) konami_ICount = 0; @@ -547,7 +543,7 @@ INLINE void puls( void ) if( t&0x10 ) { PULLWORD(XD); konami_ICount -= 2; } if( t&0x20 ) { PULLWORD(YD); konami_ICount -= 2; } if( t&0x40 ) { PULLWORD(UD); konami_ICount -= 2; } - if( t&0x80 ) { PULLWORD(PCD); change_pc(PCD); konami_ICount -= 2; } + if( t&0x80 ) { PULLWORD(PCD); konami_ICount -= 2; } /* check after all PULLs */ if( t&0x01 ) { CHECK_IRQ_LINES; } @@ -580,7 +576,7 @@ INLINE void pulu( void ) if( t&0x10 ) { PULUWORD(XD); konami_ICount -= 2; } if( t&0x20 ) { PULUWORD(YD); konami_ICount -= 2; } if( t&0x40 ) { PULUWORD(SD); konami_ICount -= 2; } - if( t&0x80 ) { PULUWORD(PCD); change_pc(PCD); konami_ICount -= 2; } + if( t&0x80 ) { PULUWORD(PCD); konami_ICount -= 2; } /* check after all PULLs */ if( t&0x01 ) { CHECK_IRQ_LINES; } @@ -592,7 +588,6 @@ INLINE void pulu( void ) INLINE void rts( void ) { PULLWORD(PCD); - change_pc(PCD); } /* $3A ABX inherent ----- */ @@ -616,7 +611,6 @@ INLINE void rti( void ) PULLWORD(UD); } PULLWORD(PCD); - change_pc(PCD); CHECK_IRQ_LINES; } @@ -671,7 +665,6 @@ INLINE void swi( void ) PUSHBYTE(CC); CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD=RM16(0xfffa); - change_pc(PCD); } /* $103F SWI2 absolute indirect ----- */ @@ -687,7 +680,6 @@ INLINE void swi2( void ) PUSHBYTE(A); PUSHBYTE(CC); PCD=RM16(0xfff4); - change_pc(PCD); } /* $113F SWI3 absolute indirect ----- */ @@ -703,7 +695,6 @@ INLINE void swi3( void ) PUSHBYTE(A); PUSHBYTE(CC); PCD=RM16(0xfff2); - change_pc(PCD); } /* $40 NEGA inherent ?**** */ @@ -1045,7 +1036,6 @@ INLINE void tst_ix( void ) INLINE void jmp_ix( void ) { PCD=EAD; - change_pc(PCD); } /* $6F CLR indexed -0100 */ @@ -1158,7 +1148,6 @@ INLINE void jmp_ex( void ) { EXTENDED; PCD=EAD; - change_pc(PCD); } /* $7F CLR extended -0100 */ @@ -1363,7 +1352,6 @@ INLINE void bsr( void ) IMMBYTE(t); PUSHWORD(pPC); PC += SIGNED(t); - change_pc(PCD); } /* $8E LDX (LDY) immediate -**0- */ @@ -1594,7 +1582,6 @@ INLINE void jsr_di( void ) DIRECT; PUSHWORD(pPC); PCD=EAD; - change_pc(PCD); } /* $9E LDX (LDY) direct -**0- */ @@ -1813,7 +1800,6 @@ INLINE void jsr_ix( void ) { PUSHWORD(pPC); PCD=EAD; - change_pc(PCD); } /* $aE LDX (LDY) indexed -**0- */ @@ -2039,7 +2025,6 @@ INLINE void jsr_ex( void ) EXTENDED; PUSHWORD(pPC); PCD=EAD; - change_pc(PCD); } /* $bE LDX (LDY) extended -**0- */ diff --git a/src/emu/cpu/lh5801/5801tbl.c b/src/emu/cpu/lh5801/5801tbl.c index 5b6f18550cb..c309173aed2 100644 --- a/src/emu/cpu/lh5801/5801tbl.c +++ b/src/emu/cpu/lh5801/5801tbl.c @@ -192,14 +192,12 @@ INLINE void lh5801_rtn(void) { P=memory_read_byte(lh5801.program,++S)<<8; P|=memory_read_byte(lh5801.program,++S); - change_pc(P); } INLINE void lh5801_rti(void) { P=memory_read_byte(lh5801.program,++S)<<8; P|=memory_read_byte(lh5801.program,++S); - change_pc(P); lh5801.t=memory_read_byte(lh5801.program,++S); } @@ -217,7 +215,6 @@ INLINE void lh5801_push_word(UINT16 data) INLINE void lh5801_jmp(UINT16 adr) { P=adr; - change_pc(P); } INLINE void lh5801_branch_plus(int doit) @@ -226,7 +223,6 @@ INLINE void lh5801_branch_plus(int doit) if (doit) { lh5801_icount-=3; P+=t; - change_pc(P); } } @@ -236,7 +232,6 @@ INLINE void lh5801_branch_minus(int doit) if (doit) { lh5801_icount-=3; P-=t; - change_pc(P); } } @@ -247,7 +242,6 @@ INLINE void lh5801_lop(void) if (UL--) { lh5801_icount-=3; P-=t; - change_pc(P); } } @@ -256,7 +250,6 @@ INLINE void lh5801_sjp(void) UINT16 n=lh5801_readop_word(); lh5801_push_word(P); P=n; - change_pc(n); } INLINE void lh5801_vector(int doit, int nr) @@ -265,7 +258,6 @@ INLINE void lh5801_vector(int doit, int nr) lh5801_push_word(P); P=memory_read_byte(lh5801.program,0xff00+nr)<<8; P|=memory_read_byte(lh5801.program,0xff00+nr+1); - change_pc(P); lh5801_icount-=21-8; } lh5801.t&=~Z; // after the jump!? diff --git a/src/emu/cpu/lh5801/lh5801.c b/src/emu/cpu/lh5801/lh5801.c index a4cd7f8e18a..a99efdcaca5 100644 --- a/src/emu/cpu/lh5801/lh5801.c +++ b/src/emu/cpu/lh5801/lh5801.c @@ -104,8 +104,6 @@ static CPU_RESET( lh5801 ) { P = (memory_read_byte(lh5801.program, 0xfffe)<<8) | memory_read_byte(lh5801.program, 0xffff); - change_pc(P); - lh5801.idle=0; } @@ -120,7 +118,6 @@ static CPU_SET_CONTEXT( lh5801 ) if( src ) { lh5801 = *(LH5801_Regs*)src; - change_pc(P); } } @@ -128,8 +125,6 @@ static CPU_EXECUTE( lh5801 ) { lh5801_icount = cycles; - change_pc(P); - if (lh5801.idle) { lh5801_icount=0; } else { diff --git a/src/emu/cpu/lr35902/lr35902.c b/src/emu/cpu/lr35902/lr35902.c index 575c2a08fe9..97b0839a3fb 100644 --- a/src/emu/cpu/lr35902/lr35902.c +++ b/src/emu/cpu/lr35902/lr35902.c @@ -347,7 +347,6 @@ static CPU_SET_CONTEXT( lr35902 ) { if( src ) Regs = *(lr35902_regs *)src; - change_pc(Regs.w.PC); } /****************************************************************************/ @@ -403,9 +402,9 @@ static CPU_SET_INFO( lr35902 ) case CPUINFO_INT_INPUT_STATE + 4: lr35902_set_irq_line(state-CPUINFO_INT_INPUT_STATE, info->i); break; case CPUINFO_INT_SP: Regs.w.SP = info->i; break; - case CPUINFO_INT_PC: Regs.w.PC = info->i; change_pc(Regs.w.PC); break; + case CPUINFO_INT_PC: Regs.w.PC = info->i; break; - case CPUINFO_INT_REGISTER + LR35902_PC: Regs.w.PC = info->i; change_pc(Regs.w.PC); break; + case CPUINFO_INT_REGISTER + LR35902_PC: Regs.w.PC = info->i; break; case CPUINFO_INT_REGISTER + LR35902_SP: Regs.w.SP = info->i; break; case CPUINFO_INT_REGISTER + LR35902_AF: Regs.w.AF = info->i; break; case CPUINFO_INT_REGISTER + LR35902_BC: Regs.w.BC = info->i; break; diff --git a/src/emu/cpu/m37710/m37710.h b/src/emu/cpu/m37710/m37710.h index c8494875a81..d38ec7551a6 100644 --- a/src/emu/cpu/m37710/m37710.h +++ b/src/emu/cpu/m37710/m37710.h @@ -106,7 +106,7 @@ void m37710_state_load(void *file); #define m37710_read_8_immediate(A) memory_read_byte_16le(m37710i_cpu->program, A) #define m37710_read_16(addr) memory_read_word_16le(m37710i_cpu->program, addr) #define m37710_write_16(addr,data) memory_write_word_16le(m37710i_cpu->program, addr,data) -#define m37710_jumping(A) change_pc(A) +#define m37710_jumping(A) #define m37710_branching(A) diff --git a/src/emu/cpu/m6502/m4510.c b/src/emu/cpu/m6502/m4510.c index a427b5341b4..039ad5668ea 100644 --- a/src/emu/cpu/m6502/m4510.c +++ b/src/emu/cpu/m6502/m4510.c @@ -228,8 +228,6 @@ static CPU_RESET( m4510 ) m4510->high=0x8200; m4510->mem[7]=0x20000; - CHANGE_PC; - m4510->port = 0xff; m4510->ddr = 0x00; } @@ -250,7 +248,6 @@ static CPU_SET_CONTEXT( m4510 ) { token = src; m4510 = token; - CHANGE_PC; } } @@ -270,7 +267,6 @@ INLINE void m4510_take_irq(m4510_Regs *m4510) LOG(("M4510#%d takes IRQ ($%04x)\n", cpunum_get_active(), PCD)); /* call back the cpuintrf to let it clear the line */ if (m4510->irq_callback) (*m4510->irq_callback)(m4510->device, 0); - CHANGE_PC; } m4510->pending_irq = 0; } @@ -281,8 +277,6 @@ static CPU_EXECUTE( m4510 ) m4510->icount = cycles; - CHANGE_PC; - do { UINT8 op; @@ -339,7 +333,6 @@ static void m4510_set_irq_line(m4510_Regs *m4510, int irqline, int state) PCL = RDMEM(EAD); PCH = RDMEM(EAD+1); LOG(("M4510#%d takes NMI ($%04x)\n", cpunum_get_active(), PCD)); - CHANGE_PC; } } else @@ -422,7 +415,7 @@ static CPU_SET_INFO( m4510 ) case CPUINFO_INT_INPUT_STATE + M4510_IRQ_LINE: m4510_set_irq_line(m4510, M4510_IRQ_LINE, info->i); break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: m4510_set_irq_line(m4510, INPUT_LINE_NMI, info->i); break; - case CPUINFO_INT_PC: PCW = info->i; change_pc(PCD); break; + case CPUINFO_INT_PC: PCW = info->i; break; case CPUINFO_INT_REGISTER + M4510_PC: m4510->pc.w.l = info->i; break; case CPUINFO_INT_SP: SPL = info->i; break; case CPUINFO_INT_REGISTER + M4510_S: m4510->sp.b.l = info->i; break; diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c index 7478d400e04..93a48dffadf 100644 --- a/src/emu/cpu/m6502/m6502.c +++ b/src/emu/cpu/m6502/m6502.c @@ -188,8 +188,6 @@ static CPU_RESET( m6502 ) m6502->after_cli = 0; /* pending IRQ and last insn cleared I */ m6502->irq_state = 0; m6502->nmi_state = 0; - - change_pc(PCD); } static CPU_EXIT( m6502 ) @@ -209,7 +207,6 @@ static CPU_SET_CONTEXT( m6502 ) { token = src; m6502 = token; - change_pc(PCD); } } @@ -228,7 +225,6 @@ INLINE void m6502_take_irq(m6502_Regs *m6502) LOG(("M6502#%d takes IRQ ($%04x)\n", cpunum_get_active(), PCD)); /* call back the cpuintrf to let it clear the line */ if (m6502->irq_callback) (*m6502->irq_callback)(m6502->device, 0); - change_pc(PCD); } m6502->pending_irq = 0; } @@ -239,8 +235,6 @@ static CPU_EXECUTE( m6502 ) m6502->icount = cycles; - change_pc(PCD); - do { UINT8 op; @@ -306,7 +300,6 @@ static void m6502_set_irq_line(m6502_Regs *m6502, int irqline, int state) PCL = RDMEM(EAD); PCH = RDMEM(EAD+1); LOG(("M6502#%d takes NMI ($%04x)\n", cpunum_get_active(), PCD)); - change_pc(PCD); } } else @@ -458,7 +451,6 @@ INLINE void m65c02_take_irq(m6502_Regs *m6502) LOG(("M65c02#%d takes IRQ ($%04x)\n", cpunum_get_active(), PCD)); /* call back the cpuintrf to let it clear the line */ if (m6502->irq_callback) (*m6502->irq_callback)(m6502->device, 0); - change_pc(PCD); } m6502->pending_irq = 0; } @@ -469,8 +461,6 @@ static CPU_EXECUTE( m65c02 ) m6502->icount = cycles; - change_pc(PCD); - do { UINT8 op; @@ -528,7 +518,6 @@ static void m65c02_set_irq_line(m6502_Regs *m6502, int irqline, int state) PCL = RDMEM(EAD); PCH = RDMEM(EAD+1); LOG(("M6502#%d takes NMI ($%04x)\n", cpunum_get_active(), PCD)); - change_pc(PCD); } } else @@ -574,8 +563,6 @@ static CPU_RESET( deco16 ) m6502->p = F_T|F_I|F_Z|F_B|(P&F_D); /* set T, I and Z flags */ m6502->pending_irq = 0; /* nonzero if an IRQ is pending */ m6502->after_cli = 0; /* pending IRQ and last insn cleared I */ - - change_pc(PCD); } INLINE void deco16_take_irq(m6502_Regs *m6502) @@ -593,7 +580,6 @@ INLINE void deco16_take_irq(m6502_Regs *m6502) LOG(("M6502#%d takes IRQ ($%04x)\n", cpunum_get_active(), PCD)); /* call back the cpuintrf to let it clear the line */ if (m6502->irq_callback) (*m6502->irq_callback)(m6502->device, 0); - change_pc(PCD); } m6502->pending_irq = 0; } @@ -616,7 +602,6 @@ static void deco16_set_irq_line(m6502_Regs *m6502, int irqline, int state) PCL = RDMEM(EAD+1); PCH = RDMEM(EAD); LOG(("M6502#%d takes NMI ($%04x)\n", cpunum_get_active(), PCD)); - change_pc(PCD); } } else @@ -646,8 +631,6 @@ static CPU_EXECUTE( deco16 ) m6502->icount = cycles; - change_pc(PCD); - do { UINT8 op; @@ -706,7 +689,7 @@ static CPU_SET_INFO( m6502 ) case CPUINFO_INT_INPUT_STATE + M6502_SET_OVERFLOW: m6502_set_irq_line(m6502, M6502_SET_OVERFLOW, info->i); break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: m6502_set_irq_line(m6502, INPUT_LINE_NMI, info->i); break; - case CPUINFO_INT_PC: PCW = info->i; change_pc(PCD); break; + case CPUINFO_INT_PC: PCW = info->i; break; case CPUINFO_INT_REGISTER + M6502_PC: m6502->pc.w.l = info->i; break; case CPUINFO_INT_SP: S = info->i; break; case CPUINFO_INT_REGISTER + M6502_S: m6502->sp.b.l = info->i; break; diff --git a/src/emu/cpu/m6502/m6509.c b/src/emu/cpu/m6502/m6509.c index e84e5f95e45..a0cf72fe9b7 100644 --- a/src/emu/cpu/m6502/m6509.c +++ b/src/emu/cpu/m6502/m6509.c @@ -115,8 +115,6 @@ static WRITE8_HANDLER( m6509_write_00000 ) m6509->pc_bank.b.h2=data&0xf; m6509->pc.w.h=m6509->pc_bank.w.h; - change_pc(PCD); - } static WRITE8_HANDLER( m6509_write_00001 ) @@ -167,8 +165,6 @@ static CPU_RESET( m6509 ) m6509->pending_irq = 0; /* nonzero if an IRQ is pending */ m6509->after_cli = 0; /* pending IRQ and last insn cleared I */ m6509->irq_callback = NULL; - - change_pc(PCD); } static CPU_EXIT( m6509 ) @@ -188,7 +184,6 @@ static CPU_SET_CONTEXT( m6509 ) { token = src; m6502 = token; - change_pc(PCD); } } @@ -211,7 +206,6 @@ INLINE void m6509_take_irq( m6509_Regs *m6502) LOG(("M6509#%d takes IRQ ($%04x)\n", cpunum_get_active(), PCD)); /* call back the cpuintrf to let it clear the line */ if (m6502->irq_callback) (*m6502->irq_callback)(m6502->device, 0); - change_pc(PCD); } m6502->pending_irq = 0; } @@ -223,8 +217,6 @@ static CPU_EXECUTE( m6509 ) m6502->icount = cycles; - change_pc(PCD); - do { UINT8 op; @@ -284,7 +276,6 @@ static void m6509_set_irq_line(m6509_Regs *m6509, int irqline, int state) PCL = RDMEM(EAD); PCH = RDMEM(EAD+1); LOG(("M6509#%d takes NMI ($%04x)\n", cpunum_get_active(), PCD)); - change_pc(PCD); } } else @@ -324,7 +315,7 @@ static CPU_SET_INFO( m6509 ) case CPUINFO_INT_INPUT_STATE + M6509_SET_OVERFLOW:m6509_set_irq_line(m6509, M6509_SET_OVERFLOW, info->i); break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: m6509_set_irq_line(m6509, INPUT_LINE_NMI, info->i); break; - case CPUINFO_INT_PC: PCW = info->i; change_pc(PCD); break; + case CPUINFO_INT_PC: PCW = info->i; break; case CPUINFO_INT_REGISTER + M6509_PC: m6509->pc.w.l = info->i; break; case CPUINFO_INT_SP: S = info->i; break; case CPUINFO_INT_REGISTER + M6509_S: m6509->sp.b.l = info->i; break; diff --git a/src/emu/cpu/m6502/m65ce02.c b/src/emu/cpu/m6502/m65ce02.c index 70071db36ba..a1b5eb7651f 100644 --- a/src/emu/cpu/m6502/m65ce02.c +++ b/src/emu/cpu/m6502/m65ce02.c @@ -122,8 +122,6 @@ static CPU_RESET( m65ce02 ) m65ce02->pending_irq = 0; /* nonzero if an IRQ is pending */ m65ce02->after_cli = 0; /* pending IRQ and last insn cleared I */ m65ce02->irq_callback = NULL; - - change_pc(PCD); } static CPU_EXIT( m65ce02 ) @@ -154,7 +152,6 @@ INLINE void m65ce02_take_irq(m65ce02_Regs *m65ce02) LOG(("M65ce02#%d takes IRQ ($%04x)\n", cpunum_get_active(), PCD)); /* call back the cpuintrf to let it clear the line */ if (m65ce02->irq_callback) (*m65ce02->irq_callback)(m65ce02->device, 0); - change_pc(PCD); } m65ce02->pending_irq = 0; } @@ -165,8 +162,6 @@ static CPU_EXECUTE( m65ce02 ) m65ce02->icount = cycles; - change_pc(PCD); - do { UINT8 op; @@ -223,7 +218,6 @@ static void m65ce02_set_irq_line(m65ce02_Regs *m65ce02, int irqline, int state) PCL = RDMEM(EAD); PCH = RDMEM(EAD+1); LOG(("M65ce02#%d takes NMI ($%04x)\n", cpunum_get_active(), PCD)); - change_pc(PCD); } } else @@ -251,7 +245,7 @@ static CPU_SET_INFO( m65ce02 ) case CPUINFO_INT_INPUT_STATE + M65CE02_IRQ_STATE: m65ce02_set_irq_line( m65ce02, M65CE02_IRQ_LINE, info->i ); break; case CPUINFO_INT_INPUT_STATE + M65CE02_NMI_STATE: m65ce02_set_irq_line( m65ce02, INPUT_LINE_NMI, info->i ); break; - case CPUINFO_INT_PC: PCW = info->i; change_pc(PCD); break; + case CPUINFO_INT_PC: PCW = info->i; break; case CPUINFO_INT_REGISTER + M65CE02_PC: m65ce02->pc.w.l = info->i; break; case CPUINFO_INT_SP: m65ce02->sp.b.l = info->i; break; case CPUINFO_INT_REGISTER + M65CE02_S: m65ce02->sp.w.l = info->i; break; diff --git a/src/emu/cpu/m6502/minc4510.h b/src/emu/cpu/m6502/minc4510.h index 1dae1f2e11a..e850b8ca4c6 100644 --- a/src/emu/cpu/m6502/minc4510.h +++ b/src/emu/cpu/m6502/minc4510.h @@ -52,8 +52,6 @@ #define M4510_MEM(addr) (m4510->mem[(addr)>>13]+(addr)) -#define CHANGE_PC change_pc(M4510_MEM(PCD)) - #define PEEK_OP() memory_decrypted_read_byte(m4510->space, M4510_MEM(PCW)) #define RDMEM(addr) memory_read_byte_8le(m4510->space, M4510_MEM(addr)); m4510->icount -= 1 diff --git a/src/emu/cpu/m6502/mincce02.h b/src/emu/cpu/m6502/mincce02.h index 4a685af4993..c26106168f0 100644 --- a/src/emu/cpu/m6502/mincce02.h +++ b/src/emu/cpu/m6502/mincce02.h @@ -53,8 +53,6 @@ #define IRQ_STATE m65ce02->irq_state #define AFTER_CLI m65ce02->after_cli -#define CHANGE_PC change_pc(PCD) - /*************************************************************** * RDOP read an opcode ***************************************************************/ diff --git a/src/emu/cpu/m6502/ops02.h b/src/emu/cpu/m6502/ops02.h index f35c31a83cf..fc53d69e75d 100644 --- a/src/emu/cpu/m6502/ops02.h +++ b/src/emu/cpu/m6502/ops02.h @@ -67,8 +67,6 @@ #define RDMEM_ID(a) m6502->rdmem_id(m6502->space,a) #define WRMEM_ID(a,d) m6502->wrmem_id(m6502->space,a,d) -#define CHANGE_PC change_pc(PCD) - /*************************************************************** * RDOP read an opcode ***************************************************************/ @@ -104,7 +102,6 @@ RDMEM( (PCH << 8 ) | EAL) ; \ } \ PCD = EAD; \ - CHANGE_PC; \ } \ } @@ -409,8 +406,7 @@ PUSH(P | F_B); \ P = (P | F_I); \ PCL = RDMEM(M6502_IRQ_VEC); \ - PCH = RDMEM(M6502_IRQ_VEC+1); \ - CHANGE_PC + PCH = RDMEM(M6502_IRQ_VEC+1) /* 6502 ******************************************************** * BVC Branch if overflow clear @@ -538,8 +534,7 @@ #define JMP \ if( EAD == PPC && !m6502->pending_irq && !m6502->after_cli ) \ if( m6502->icount > 0 ) m6502->icount = 0; \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD /* 6502 ******************************************************** * JSR Jump to subroutine @@ -552,8 +547,7 @@ PUSH(PCH); \ PUSH(PCL); \ EAH = RDOPARG(); \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD /* 6502 ******************************************************** * LDA Load accumulator @@ -670,8 +664,7 @@ { \ LOG(("M6502#%d RTI sets after_cli\n",cpunum_get_active())); \ m6502->after_cli = 1; \ - } \ - CHANGE_PC + } /* 6502 ******************************************************** * RTS Return from subroutine @@ -682,8 +675,7 @@ RDMEM(SPD); \ PULL(PCL); \ PULL(PCH); \ - RDMEM(PCW); PCW++; \ - CHANGE_PC + RDMEM(PCW); PCW++ /* 6502 ******************************************************** * SBC Subtract with carry diff --git a/src/emu/cpu/m6502/ops09.h b/src/emu/cpu/m6502/ops09.h index 4f0f9f91e0d..d800f0686ed 100644 --- a/src/emu/cpu/m6502/ops09.h +++ b/src/emu/cpu/m6502/ops09.h @@ -30,9 +30,6 @@ #define IBWH m6502->ind_bank.w.h #define IB m6502->ind_bank.d -#undef CHANGE_PC -#define CHANGE_PC change_pc(PCD|PB) - /*************************************************************** * RDOP read an opcode ***************************************************************/ @@ -177,7 +174,6 @@ EAW = PCW + (signed char)tmp; \ m6502->icount -= (PCH == EAH) ? 1 : 2; \ PCD = EAD|PB; \ - CHANGE_PC; \ } \ else \ { \ @@ -197,8 +193,7 @@ PUSH(PCL); \ EAH = RDOPARG(); \ EAWH = PBWH; \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD /* 6510 ******************************************************** * KIL Illegal opcode diff --git a/src/emu/cpu/m6502/ops4510.h b/src/emu/cpu/m6502/ops4510.h index e9978789adc..43e9e5dee55 100644 --- a/src/emu/cpu/m6502/ops4510.h +++ b/src/emu/cpu/m6502/ops4510.h @@ -54,7 +54,6 @@ m4510->mem[5]=(m4510->high&0x2000) ? (m4510->high&0xfff)<<8:0; \ m4510->mem[6]=(m4510->high&0x4000) ? (m4510->high&0xfff)<<8:0; \ m4510->mem[7]=(m4510->high&0x8000) ? (m4510->high&0xfff)<<8:0; \ - CHANGE_PC; \ m4510->icount -= 3; \ { \ UINT8 op = RDOP(); \ diff --git a/src/emu/cpu/m6502/opsc02.h b/src/emu/cpu/m6502/opsc02.h index a6fd4d525cc..6d0c11df161 100644 --- a/src/emu/cpu/m6502/opsc02.h +++ b/src/emu/cpu/m6502/opsc02.h @@ -149,7 +149,6 @@ RDMEM( PCW - 1 ); \ } \ PCD = EAD; \ - CHANGE_PC; \ } /* 65C02 ******************************************************** @@ -252,8 +251,7 @@ PUSH(P | F_B); \ P = (P | F_I) & ~F_D; \ PCL = RDMEM(M6502_IRQ_VEC); \ - PCH = RDMEM(M6502_IRQ_VEC+1); \ - CHANGE_PC + PCH = RDMEM(M6502_IRQ_VEC+1); /* 65C02 ******************************************************* @@ -357,5 +355,4 @@ PUSH(PCL); \ EAH = RDOPARG(); \ EAW = PCW + (INT16)(EAW-1); \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD; diff --git a/src/emu/cpu/m6502/opsce02.h b/src/emu/cpu/m6502/opsce02.h index 1322ab5df34..96e756caac8 100644 --- a/src/emu/cpu/m6502/opsce02.h +++ b/src/emu/cpu/m6502/opsce02.h @@ -322,7 +322,6 @@ tmp = RDOPARG(); \ EAW = PCW + (signed char)tmp; \ PCD = EAD; \ - CHANGE_PC; \ } \ else \ { \ @@ -339,7 +338,6 @@ EAH = RDOPARG(); \ EAW = PCW + (short)(EAW-1); \ PCD = EAD; \ - CHANGE_PC; \ } \ else \ { \ @@ -357,8 +355,7 @@ PUSH(P | F_B); \ P = (P | F_I); \ PCL = RDMEM(M6502_IRQ_VEC); \ - PCH = RDMEM(M6502_IRQ_VEC+1); \ - CHANGE_PC + PCH = RDMEM(M6502_IRQ_VEC+1); /* 65ce02 ******************************************************** * BSR Branch to subroutine @@ -369,8 +366,7 @@ PUSH(PCL); \ EAH = RDOPARG(); \ EAW = PCW + (INT16)(EAW-1); \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD; /* 65ce02 ****************************************************** * CLC Clear carry flag @@ -537,8 +533,7 @@ * set PC to the effective address ***************************************************************/ #define JMP \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD; /* 65ce02 ****************************************************** * JSR Jump to subroutine @@ -550,8 +545,7 @@ PUSH(PCH); \ PUSH(PCL); \ EAH = RDOPARG(); \ - PCD = EAD; \ - CHANGE_PC + PCD = EAD; /* 65ce02 ****************************************************** * JSR Jump to subroutine @@ -564,8 +558,7 @@ PUSH(PCL); \ EAH = RDOPARG(); \ PCL = RDMEM(EAD); \ - PCH = RDMEM(EAD+1); \ - CHANGE_PC + PCH = RDMEM(EAD+1); /* 65ce02 ****************************************************** * JSR Jump to subroutine @@ -578,8 +571,7 @@ PUSH(PCL); \ EAH = RDOPARG(); \ PCL = RDMEM(EAD); \ - PCH = RDMEM(EAD+1); \ - CHANGE_PC + PCH = RDMEM(EAD+1); /* 65ce02 ****************************************************** * LDA Load accumulator @@ -766,8 +758,7 @@ { \ LOG(("M65ce02#%d RTI sets after_cli\n", cpunum_get_active())); \ AFTER_CLI = 1; \ - } \ - CHANGE_PC + } /* 65ce02 ****************************************************** * RTS Return from subroutine @@ -776,8 +767,7 @@ #define RTS \ PULL(PCL); \ PULL(PCH); \ - RDMEM(PCW); PCW++; \ - CHANGE_PC + RDMEM(PCW); PCW++; /* 65ce02 ****************************************************** * RTS imm @@ -799,8 +789,7 @@ if( IRQ_STATE != CLEAR_LINE && !(P & F_I) ) { \ LOG(("M65ce02#%d RTI sets after_cli\n", cpunum_get_active())); \ AFTER_CLI = 1; \ - } \ - CHANGE_PC + } /* 65ce02 ******************************************************* diff --git a/src/emu/cpu/m6502/tdeco16.c b/src/emu/cpu/m6502/tdeco16.c index 4766142cb4a..08ef15297d2 100644 --- a/src/emu/cpu/m6502/tdeco16.c +++ b/src/emu/cpu/m6502/tdeco16.c @@ -16,8 +16,7 @@ PUSH(P | F_B); \ P = (P | F_I); \ PCL = RDMEM(DECO16_IRQ_VEC+1); \ - PCH = RDMEM(DECO16_IRQ_VEC); \ - CHANGE_PC + PCH = RDMEM(DECO16_IRQ_VEC); /***************************************************************************** diff --git a/src/emu/cpu/m6800/6800ops.c b/src/emu/cpu/m6800/6800ops.c index af1bcc7d509..70f2d8d490e 100644 --- a/src/emu/cpu/m6800/6800ops.c +++ b/src/emu/cpu/m6800/6800ops.c @@ -234,7 +234,6 @@ OP_HANDLER( bra ) UINT8 t; IMMBYTE(t); PC+=SIGNED(t); - CHANGE_PC(m68_state); /* speed up busy loops */ if (t==0xfe) EAT_CYCLES; } @@ -402,7 +401,6 @@ OP_HANDLER( pulx ) OP_HANDLER( rts ) { PULLWORD(pPC); - CHANGE_PC(m68_state); } /* $3a ABX inherent ----- */ @@ -419,7 +417,6 @@ OP_HANDLER( rti ) PULLBYTE(A); PULLWORD(pX); PULLWORD(pPC); - CHANGE_PC(m68_state); CHECK_IRQ_LINES(m68_state); /* HJB 990417 */ } @@ -466,7 +463,6 @@ OP_HANDLER( swi ) PUSHBYTE(CC); SEI; PCD = RM16(m68_state, 0xfffa); - CHANGE_PC(m68_state); } /* $40 NEGA inherent ?**** */ @@ -797,7 +793,7 @@ OP_HANDLER( tst_ix ) /* $6e JMP indexed ----- */ OP_HANDLER( jmp_ix ) { - INDEXED; PC=EA; CHANGE_PC(m68_state); + INDEXED; PC=EA; } /* $6f CLR indexed -0100 */ @@ -946,7 +942,7 @@ OP_HANDLER( tst_ex ) /* $7e JMP extended ----- */ OP_HANDLER( jmp_ex ) { - EXTENDED; PC=EA; CHANGE_PC(m68_state); /* TS 971002 */ + EXTENDED; PC=EA; } /* $7f CLR extended -0100 */ @@ -1091,7 +1087,6 @@ OP_HANDLER( bsr ) IMMBYTE(t); PUSHWORD(pPC); PC += SIGNED(t); - CHANGE_PC(m68_state); /* TS 971002 */ } /* $8e LDS immediate -**0- */ @@ -1258,7 +1253,6 @@ OP_HANDLER( jsr_di ) DIRECT; PUSHWORD(pPC); PC = EA; - CHANGE_PC(m68_state); } /* $9e LDS direct -**0- */ @@ -1433,7 +1427,6 @@ OP_HANDLER( jsr_ix ) INDEXED; PUSHWORD(pPC); PC = EA; - CHANGE_PC(m68_state); } /* $ae LDS indexed -**0- */ @@ -1610,7 +1603,6 @@ OP_HANDLER( jsr_ex ) EXTENDED; PUSHWORD(pPC); PC = EA; - CHANGE_PC(m68_state); } /* $be LDS extended -**0- */ diff --git a/src/emu/cpu/m6800/m6800.c b/src/emu/cpu/m6800/m6800.c index 7ef6ab213ac..fe693714d11 100644 --- a/src/emu/cpu/m6800/m6800.c +++ b/src/emu/cpu/m6800/m6800.c @@ -414,8 +414,7 @@ static const UINT8 flags8d[256]= /* decrement */ #define IDXWORD(w) {INDEXED;w.d=RM16(m68_state, EAD);} /* Macros for branch instructions */ -#define CHANGE_PC(m68_state) change_pc(PCD) -#define BRANCH(f) {IMMBYTE(t);if(f){PC+=SIGNED(t);CHANGE_PC(m68_state);}} +#define BRANCH(f) {IMMBYTE(t);if(f){PC+=SIGNED(t);}} #define NXORV ((CC&0x08)^((CC&0x02)<<2)) #define M6800_WAI 8 /* set when WAI is waiting for an interrupt */ @@ -552,7 +551,6 @@ static void enter_interrupt(m68_state_t *m68_state, const char *message,UINT16 i } SEI; PCD = RM16(m68_state, irq_vector ); - CHANGE_PC(m68_state); } @@ -906,7 +904,6 @@ static CPU_RESET( m6800 ) SEI; /* IRQ disabled */ PCD = RM16(m68_state, 0xfffe ); - CHANGE_PC(m68_state); m68_state->wai_state = 0; m68_state->nmi_state = 0; @@ -957,7 +954,6 @@ static CPU_SET_CONTEXT( m6800 ) { m68_state_t *m68_state = src; - CHANGE_PC(m68_state); CHECK_IRQ_LINES(m68_state); /* HJB 990417 */ } @@ -2707,7 +2703,7 @@ static CPU_SET_INFO( m6800 ) case CPUINFO_INT_INPUT_STATE + M6800_TIN_LINE: set_irq_line(m68_state, M6800_TIN_LINE, info->i); break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(m68_state, INPUT_LINE_NMI, info->i); break; - case CPUINFO_INT_PC: PC = info->i; CHANGE_PC(m68_state); break; + case CPUINFO_INT_PC: PC = info->i; break; case CPUINFO_INT_REGISTER + M6800_PC: m68_state->pc.w.l = info->i; break; case CPUINFO_INT_SP: S = info->i; break; case CPUINFO_INT_REGISTER + M6800_S: m68_state->s.w.l = info->i; break; diff --git a/src/emu/cpu/m68000/m68kcpu.h b/src/emu/cpu/m68000/m68kcpu.h index 9426e09947e..b58894a3175 100644 --- a/src/emu/cpu/m68000/m68kcpu.h +++ b/src/emu/cpu/m68000/m68kcpu.h @@ -1137,14 +1137,12 @@ INLINE void m68ki_fake_pull_32(m68ki_cpu_core *m68k) INLINE void m68ki_jump(m68ki_cpu_core *m68k, UINT32 new_pc) { REG_PC = new_pc; - change_pc(REG_PC); } INLINE void m68ki_jump_vector(m68ki_cpu_core *m68k, UINT32 vector) { REG_PC = (vector<<2) + m68k->vbr; REG_PC = m68ki_read_data_32(m68k, REG_PC); - change_pc(REG_PC); } @@ -1166,7 +1164,6 @@ INLINE void m68ki_branch_16(m68ki_cpu_core *m68k, UINT32 offset) INLINE void m68ki_branch_32(m68ki_cpu_core *m68k, UINT32 offset) { REG_PC += offset; - change_pc(REG_PC); } diff --git a/src/emu/cpu/m6805/6805ops.c b/src/emu/cpu/m6805/6805ops.c index e7d45e47ec6..9743edc8aed 100644 --- a/src/emu/cpu/m6805/6805ops.c +++ b/src/emu/cpu/m6805/6805ops.c @@ -810,7 +810,6 @@ OP_HANDLER( rti ) PULLBYTE(A); PULLBYTE(X); PULLWORD(pPC); - change_pc(PC); #if IRQ_LEVEL_DETECT if( m6805.irq_state != CLEAR_LINE && (CC & IFLAG) == 0 ) m6805.pending_interrupts |= M6805_INT_IRQ; @@ -821,7 +820,6 @@ OP_HANDLER( rti ) OP_HANDLER( rts ) { PULLWORD(pPC); - change_pc(PC); } /* $82 ILLEGAL */ @@ -835,7 +833,6 @@ OP_HANDLER( swi ) PUSHBYTE(m6805.cc); SEI; if(SUBTYPE==SUBTYPE_HD63705) RM16( 0x1ffa, &pPC ); else RM16( 0xfffc, &pPC ); - change_pc(PC); } /* $84 ILLEGAL */ @@ -1174,7 +1171,6 @@ OP_HANDLER( jmp_di ) { DIRECT; PC = EA; - change_pc(PC); } /* $bd JSR direct ---- */ @@ -1183,7 +1179,6 @@ OP_HANDLER( jsr_di ) DIRECT; PUSHWORD(m6805.pc); PC = EA; - change_pc(PC); } /* $be LDX direct -**- */ @@ -1331,7 +1326,6 @@ OP_HANDLER( jmp_ex ) { EXTENDED; PC = EA; - change_pc(PC); } /* $cd JSR extended ---- */ @@ -1340,7 +1334,6 @@ OP_HANDLER( jsr_ex ) EXTENDED; PUSHWORD(m6805.pc); PC = EA; - change_pc(PC); } /* $ce LDX extended -**- */ @@ -1488,7 +1481,6 @@ OP_HANDLER( jmp_ix2 ) { INDEXED2; PC = EA; - change_pc(PC); } /* $dd JSR indexed, 2 byte offset ---- */ @@ -1497,7 +1489,6 @@ OP_HANDLER( jsr_ix2 ) INDEXED2; PUSHWORD(m6805.pc); PC = EA; - change_pc(PC); } /* $de LDX indexed, 2 byte offset -**- */ @@ -1645,7 +1636,6 @@ OP_HANDLER( jmp_ix1 ) { INDEXED1; PC = EA; - change_pc(PC); } /* $ed JSR indexed, 1 byte offset ---- */ @@ -1654,7 +1644,6 @@ OP_HANDLER( jsr_ix1 ) INDEXED1; PUSHWORD(m6805.pc); PC = EA; - change_pc(PC); } /* $ee LDX indexed, 1 byte offset -**- */ @@ -1802,7 +1791,6 @@ OP_HANDLER( jmp_ix ) { INDEXED; PC = EA; - change_pc(PC); } /* $fd JSR indexed ---- */ @@ -1811,7 +1799,6 @@ OP_HANDLER( jsr_ix ) INDEXED; PUSHWORD(m6805.pc); PC = EA; - change_pc(PC); } /* $fe LDX indexed -**- */ diff --git a/src/emu/cpu/m6805/m6805.c b/src/emu/cpu/m6805/m6805.c index cb6fd0add48..c95b18d71fe 100644 --- a/src/emu/cpu/m6805/m6805.c +++ b/src/emu/cpu/m6805/m6805.c @@ -201,7 +201,7 @@ static const UINT8 flags8d[256]= /* decrement */ #define IDX1BYTE(b) {INDEXED1;b=RM(EAD);} #define IDX2BYTE(b) {INDEXED2;b=RM(EAD);} /* Macros for branch instructions */ -#define BRANCH(f) { UINT8 t; IMMBYTE(t); if(f) { PC+=SIGNED(t); change_pc(PC); if (t==0xfe) { /* speed up busy loops */ if(m6805_ICount > 0) m6805_ICount = 0; } } } +#define BRANCH(f) { UINT8 t; IMMBYTE(t); if(f) { PC+=SIGNED(t); if (t==0xfe) { /* speed up busy loops */ if(m6805_ICount > 0) m6805_ICount = 0; } } } /* what they say it is ... */ static const unsigned char cycles1[] = @@ -298,13 +298,11 @@ static void m68705_Interrupt(void) { m6805.pending_interrupts &= ~(1<<M68705_IRQ_LINE); RM16( 0xfffa, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<M68705_INT_TIMER))!=0) { m6805.pending_interrupts &= ~(1<<M68705_INT_TIMER); RM16( 0xfff8, &pPC); - change_pc(PC); } } m6805_ICount -= 11; @@ -332,7 +330,6 @@ static void Interrupt(void) (*m6805.irq_callback)(m6805.device, 0); RM16( 0x1ffc, &pPC); - change_pc(PC); m6805.pending_interrupts &= ~(1<<HD63705_INT_NMI); m6805_ICount -= 11; @@ -370,56 +367,47 @@ static void Interrupt(void) { m6805.pending_interrupts &= ~(1<<HD63705_INT_IRQ1); RM16( 0x1ff8, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_IRQ2))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_IRQ2); RM16( 0x1fec, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_ADCONV))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_ADCONV); RM16( 0x1fea, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_TIMER1))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_TIMER1); RM16( 0x1ff6, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_TIMER2))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_TIMER2); RM16( 0x1ff4, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_TIMER3))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_TIMER3); RM16( 0x1ff2, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_PCI))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_PCI); RM16( 0x1ff0, &pPC); - change_pc(PC); } else if((m6805.pending_interrupts&(1<<HD63705_INT_SCI))!=0) { m6805.pending_interrupts &= ~(1<<HD63705_INT_SCI); RM16( 0x1fee, &pPC); - change_pc(PC); } } else #endif { RM16( 0xffff - 5, &pPC ); - change_pc(PC); } } // CC & IFLAG @@ -464,7 +452,6 @@ static CPU_RESET( m6805 ) /* IRQ disabled */ SEI; RM16( 0xfffe , &pPC ); - change_pc(PC); } static CPU_EXIT( m6805 ) @@ -889,7 +876,7 @@ static CPU_SET_INFO( m6805 ) case CPUINFO_INT_REGISTER + M6805_A: A = info->i; break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + M6805_PC: PC = info->i; change_pc(PC); break; + case CPUINFO_INT_REGISTER + M6805_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + M6805_S: S = SP_ADJUST(info->i); break; case CPUINFO_INT_REGISTER + M6805_X: X = info->i; break; diff --git a/src/emu/cpu/m6809/6809ops.c b/src/emu/cpu/m6809/6809ops.c index f390410abb1..becc71e6100 100644 --- a/src/emu/cpu/m6809/6809ops.c +++ b/src/emu/cpu/m6809/6809ops.c @@ -150,7 +150,6 @@ OP_HANDLER( jmp_di ) { DIRECT; PCD = EAD; - CHANGE_PC; } /* $0F CLR direct -0100 */ @@ -196,7 +195,6 @@ OP_HANDLER( lbra ) { IMMWORD(EAP); PC += EA; - CHANGE_PC; if ( EA == 0xfffd ) /* EHC 980508 speed up busy loop */ if ( m68_state->icount > 0) @@ -209,7 +207,6 @@ OP_HANDLER( lbsr ) IMMWORD(EAP); PUSHWORD(pPC); PC += EA; - CHANGE_PC; } /* $18 ILLEGAL */ @@ -307,7 +304,7 @@ OP_HANDLER( exg ) case 2: Y = t2; break; case 3: U = t2; break; case 4: S = t2; break; - case 5: PC = t2; CHANGE_PC; break; + case 5: PC = t2; break; case 8: A = t2; break; case 9: B = t2; break; case 10: CC = t2; break; @@ -319,7 +316,7 @@ OP_HANDLER( exg ) case 2: Y = t1; break; case 3: U = t1; break; case 4: S = t1; break; - case 5: PC = t1; CHANGE_PC; break; + case 5: PC = t1; break; case 8: A = t1; break; case 9: B = t1; break; case 10: CC = t1; break; @@ -361,7 +358,7 @@ OP_HANDLER( tfr ) case 2: Y = t; break; case 3: U = t; break; case 4: S = t; break; - case 5: PC = t; CHANGE_PC; break; + case 5: PC = t; break; case 8: A = t; break; case 9: B = t; break; case 10: CC = t; break; @@ -375,7 +372,6 @@ OP_HANDLER( bra ) UINT8 t; IMMBYTE(t); PC += SIGNED(t); - CHANGE_PC; /* JB 970823 - speed up busy loops */ if( t == 0xfe ) if( m68_state->icount > 0 ) m68_state->icount = 0; @@ -622,7 +618,7 @@ OP_HANDLER( puls ) if( t&0x10 ) { PULLWORD(XD); m68_state->icount -= 2; } if( t&0x20 ) { PULLWORD(YD); m68_state->icount -= 2; } if( t&0x40 ) { PULLWORD(UD); m68_state->icount -= 2; } - if( t&0x80 ) { PULLWORD(PCD); CHANGE_PC; m68_state->icount -= 2; } + if( t&0x80 ) { PULLWORD(PCD); m68_state->icount -= 2; } /* HJB 990225: moved check after all PULLs */ if( t&0x01 ) { check_irq_lines(m68_state); } @@ -655,7 +651,7 @@ OP_HANDLER( pulu ) if( t&0x10 ) { PULUWORD(XD); m68_state->icount -= 2; } if( t&0x20 ) { PULUWORD(YD); m68_state->icount -= 2; } if( t&0x40 ) { PULUWORD(SD); m68_state->icount -= 2; } - if( t&0x80 ) { PULUWORD(PCD); CHANGE_PC; m68_state->icount -= 2; } + if( t&0x80 ) { PULUWORD(PCD); m68_state->icount -= 2; } /* HJB 990225: moved check after all PULLs */ if( t&0x01 ) { check_irq_lines(m68_state); } @@ -667,7 +663,6 @@ OP_HANDLER( pulu ) OP_HANDLER( rts ) { PULLWORD(PCD); - CHANGE_PC; } /* $3A ABX inherent ----- */ @@ -693,7 +688,6 @@ OP_HANDLER( rti ) PULLWORD(UD); } PULLWORD(PCD); - CHANGE_PC; check_irq_lines(m68_state); /* HJB 990116 */ } @@ -749,7 +743,6 @@ OP_HANDLER( swi ) PUSHBYTE(CC); CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD=RM16(m68_state, 0xfffa); - CHANGE_PC; } /* $103F SWI2 absolute indirect ----- */ @@ -765,7 +758,6 @@ OP_HANDLER( swi2 ) PUSHBYTE(A); PUSHBYTE(CC); PCD = RM16(m68_state, 0xfff4); - CHANGE_PC; } /* $113F SWI3 absolute indirect ----- */ @@ -781,7 +773,6 @@ OP_HANDLER( swi3 ) PUSHBYTE(A); PUSHBYTE(CC); PCD = RM16(m68_state, 0xfff2); - CHANGE_PC; } /* $40 NEGA inherent ?**** */ @@ -1134,7 +1125,6 @@ OP_HANDLER( jmp_ix ) { fetch_effective_address(m68_state); PCD = EAD; - CHANGE_PC; } /* $6F CLR indexed -0100 */ @@ -1249,7 +1239,6 @@ OP_HANDLER( jmp_ex ) { EXTENDED; PCD = EAD; - CHANGE_PC; } /* $7F CLR extended -0100 */ @@ -1455,7 +1444,6 @@ OP_HANDLER( bsr ) IMMBYTE(t); PUSHWORD(pPC); PC += SIGNED(t); - CHANGE_PC; } /* $8E LDX (LDY) immediate -**0- */ @@ -1686,7 +1674,6 @@ OP_HANDLER( jsr_di ) DIRECT; PUSHWORD(pPC); PCD = EAD; - CHANGE_PC; } /* $9E LDX (LDY) direct -**0- */ @@ -1923,7 +1910,6 @@ OP_HANDLER( jsr_ix ) fetch_effective_address(m68_state); PUSHWORD(pPC); PCD = EAD; - CHANGE_PC; } /* $aE LDX (LDY) indexed -**0- */ @@ -2153,7 +2139,6 @@ OP_HANDLER( jsr_ex ) EXTENDED; PUSHWORD(pPC); PCD = EAD; - CHANGE_PC; } /* $bE LDX (LDY) extended -**0- */ diff --git a/src/emu/cpu/m6809/m6809.c b/src/emu/cpu/m6809/m6809.c index 7163520a7c9..a6c01e59b5c 100644 --- a/src/emu/cpu/m6809/m6809.c +++ b/src/emu/cpu/m6809/m6809.c @@ -155,8 +155,6 @@ INLINE void fetch_effective_address( m68_state_t *m68_state ); #define EAD m68_state->ea.d #define EAP m68_state->ea -#define CHANGE_PC change_pc(PCD) - #define M6809_CWAI 8 /* set when CWAI is waiting for an interrupt */ #define M6809_SYNC 16 /* set when SYNC is waiting for an interrupt */ #define M6809_LDS 32 /* set when LDS occured at least once */ @@ -269,7 +267,6 @@ INLINE void fetch_effective_address( m68_state_t *m68_state ); if( f ) \ { \ PC += SIGNED(t); \ - CHANGE_PC; \ } \ } @@ -280,7 +277,6 @@ INLINE void fetch_effective_address( m68_state_t *m68_state ); { \ m68_state->icount -= 1; \ PC += t.w.l; \ - CHANGE_PC; \ } \ } @@ -326,7 +322,6 @@ static void check_irq_lines(m68_state_t *m68_state) } CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD=RM16(m68_state, 0xfff6); - CHANGE_PC; (void)(*m68_state->irq_callback)(m68_state->device, M6809_FIRQ_LINE); } else @@ -354,7 +349,6 @@ static void check_irq_lines(m68_state_t *m68_state) } CC |= CC_II; /* inhibit IRQ */ PCD=RM16(m68_state, 0xfff8); - CHANGE_PC; (void)(*m68_state->irq_callback)(m68_state->device, M6809_IRQ_LINE); } } @@ -431,7 +425,6 @@ static CPU_RESET( m6809 ) CC |= CC_IF; /* FIRQ disabled */ PCD = RM16(m68_state, 0xfffe); - CHANGE_PC; UpdateState(m68_state); } @@ -477,7 +470,6 @@ static void set_irq_line(m68_state_t *m68_state, int irqline, int state) } CC |= CC_IF | CC_II; /* inhibit FIRQ and IRQ */ PCD = RM16(m68_state, 0xfffc); - CHANGE_PC; } else if (irqline < 2) { @@ -1093,7 +1085,7 @@ static CPU_SET_INFO( m6809 ) case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(m68_state, INPUT_LINE_NMI, info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + M6809_PC: PC = info->i; CHANGE_PC; break; + case CPUINFO_INT_REGISTER + M6809_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + M6809_S: S = info->i; break; case CPUINFO_INT_REGISTER + M6809_CC: CC = info->i; check_irq_lines(m68_state); break; diff --git a/src/emu/cpu/mb86233/mb86233.c b/src/emu/cpu/mb86233/mb86233.c index 5e20e0ca539..d22cb51bc94 100644 --- a/src/emu/cpu/mb86233/mb86233.c +++ b/src/emu/cpu/mb86233/mb86233.c @@ -109,7 +109,6 @@ static CPU_SET_CONTEXT( mb86233 ) /* copy the context */ if (src) mb86233 = *(MB86233_REGS *)src; - change_pc(GETPC()); } @@ -1440,7 +1439,6 @@ static CPU_EXECUTE( mb86233 ) { case 0x00: /* BRIF <addr> */ GETPC() = data - 1; - change_pc( GETPC() ); break; case 0x02: /* BRIF indirect */ @@ -1454,14 +1452,12 @@ static CPU_EXECUTE( mb86233 ) break; GETPC() = data; - change_pc( GETPC() ); break; case 0x04: /* BSIF <addr> */ GETPCS()[GETPCSP()] = GETPC(); GETPCSP()++; GETPC() = data - 1; - change_pc( GETPC() ); break; case 0x06: /* BSIF indirect */ @@ -1477,13 +1473,11 @@ static CPU_EXECUTE( mb86233 ) break; GETPC() = data; - change_pc( GETPC() ); break; case 0x0a: /* RTIF */ --GETPCSP(); GETPC() = GETPCS()[GETPCSP()]; - change_pc( GETPC() ); break; case 0x0c: /* LDIF */ @@ -1527,14 +1521,12 @@ static CPU_EXECUTE( mb86233 ) break; GETPC() = data; - change_pc( GETPC() ); break; case 0x04: /* BSUL <addr> */ GETPCS()[GETPCSP()] = GETPC(); GETPCSP()++; GETPC() = data - 1; - change_pc( GETPC() ); break; case 0x06: /* BSUL indirect */ @@ -1550,13 +1542,11 @@ static CPU_EXECUTE( mb86233 ) break; GETPC() = data; - change_pc( GETPC() ); break; case 0x0a: /* RTUL */ --GETPCSP(); GETPC() = GETPCS()[GETPCSP()]; - change_pc( GETPC() ); break; case 0x0c: /* LDUL */ @@ -1621,7 +1611,7 @@ static CPU_SET_INFO( mb86233 ) switch (state) { case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + MB86233_PC: GETPC() = info->i; change_pc(GETPC()); break; + case CPUINFO_INT_REGISTER + MB86233_PC: GETPC() = info->i; break; case CPUINFO_INT_REGISTER + MB86233_A: GETA().u = info->i; break; case CPUINFO_INT_REGISTER + MB86233_B: GETB().u = info->i; break; case CPUINFO_INT_REGISTER + MB86233_P: GETP().u = info->i; break; diff --git a/src/emu/cpu/mb88xx/mb88xx.c b/src/emu/cpu/mb88xx/mb88xx.c index 985f9125803..91d22b05642 100644 --- a/src/emu/cpu/mb88xx/mb88xx.c +++ b/src/emu/cpu/mb88xx/mb88xx.c @@ -114,7 +114,6 @@ static CPU_SET_CONTEXT( mb88 ) /* copy the context */ if (src) mb88 = *(mb88Regs *)src; - change_pc(GETPC()); } /*************************************************************************** @@ -225,7 +224,6 @@ static void update_pio( void ) mb88.PC = 0x02; mb88.PA = 0x00; mb88.st = 1; - change_pc(GETPC()); mb88.pending_interrupt = 0; @@ -533,7 +531,6 @@ static CPU_EXECUTE( mb88 ) mb88.SI = ( mb88.SI - 1 ) & 3; mb88.PC = mb88.SP[mb88.SI] & 0x3f; mb88.PA = mb88.SP[mb88.SI] >> 6; - change_pc(GETPC()); mb88.st = 1; break; @@ -583,7 +580,6 @@ static CPU_EXECUTE( mb88 ) mb88.st = (mb88.SP[mb88.SI] >> 13)&1; mb88.zf = (mb88.SP[mb88.SI] >> 14)&1; mb88.cf = (mb88.SP[mb88.SI] >> 15)&1; - change_pc(GETPC()); break; case 0x3d: /* jpa imm ZCS:..x */ @@ -664,8 +660,6 @@ static CPU_EXECUTE( mb88 ) mb88.SI = ( mb88.SI + 1 ) & 3; mb88.PC = arg & 0x3f; mb88.PA = ( ( opcode & 7 ) << 2 ) | ( arg >> 6 ); - change_pc(GETPC()); - } mb88.st = 1; break; @@ -679,7 +673,6 @@ static CPU_EXECUTE( mb88 ) { mb88.PC = arg & 0x3f; mb88.PA = ( ( opcode & 7 ) << 2 ) | ( arg >> 6 ); - change_pc(GETPC()); } mb88.st = 1; break; @@ -740,7 +733,6 @@ static CPU_EXECUTE( mb88 ) if ( TEST_ST() ) { mb88.PC = opcode & 0x3f; - change_pc(GETPC()); } mb88.st = 1; break; @@ -770,7 +762,6 @@ static CPU_SET_INFO( mb88 ) case CPUINFO_INT_PC: mb88.PC = info->i & 0x3f; mb88.PA = (info->i >> 6) & 0x1f; - change_pc(GETPC()); break; case CPUINFO_INT_REGISTER + MB88_PC: mb88.PC = info->i; break; case CPUINFO_INT_REGISTER + MB88_PA: mb88.PA = info->i; break; diff --git a/src/emu/cpu/mc68hc11/hc11ops.c b/src/emu/cpu/mc68hc11/hc11ops.c index 0be4321cfc2..50b73726595 100644 --- a/src/emu/cpu/mc68hc11/hc11ops.c +++ b/src/emu/cpu/mc68hc11/hc11ops.c @@ -30,7 +30,6 @@ INLINE void CYCLES(int cycles) INLINE void SET_PC(int pc) { hc11.pc = pc; - change_pc(hc11.pc); } INLINE void PUSH8(UINT8 value) diff --git a/src/emu/cpu/mc68hc11/mc68hc11.c b/src/emu/cpu/mc68hc11/mc68hc11.c index b9a19158568..4f95e92eaaf 100644 --- a/src/emu/cpu/mc68hc11/mc68hc11.c +++ b/src/emu/cpu/mc68hc11/mc68hc11.c @@ -379,7 +379,6 @@ static CPU_SET_CONTEXT( hc11 ) if (src) { hc11 = *(HC11_REGS*)src; } - change_pc(hc11.pc); } static CPU_EXECUTE( hc11 ) @@ -408,7 +407,7 @@ static CPU_SET_INFO( mc68hc11 ) { /* --- the following bits of info are set as 64-bit signed integers --- */ case CPUINFO_INT_PC: hc11.pc = info->i; break; - case CPUINFO_INT_REGISTER + HC11_PC: hc11.pc = info->i; change_pc(hc11.pc); break; + case CPUINFO_INT_REGISTER + HC11_PC: hc11.pc = info->i; break; case CPUINFO_INT_REGISTER + HC11_SP: hc11.sp = info->i; break; case CPUINFO_INT_REGISTER + HC11_A: hc11.d.d8.a = info->i; break; case CPUINFO_INT_REGISTER + HC11_B: hc11.d.d8.b = info->i; break; diff --git a/src/emu/cpu/mcs48/mcs48.c b/src/emu/cpu/mcs48/mcs48.c index f6f55a9a019..35f80b38aaf 100644 --- a/src/emu/cpu/mcs48/mcs48.c +++ b/src/emu/cpu/mcs48/mcs48.c @@ -245,7 +245,6 @@ INLINE void pull_pc_psw(mcs48_state *mcs48) PSW = (mcs48->pc.b.h & 0xf0) | 0x08 | sp; mcs48->pc.b.h &= 0x0f; update_regptr(mcs48); - change_pc(PC); } @@ -260,7 +259,6 @@ INLINE void pull_pc(mcs48_state *mcs48) mcs48->pc.b.l = ram_r(8 + 2*sp); mcs48->pc.b.h = ram_r(9 + 2*sp) & 0x0f; PSW = (PSW & 0xf0) | 0x08 | sp; - change_pc(PC); } @@ -307,7 +305,6 @@ INLINE void execute_jmp(mcs48_state *mcs48, UINT16 address) { UINT16 a11 = (mcs48->irq_in_progress) ? 0 : mcs48->a11; PC = address | a11; - change_pc(PC); } @@ -334,7 +331,6 @@ INLINE void execute_jcc(mcs48_state *mcs48, UINT8 result) if (result != 0) { PC = ((PC - 1) & 0xf00) | offset; - change_pc(PC); } else ADJUST_CYCLES; @@ -499,7 +495,7 @@ OPHANDLER( jmp_4 ) { execute_jmp(mcs48, argument_fetch(mcs48, PC) | 0x400); } OPHANDLER( jmp_5 ) { execute_jmp(mcs48, argument_fetch(mcs48, PC) | 0x500); } OPHANDLER( jmp_6 ) { execute_jmp(mcs48, argument_fetch(mcs48, PC) | 0x600); } OPHANDLER( jmp_7 ) { execute_jmp(mcs48, argument_fetch(mcs48, PC) | 0x700); } -OPHANDLER( jmpp_xa ) { PC &= 0xf00; PC |= program_r(PC | A); change_pc(PC); } +OPHANDLER( jmpp_xa ) { PC &= 0xf00; PC |= program_r(PC | A); } OPHANDLER( jnc ) { execute_jcc(mcs48, (PSW & C_FLAG) == 0); } OPHANDLER( jni ) { execute_jcc(mcs48, mcs48->irq_state != 0); } @@ -847,7 +843,6 @@ static void check_irqs(mcs48_state *mcs48) /* transfer to location 0x03 */ push_pc_psw(mcs48); PC = 0x03; - change_pc(0x03); mcs48->inst_cycles += 2; /* indicate we took the external IRQ */ @@ -863,7 +858,6 @@ static void check_irqs(mcs48_state *mcs48) /* transfer to location 0x07 */ push_pc_psw(mcs48); PC = 0x07; - change_pc(0x07); mcs48->inst_cycles += 2; /* timer overflow flip-flop is reset once taken */ @@ -926,7 +920,6 @@ static CPU_EXECUTE( mcs48 ) unsigned opcode; update_regptr(mcs48); - change_pc(PC); mcs48->icount = cycles; diff --git a/src/emu/cpu/mcs51/mcs51.c b/src/emu/cpu/mcs51/mcs51.c index 157d21460dd..69b7f48d05b 100644 --- a/src/emu/cpu/mcs51/mcs51.c +++ b/src/emu/cpu/mcs51/mcs51.c @@ -308,9 +308,6 @@ struct _mcs51_state_t MACROS ***************************************************************************/ -#undef change_pc -#define change_pc(x) - /* Read Opcode/Opcode Arguments from Program Code */ #define ROP(pc) memory_decrypted_read_byte(mcs51_state->program, pc) #define ROP_ARG(pc) memory_raw_read_byte(mcs51_state->program, pc) @@ -771,7 +768,6 @@ INLINE void pop_pc(mcs51_state_t *mcs51_state) PC = (IRAM_IR(tmpSP--) & 0xff) << 8; //Store hi byte to PC (must use IRAM_IR to access stack pointing above 128 bytes) PC = PC | IRAM_IR(tmpSP--); //Store lo byte to PC (must use IRAM_IR to access stack pointing above 128 bytes) SP = tmpSP; //Decrement Stack Pointer - change_pc(PC); } //Set the PSW Parity Flag @@ -1720,7 +1716,6 @@ static void check_irqs(mcs51_state_t *mcs51_state) //Save current pc to stack, set pc to new interrupt vector push_pc(mcs51_state); PC = int_vec; - change_pc(PC); /* interrupts take 24 cycles */ mcs51_state->inst_cycles += 2; @@ -1909,7 +1904,6 @@ static CPU_EXECUTE( mcs51 ) mcs51_state_t *mcs51_state = device->token; UINT8 op; - change_pc(PC); update_ptrs(mcs51_state); mcs51_state->icount = cycles; diff --git a/src/emu/cpu/mcs51/mcs51ops.c b/src/emu/cpu/mcs51/mcs51ops.c index badf92e3011..a9ccf4330b1 100644 --- a/src/emu/cpu/mcs51/mcs51ops.c +++ b/src/emu/cpu/mcs51/mcs51ops.c @@ -11,7 +11,6 @@ OPHANDLER( acall ) PUSH_PC(); //Save PC to the stack //Thanks Gerrit for help with this! :) PC = (PC & 0xf800) | ((r & 0xe0) << 3) | addr; - change_pc(PC); } //ADD A, #data /* 1: 0010 0100 */ @@ -94,7 +93,6 @@ OPHANDLER( ajmp ) UINT8 addr = ROP_ARG(PC++); //Grab code address byte //Thanks Gerrit for help with this! :) PC = (PC & 0xf800) | ((r & 0xe0) << 3) | addr; - change_pc(PC); } //ANL data addr, A /* 1: 0101 0010 */ @@ -171,7 +169,6 @@ OPHANDLER( cjne_a_byte ) if(ACC != data) //Jump if values are not equal { PC = PC + rel_addr; - change_pc(PC); } //Set carry flag to 1 if 1st compare value is < 2nd compare value @@ -188,7 +185,6 @@ OPHANDLER( cjne_a_mem ) if(ACC != data) //Jump if values are not equal { PC = PC + rel_addr; - change_pc(PC); } //Set carry flag to 1 if 1st compare value is < 2nd compare value @@ -205,7 +201,6 @@ OPHANDLER( cjne_ir_byte ) if(srcdata != data) //Jump if values are not equal { PC = PC + rel_addr; - change_pc(PC); } //Set carry flag to 1 if 1st compare value is < 2nd compare value @@ -222,7 +217,6 @@ OPHANDLER( cjne_r_byte ) if(srcdata != data) //Jump if values are not equal { PC = PC + rel_addr; - change_pc(PC); } //Set carry flag to 1 if 1st compare value is < 2nd compare value @@ -350,7 +344,6 @@ OPHANDLER( djnz_mem ) if(IRAM_R(addr) != 0) //Branch if contents of data address is not 0 { PC = PC + rel_addr; - change_pc(PC); } } @@ -362,7 +355,6 @@ OPHANDLER( djnz_r ) if(R_REG(r) != 0) //Branch if contents of R0 - R7 is not 0 { PC = PC + rel_addr; - change_pc(PC); } } @@ -409,7 +401,6 @@ OPHANDLER( jb ) if(BIT_R(addr)) //If bit set at specified bit address, jump { PC = PC + rel_addr; - change_pc(PC); } } @@ -421,7 +412,6 @@ OPHANDLER( jbc ) if(BIT_R(addr)) { //If bit set at specified bit address, jump PC = PC + rel_addr; BIT_W(addr,0); //Clear Bit also - change_pc(PC); } } @@ -432,7 +422,6 @@ OPHANDLER( jc ) if(GET_CY) //Jump if Carry Flag Set { PC = PC + rel_addr; - change_pc(PC); } } @@ -440,7 +429,6 @@ OPHANDLER( jc ) OPHANDLER( jmp_iadptr ) { PC = ACC + DPTR; - change_pc(PC); } //JNB bit addr, code addr /* 1: 0011 0000 */ @@ -451,7 +439,6 @@ OPHANDLER( jnb ) if(!BIT_R(addr)) //If bit NOT set at specified bit address, jump { PC = PC + rel_addr; - change_pc(PC); } } @@ -462,7 +449,6 @@ OPHANDLER( jnc ) if(!GET_CY) //Jump if Carry Flag not set { PC = PC + rel_addr; - change_pc(PC); } } @@ -473,7 +459,6 @@ OPHANDLER( jnz ) if(ACC != 0) //Branch if ACC is not 0 { PC = PC+rel_addr; - change_pc(PC); } } @@ -484,7 +469,6 @@ OPHANDLER( jz ) if(ACC == 0) //Branch if ACC is 0 { PC = PC+rel_addr; - change_pc(PC); } } @@ -496,7 +480,6 @@ OPHANDLER( lcall ) addr_lo = ROP_ARG(PC++); PUSH_PC(); PC = (UINT16)((addr_hi<<8) | addr_lo); - change_pc(PC); } //LJMP code addr /* 1: 0000 0010 */ @@ -506,7 +489,6 @@ OPHANDLER( ljmp ) addr_hi = ROP_ARG(PC++); addr_lo = ROP_ARG(PC++); PC = (UINT16)((addr_hi<<8) | addr_lo); - change_pc(PC); } //MOV A, #data /* 1: 0111 0100 */ @@ -858,7 +840,6 @@ OPHANDLER( sjmp ) { INT8 rel_addr = ROP_ARG(PC++); //Grab relative code address PC = PC + rel_addr; //Update PC - change_pc(PC); } //SUBB A, #data /* 1: 1001 0100 */ diff --git a/src/emu/cpu/minx/minx.c b/src/emu/cpu/minx/minx.c index b27ec2429a7..42e76962380 100644 --- a/src/emu/cpu/minx/minx.c +++ b/src/emu/cpu/minx/minx.c @@ -130,7 +130,6 @@ static CPU_RESET( minx ) regs.halted = regs.interrupt_pending = 0; regs.PC = rd16( 0 ); - change_pc( regs.PC ); } diff --git a/src/emu/cpu/minx/minxfunc.h b/src/emu/cpu/minx/minxfunc.h index b1747e275f2..1bce11a73aa 100644 --- a/src/emu/cpu/minx/minxfunc.h +++ b/src/emu/cpu/minx/minxfunc.h @@ -331,7 +331,6 @@ INLINE void JMP( UINT16 arg ) { regs.V = regs.U; regs.PC = arg; - change_pc( GET_MINX_PC ); } diff --git a/src/emu/cpu/mips/mips3.c b/src/emu/cpu/mips/mips3.c index 1fd6af42e1f..af9f6ed921d 100644 --- a/src/emu/cpu/mips/mips3.c +++ b/src/emu/cpu/mips/mips3.c @@ -318,7 +318,6 @@ static int update_pcbase(void) return 0; } mips3.pcbase = entry & ~0xfff; - change_pc(mips3.pcbase); return 1; } diff --git a/src/emu/cpu/mips/psx.c b/src/emu/cpu/mips/psx.c index 13ac0545fc7..11c3c767eda 100644 --- a/src/emu/cpu/mips/psx.c +++ b/src/emu/cpu/mips/psx.c @@ -1358,7 +1358,6 @@ INLINE void mips_commit_delayed_load( psxcpu_state *psxcpu ) static void mips_set_pc( psxcpu_state *psxcpu, unsigned pc ) { psxcpu->pc = pc; - change_pc( pc ); } static void mips_fetch_next_op( psxcpu_state *psxcpu ) @@ -1367,9 +1366,7 @@ static void mips_fetch_next_op( psxcpu_state *psxcpu ) { UINT32 safepc = psxcpu->delayv & ~psxcpu->bad_word_address_mask; - change_pc( safepc ); psxcpu->op = memory_decrypted_read_dword( psxcpu->program, safepc ); - change_pc( psxcpu->pc ); } else { @@ -1390,10 +1387,6 @@ INLINE int mips_advance_pc( psxcpu_state *psxcpu ) mips_load_bad_address( psxcpu, psxcpu->pc ); return 0; } - else - { - change_pc( psxcpu->pc ); - } } else if( psxcpu->delayr == PSXCPU_DELAYR_NOTPC ) { diff --git a/src/emu/cpu/mips/r3000.c b/src/emu/cpu/mips/r3000.c index 440994849d3..c8f1d9670a8 100644 --- a/src/emu/cpu/mips/r3000.c +++ b/src/emu/cpu/mips/r3000.c @@ -248,9 +248,6 @@ INLINE void generate_exception(r3000_state *r3000, int exception) r3000->pc += 0x80; else r3000->pc += 0x180; - - /* swap to the new space */ - change_pc(r3000->pc); } @@ -354,7 +351,6 @@ static void r3000_reset(r3000_state *r3000, int bigendian) r3000->nextpc = ~0; r3000->cpr[0][COP0_PRId] = 0x0200; r3000->cpr[0][COP0_Status] = 0x0000; - change_pc(r3000->pc); } static CPU_RESET( r3000be ) @@ -702,7 +698,6 @@ static CPU_EXECUTE( r3000 ) r3000->icount = cycles; r3000->icount -= r3000->interrupt_cycles; r3000->interrupt_cycles = 0; - change_pc(r3000->pc); /* check for IRQs */ check_irqs(r3000); @@ -726,7 +721,6 @@ static CPU_EXECUTE( r3000 ) { r3000->pc = r3000->nextpc; r3000->nextpc = ~0; - change_pc(r3000->pc); } else r3000->pc += 4; diff --git a/src/emu/cpu/nec/nec.h b/src/emu/cpu/nec/nec.h index 569001c41e7..08d6ec03bb9 100644 --- a/src/emu/cpu/nec/nec.h +++ b/src/emu/cpu/nec/nec.h @@ -88,7 +88,7 @@ typedef enum { AH,AL,CH,CL,DH,DL,BH,BL,SPH,SPL,BPH,BPL,IXH,IXL,IYH,IYL } BREGS; /************************************************************************/ -#define CHANGE_PC do { EMPTY_PREFETCH(); change_pc((nec_state->sregs[PS]<<4) + nec_state->ip); } while (0) +#define CHANGE_PC do { EMPTY_PREFETCH(); } while (0) #define SegBase(Seg) (nec_state->sregs[Seg] << 4) diff --git a/src/emu/cpu/powerpc/ppc.c b/src/emu/cpu/powerpc/ppc.c index 9538bdad872..ab5b4b38d2a 100644 --- a/src/emu/cpu/powerpc/ppc.c +++ b/src/emu/cpu/powerpc/ppc.c @@ -1726,8 +1726,6 @@ static CPU_SET_CONTEXT( ppc ) /* copy the context */ if (src) ppc = *(PPC_REGS *)src; - - change_pc(ppc.pc); } /************************************************************************** diff --git a/src/emu/cpu/powerpc/ppc403.c b/src/emu/cpu/powerpc/ppc403.c index cde39856730..d10fdc110a9 100644 --- a/src/emu/cpu/powerpc/ppc403.c +++ b/src/emu/cpu/powerpc/ppc403.c @@ -145,7 +145,6 @@ static CPU_RESET( ppc403 ) ppc.pc = ppc.npc = 0xfffffffc; ppc_set_msr(0); - change_pc(ppc.pc); } static CPU_EXECUTE( ppc403 ) @@ -153,7 +152,6 @@ static CPU_EXECUTE( ppc403 ) UINT32 fit_trigger_cycle; ppc_icount = cycles; ppc_tb_base_icount = cycles; - change_pc(ppc.npc); fit_trigger_cycle = 0x7fffffff; @@ -270,7 +268,6 @@ void ppc403_exception(int exception) ppc_set_msr(msr); ppc.npc = EVPR | 0x0500; - change_pc(ppc.npc); ppc.interrupt_pending &= ~0x1; } @@ -295,7 +292,6 @@ void ppc403_exception(int exception) ppc.npc = 0xfff00000 | 0x0700; else ppc.npc = EVPR | 0x0700; - change_pc(ppc.npc); break; } @@ -317,7 +313,6 @@ void ppc403_exception(int exception) ppc.npc = 0xfff00000 | 0x0c00; else ppc.npc = EVPR | 0x0c00; - change_pc(ppc.npc); break; } @@ -337,7 +332,6 @@ void ppc403_exception(int exception) ppc_set_msr(msr); ppc.npc = EVPR | 0x1000; - change_pc(ppc.npc); ppc.tsr |= 0x08000000; // PIT interrupt ppc.interrupt_pending &= ~0x2; @@ -361,8 +355,7 @@ void ppc403_exception(int exception) ppc_set_msr(msr); ppc.npc = EVPR | 0x1010; - change_pc(ppc.npc); - ppc.interrupt_pending &= ~0x4; + ppc.interrupt_pending &= ~0x4; } break; } @@ -382,7 +375,6 @@ void ppc403_exception(int exception) ppc_set_msr(msr); ppc.npc = EVPR | 0x1020; - change_pc(ppc.npc); break; } @@ -402,7 +394,6 @@ void ppc403_exception(int exception) EXISR |= 0x80000000; ppc.npc = EVPR | 0x100; - change_pc(ppc.npc); break; } @@ -531,7 +522,6 @@ static void ppc_rfci(UINT32 op) msr = ppc.srr3; ppc_set_msr( msr ); - change_pc(ppc.npc); } #endif diff --git a/src/emu/cpu/powerpc/ppc602.c b/src/emu/cpu/powerpc/ppc602.c index 3db73e848eb..6737877a262 100644 --- a/src/emu/cpu/powerpc/ppc602.c +++ b/src/emu/cpu/powerpc/ppc602.c @@ -66,7 +66,6 @@ void ppc602_exception(int exception) ppc.npc = ppc.ibr | 0x0500; ppc.interrupt_pending &= ~0x1; - change_pc(ppc.npc); } break; @@ -90,7 +89,6 @@ void ppc602_exception(int exception) ppc.npc = ppc.ibr | 0x0900; ppc.interrupt_pending &= ~0x2; - change_pc(ppc.npc); } break; @@ -111,7 +109,6 @@ void ppc602_exception(int exception) ppc.npc = 0xfff00000 | 0x0700; else ppc.npc = ppc.ibr | 0x0700; - change_pc(ppc.npc); } break; @@ -132,7 +129,6 @@ void ppc602_exception(int exception) ppc.npc = 0xfff00000 | 0x0c00; else ppc.npc = ppc.ibr | 0x0c00; - change_pc(ppc.npc); } break; @@ -156,7 +152,6 @@ void ppc602_exception(int exception) ppc.npc = ppc.ibr | 0x1400; ppc.interrupt_pending &= ~0x4; - change_pc(ppc.npc); } break; @@ -212,7 +207,6 @@ static CPU_RESET( ppc602 ) ppc.pc = ppc.npc = 0xfff00100; ppc_set_msr(0x40); - change_pc(ppc.pc); ppc.hid0 = 1; @@ -237,8 +231,6 @@ static CPU_EXECUTE( ppc602 ) ppc_dec_trigger_cycle = 0x7fffffff; } - change_pc(ppc.npc); - // MinGW's optimizer kills setjmp()/longjmp() SETJMP_GNUC_PROTECT(); diff --git a/src/emu/cpu/powerpc/ppc603.c b/src/emu/cpu/powerpc/ppc603.c index ae19612cbeb..f3219bd1078 100644 --- a/src/emu/cpu/powerpc/ppc603.c +++ b/src/emu/cpu/powerpc/ppc603.c @@ -22,7 +22,6 @@ void ppc603_exception(int exception) ppc.npc = 0x00000000 | 0x0500; ppc.interrupt_pending &= ~0x1; - change_pc(ppc.npc); } break; @@ -46,7 +45,6 @@ void ppc603_exception(int exception) ppc.npc = 0x00000000 | 0x0900; ppc.interrupt_pending &= ~0x2; - change_pc(ppc.npc); } break; @@ -68,7 +66,6 @@ void ppc603_exception(int exception) ppc.npc = 0xfff00000 | 0x0700; else ppc.npc = 0x00000000 | 0x0700; - change_pc(ppc.npc); } break; @@ -90,7 +87,6 @@ void ppc603_exception(int exception) ppc.npc = 0xfff00000 | 0x0c00; else ppc.npc = 0x00000000 | 0x0c00; - change_pc(ppc.npc); } break; @@ -114,7 +110,6 @@ void ppc603_exception(int exception) ppc.npc = 0x00000000 | 0x1400; ppc.interrupt_pending &= ~0x4; - change_pc(ppc.npc); } break; @@ -138,7 +133,6 @@ void ppc603_exception(int exception) ppc.npc = 0x00000000 | 0x0300; ppc.interrupt_pending &= ~0x4; - change_pc(ppc.npc); } break; @@ -162,7 +156,6 @@ void ppc603_exception(int exception) ppc.npc = 0x00000000 | 0x0400; ppc.interrupt_pending &= ~0x4; - change_pc(ppc.npc); } break; @@ -219,7 +212,6 @@ static CPU_RESET( ppc603 ) ppc.pc = ppc.npc = 0xfff00100; ppc_set_msr(0x40); - change_pc(ppc.pc); ppc.hid0 = 1; @@ -245,8 +237,6 @@ static CPU_EXECUTE( ppc603 ) ppc_dec_trigger_cycle = 0x7fffffff; } - change_pc(ppc.npc); - // MinGW's optimizer kills setjmp()/longjmp() SETJMP_GNUC_PROTECT(); diff --git a/src/emu/cpu/powerpc/ppc_ops.c b/src/emu/cpu/powerpc/ppc_ops.c index e5f05bb4d21..a09cea5843c 100644 --- a/src/emu/cpu/powerpc/ppc_ops.c +++ b/src/emu/cpu/powerpc/ppc_ops.c @@ -213,8 +213,6 @@ static void ppc_bx(UINT32 op) if( LKBIT ) { LR = ppc.pc + 4; } - - change_pc(ppc.npc); } static void ppc_bcx(UINT32 op) @@ -227,8 +225,6 @@ static void ppc_bcx(UINT32 op) } else { ppc.npc = ppc.pc + (SIMM16 & ~0x3); } - - change_pc(ppc.npc); } if( LKBIT ) { @@ -242,7 +238,6 @@ static void ppc_bcctrx(UINT32 op) if( condition ) { ppc.npc = CTR & ~0x3; - change_pc(ppc.npc); } if( LKBIT ) { @@ -256,7 +251,6 @@ static void ppc_bclrx(UINT32 op) if( condition ) { ppc.npc = LR & ~0x3; - change_pc(ppc.npc); } if( LKBIT ) { @@ -1018,8 +1012,6 @@ static void ppc_rfi(UINT32 op) ppc.npc = ppc_get_spr(SPR_SRR0); msr = ppc_get_spr(SPR_SRR1); ppc_set_msr( msr ); - - change_pc(ppc.npc); } static void ppc_rlwimix(UINT32 op) diff --git a/src/emu/cpu/s2650/s2650.c b/src/emu/cpu/s2650/s2650.c index db3558625e9..1df30f9ea82 100644 --- a/src/emu/cpu/s2650/s2650.c +++ b/src/emu/cpu/s2650/s2650.c @@ -350,7 +350,6 @@ static const int S2650_relative[0x100] = REL_EA( s2650c->page ); \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } else s2650c->iar = (s2650c->iar + 1) & PMSK; \ } @@ -363,7 +362,6 @@ static const int S2650_relative[0x100] = REL_ZERO( 0 ); \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } /*************************************************************** @@ -377,7 +375,6 @@ static const int S2650_relative[0x100] = BRA_EA(); \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } else s2650c->iar = (s2650c->iar + 2) & PMSK; \ } @@ -391,7 +388,6 @@ static const int S2650_relative[0x100] = s2650c->ea = (s2650c->ea + s2650c->reg[3]) & AMSK; \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } /*************************************************************** @@ -407,7 +403,6 @@ static const int S2650_relative[0x100] = s2650c->ras[s2650c->psu & SP] = s2650c->page + s2650c->iar; \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } else s2650c->iar = (s2650c->iar + 1) & PMSK; \ } @@ -422,7 +417,6 @@ static const int S2650_relative[0x100] = s2650c->ras[s2650c->psu & SP] = s2650c->page + s2650c->iar; \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } /*************************************************************** @@ -438,7 +432,6 @@ static const int S2650_relative[0x100] = s2650c->ras[s2650c->psu & SP] = s2650c->page + s2650c->iar; \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } else s2650c->iar = (s2650c->iar + 2) & PMSK; \ } @@ -454,7 +447,6 @@ static const int S2650_relative[0x100] = s2650c->ras[s2650c->psu & SP] = s2650c->page + s2650c->iar; \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } /*************************************************************** @@ -470,7 +462,6 @@ static const int S2650_relative[0x100] = s2650c->psu = (s2650c->psu & ~SP) | ((s2650c->psu - 1) & SP); \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ } \ } @@ -488,7 +479,6 @@ static const int S2650_relative[0x100] = s2650c->psu = (s2650c->psu & ~SP) | ((s2650c->psu - 1) & SP); \ s2650c->page = s2650c->ea & PAGE; \ s2650c->iar = s2650c->ea & PMSK; \ - change_pc(s2650c->ea); \ s2650c->psu &= ~II; \ CHECK_IRQ_LINE; \ } \ @@ -1499,7 +1489,6 @@ static CPU_SET_INFO( s2650 ) case CPUINFO_INT_PC: s2650c->page = info->i & PAGE; s2650c->iar = info->i & PMSK; - change_pc(s2650c->page + s2650c->iar); break; case CPUINFO_INT_REGISTER + S2650_PC: s2650c->page = info->i & PAGE; s2650c->iar = info->i & PMSK; break; diff --git a/src/emu/cpu/saturn/satops.c b/src/emu/cpu/saturn/satops.c index afa4f776235..7079c073cf3 100644 --- a/src/emu/cpu/saturn/satops.c +++ b/src/emu/cpu/saturn/satops.c @@ -320,7 +320,6 @@ INLINE void saturn_jump_after_test(void) } else { saturn.pc=(saturn.pc+adr-2)&0xfffff; } - change_pc(saturn.pc); } } INLINE void saturn_st_clear_bit(void) @@ -429,7 +428,6 @@ INLINE void saturn_jump(int adr, int jump) if (jump) { saturn.pc=adr; saturn_ICount-=10; - change_pc(saturn.pc); } } @@ -439,7 +437,6 @@ INLINE void saturn_call(int adr) saturn_push(saturn.pc); saturn.pc=adr; // saturn_ICount-=10; - change_pc(saturn.pc); } INLINE void saturn_return(int yes) @@ -447,7 +444,6 @@ INLINE void saturn_return(int yes) if (yes) { saturn.pc=saturn_pop(); // saturn_ICount-=10; - change_pc(saturn.pc); } } @@ -455,7 +451,6 @@ INLINE void saturn_return_carry_set(void) { saturn.pc=saturn_pop(); // saturn_ICount-=10; - change_pc(saturn.pc); saturn.carry=1; } @@ -463,7 +458,6 @@ INLINE void saturn_return_carry_clear(void) { saturn.pc=saturn_pop(); // saturn_ICount-=10; - change_pc(saturn.pc); saturn.carry=0; } @@ -473,7 +467,6 @@ INLINE void saturn_return_interrupt(void) saturn.in_irq=0; /* set to 1 when an IRQ is taken */ saturn.pc=saturn_pop(); // saturn_ICount-=10; - change_pc(saturn.pc); } INLINE void saturn_return_xm_set(void) @@ -481,7 +474,6 @@ INLINE void saturn_return_xm_set(void) saturn.pc=saturn_pop(); saturn.hst|=XM; // saturn_ICount-=10; - change_pc(saturn.pc); } INLINE void saturn_pop_c(void) @@ -498,7 +490,6 @@ INLINE void saturn_indirect_jump(int reg) { saturn_assert(reg>=0 && reg<9); saturn.pc=READ_20(S64_READ_A(reg)); - change_pc(saturn.pc); } INLINE void saturn_equals_zero(int reg, int begin, int count) @@ -649,7 +640,6 @@ INLINE void saturn_load_pc(int reg) { saturn_assert(reg>=0 && reg<9); saturn.pc=S64_READ_A(reg); - change_pc(saturn.pc); } INLINE void saturn_store_pc(int reg) @@ -663,7 +653,6 @@ INLINE void saturn_exchange_pc(int reg) int temp=saturn.pc; saturn_assert(reg>=0 && reg<9); saturn.pc=S64_READ_A(reg); - change_pc(saturn.pc); S64_WRITE_A(reg, temp); } diff --git a/src/emu/cpu/saturn/saturn.c b/src/emu/cpu/saturn/saturn.c index 9fa8b607e37..be54c3b9bb5 100644 --- a/src/emu/cpu/saturn/saturn.c +++ b/src/emu/cpu/saturn/saturn.c @@ -138,7 +138,6 @@ static CPU_RESET( saturn ) saturn.sleeping = 0; saturn.irq_enable = 0; saturn.in_irq = 0; - change_pc(saturn.pc); } static CPU_GET_CONTEXT( saturn ) @@ -152,7 +151,6 @@ static CPU_SET_CONTEXT( saturn ) if( src ) { saturn = *(Saturn_Regs*)src; - change_pc(saturn.pc); } } @@ -169,15 +167,12 @@ INLINE void saturn_take_irq(void) LOG(("Saturn#%d takes IRQ ($%04x)\n", cpunum_get_active(), saturn.pc)); if (saturn.irq_callback) (*saturn.irq_callback)(saturn.device, SATURN_IRQ_LINE); - change_pc(saturn.pc); } static CPU_EXECUTE( saturn ) { saturn_ICount = cycles; - change_pc(saturn.pc); - do { saturn.oldpc = saturn.pc; @@ -261,7 +256,7 @@ static CPU_SET_INFO( saturn ) case CPUINFO_INT_INPUT_STATE + SATURN_WAKEUP_LINE: saturn_set_wakeup_line(info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + SATURN_PC: saturn.pc = info->i; change_pc(saturn.pc); break; + case CPUINFO_INT_REGISTER + SATURN_PC: saturn.pc = info->i; break; case CPUINFO_INT_REGISTER + SATURN_D0: saturn.d[0] = info->i; break; case CPUINFO_INT_REGISTER + SATURN_D1: saturn.d[1] = info->i; break; case CPUINFO_INT_REGISTER + SATURN_A: IntReg64(saturn.reg[A], info->i); break; diff --git a/src/emu/cpu/sc61860/sc61860.c b/src/emu/cpu/sc61860/sc61860.c index c33fbfb82d5..248eb1812c3 100644 --- a/src/emu/cpu/sc61860/sc61860.c +++ b/src/emu/cpu/sc61860/sc61860.c @@ -85,7 +85,6 @@ static CPU_RESET( sc61860 ) sc61860.timer.t512ms=0; sc61860.timer.count=256; sc61860.pc=0; - change_pc(sc61860.pc); } static CPU_INIT( sc61860 ) @@ -107,7 +106,6 @@ static CPU_SET_CONTEXT( sc61860 ) if( src ) { sc61860 = *(SC61860_Regs*)src; - change_pc(sc61860.pc); } } @@ -115,8 +113,6 @@ static CPU_EXECUTE( sc61860 ) { sc61860_ICount = cycles; - change_pc(sc61860.pc); - do { sc61860.oldpc = sc61860.pc; @@ -155,7 +151,7 @@ static CPU_SET_INFO( sc61860 ) { case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + SC61860_PC: sc61860.pc = info->i; change_pc(sc61860.pc); break; + case CPUINFO_INT_REGISTER + SC61860_PC: sc61860.pc = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + SC61860_R: sc61860.r = info->i & 0x7F; break; case CPUINFO_INT_REGISTER + SC61860_DP: sc61860.dp = info->i; break; diff --git a/src/emu/cpu/sc61860/scops.c b/src/emu/cpu/sc61860/scops.c index a4ce85bb040..678889daaf3 100644 --- a/src/emu/cpu/sc61860/scops.c +++ b/src/emu/cpu/sc61860/scops.c @@ -299,12 +299,10 @@ INLINE void sc61860_execute_table_call(void) sc61860.zero=v==sc61860.ram[A]; if (sc61860.zero) { sc61860.pc=adr; - change_pc(sc61860.pc); return; } } sc61860.pc=READ_OP_ARG_WORD(); - change_pc(sc61860.pc); } @@ -313,7 +311,6 @@ INLINE void sc61860_call(UINT16 adr) PUSH(sc61860.pc>>8); PUSH(sc61860.pc&0xff); sc61860.pc=adr; - change_pc(sc61860.pc); } INLINE void sc61860_return(void) @@ -321,7 +318,6 @@ INLINE void sc61860_return(void) UINT16 t=POP(); t|=POP()<<8; sc61860.pc=t; - change_pc(sc61860.pc); } INLINE void sc61860_jump(int yes) @@ -329,7 +325,6 @@ INLINE void sc61860_jump(int yes) UINT16 adr=READ_OP_ARG_WORD(); if (yes) { sc61860.pc=adr; - change_pc(sc61860.pc); } } @@ -339,7 +334,6 @@ INLINE void sc61860_jump_rel_plus(int yes) adr+=READ_OP_ARG(); if (yes) { sc61860.pc=adr; - change_pc(sc61860.pc); sc61860_ICount-=3; } } @@ -350,7 +344,6 @@ INLINE void sc61860_jump_rel_minus(int yes) adr-=READ_OP_ARG(); if (yes) { sc61860.pc=adr; - change_pc(sc61860.pc); sc61860_ICount-=3; } } @@ -365,7 +358,6 @@ INLINE void sc61860_loop(void) if (!sc61860.carry) { sc61860.pc=adr; adr=POP(); - change_pc(sc61860.pc); sc61860_ICount-=3; } } diff --git a/src/emu/cpu/se3208/se3208.c b/src/emu/cpu/se3208/se3208.c index 489dcb89631..5452dfb8964 100644 --- a/src/emu/cpu/se3208/se3208.c +++ b/src/emu/cpu/se3208/se3208.c @@ -540,7 +540,6 @@ INST(POP) if(Set&(1<<10)) { se3208_state->PC=PopVal(se3208_state)-2; //PC automatically incresases by 2 - change_pc(se3208_state->PC+2); } } @@ -1011,7 +1010,6 @@ INST(CALL) Offset<<=1; PushVal(se3208_state,se3208_state->PC+2); se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); CLRFLAG(FLAG_E); } @@ -1029,7 +1027,6 @@ INST(JV) if(TESTFLAG(FLAG_V)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1049,7 +1046,6 @@ INST(JNV) if(!TESTFLAG(FLAG_V)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1068,7 +1064,6 @@ INST(JC) if(TESTFLAG(FLAG_C)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1087,7 +1082,6 @@ INST(JNC) if(!TESTFLAG(FLAG_C)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1106,7 +1100,6 @@ INST(JP) if(!TESTFLAG(FLAG_S)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1125,7 +1118,6 @@ INST(JM) if(TESTFLAG(FLAG_S)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1144,7 +1136,6 @@ INST(JNZ) if(!TESTFLAG(FLAG_Z)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1163,7 +1154,6 @@ INST(JZ) if(TESTFLAG(FLAG_Z)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1184,7 +1174,6 @@ INST(JGE) if(!(S^V)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1205,7 +1194,6 @@ INST(JLE) if(TESTFLAG(FLAG_Z) || (S^V)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); } @@ -1223,7 +1211,6 @@ INST(JHI) if(!(TESTFLAG(FLAG_Z) || TESTFLAG(FLAG_C))) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1242,7 +1229,6 @@ INST(JLS) if(TESTFLAG(FLAG_Z) || TESTFLAG(FLAG_C)) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1263,7 +1249,6 @@ INST(JGT) if(!(TESTFLAG(FLAG_Z) || (S^V))) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1284,7 +1269,6 @@ INST(JLT) if(S^V) { se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); } CLRFLAG(FLAG_E); @@ -1304,7 +1288,6 @@ INST(JMP) Offset<<=1; se3208_state->PC=se3208_state->PC+Offset; - change_pc(se3208_state->PC+2); CLRFLAG(FLAG_E); } @@ -1314,7 +1297,6 @@ INST(JR) UINT32 Src=EXTRACT(Opcode,0,3); se3208_state->PC=se3208_state->R[Src]-2; - change_pc(se3208_state->PC+2); CLRFLAG(FLAG_E); } @@ -1324,7 +1306,6 @@ INST(CALLR) UINT32 Src=EXTRACT(Opcode,0,3); PushVal(se3208_state,se3208_state->PC+2); se3208_state->PC=se3208_state->R[Src]-2; - change_pc(se3208_state->PC+2); CLRFLAG(FLAG_E); } @@ -1429,7 +1410,6 @@ INST(SWI) CLRFLAG(FLAG_ENI|FLAG_E|FLAG_M); se3208_state->PC=SE3208_Read32(se3208_state, 4*Imm+0x40)-2; - change_pc(se3208_state->PC+2); } INST(HALT) @@ -1735,7 +1715,6 @@ static CPU_RESET( SE3208 ) se3208_state->SR=0; se3208_state->IRQ=CLEAR_LINE; se3208_state->NMI=CLEAR_LINE; - change_pc(se3208_state->PC+2); } static void SE3208_NMI(se3208_state_t *se3208_state) @@ -1746,7 +1725,6 @@ static void SE3208_NMI(se3208_state_t *se3208_state) CLRFLAG(FLAG_NMI|FLAG_ENI|FLAG_E|FLAG_M); se3208_state->PC=SE3208_Read32(se3208_state, 4); - change_pc(se3208_state->PC+2); } static void SE3208_Interrupt(se3208_state_t *se3208_state) @@ -1764,7 +1742,6 @@ static void SE3208_Interrupt(se3208_state_t *se3208_state) se3208_state->PC=SE3208_Read32(se3208_state, 8); else se3208_state->PC=SE3208_Read32(se3208_state, 4*se3208_state->irq_callback(se3208_state->device, 0)); - change_pc(se3208_state->PC+2); } diff --git a/src/emu/cpu/sh2/sh2.c b/src/emu/cpu/sh2/sh2.c index 653a122210d..6866c23558a 100644 --- a/src/emu/cpu/sh2/sh2.c +++ b/src/emu/cpu/sh2/sh2.c @@ -49,7 +49,6 @@ 20021020 O. Galibert - DMA implementation, lightly tested - - change_pc() crap fixed - delay slot in debugger fixed - add divide box mirrors - Nicola-ify the indentation @@ -334,7 +333,6 @@ INLINE void BF(UINT32 d) { INT32 disp = ((INT32)d << 24) >> 24; sh2->pc = sh2->ea = sh2->pc + disp * 2 + 2; - change_pc(sh2->pc & AM); sh2_icount -= 2; } } @@ -425,7 +423,6 @@ INLINE void BT(UINT32 d) { INT32 disp = ((INT32)d << 24) >> 24; sh2->pc = sh2->ea = sh2->pc + disp * 2 + 2; - change_pc(sh2->pc & AM); sh2_icount -= 2; } } @@ -1742,7 +1739,6 @@ INLINE void TRAPA(UINT32 i) WL( sh2->r[15], sh2->pc ); sh2->pc = RL( sh2->ea ); - change_pc(sh2->pc & AM); sh2_icount -= 7; } @@ -2173,7 +2169,6 @@ static CPU_RESET( sh2 ) sh2->pc = RL(0); sh2->r[15] = RL(4); sh2->sr = I; - change_pc(sh2->pc & AM); sh2->internal_irq_level = -1; } @@ -2203,7 +2198,6 @@ static CPU_EXECUTE( sh2 ) if (sh2->delay) { opcode = memory_decrypted_read_word(sh2->program, WORD_XOR_BE((UINT32)(sh2->delay & AM))); - change_pc(sh2->pc & AM); sh2->pc -= 2; } else diff --git a/src/emu/cpu/sh2/sh2comn.c b/src/emu/cpu/sh2/sh2comn.c index dab9787c9d1..1775db766f7 100644 --- a/src/emu/cpu/sh2/sh2comn.c +++ b/src/emu/cpu/sh2/sh2comn.c @@ -697,7 +697,6 @@ void sh2_exception(const char *message, int irqline) /* fetch PC */ sh2->pc = RL( sh2, sh2->vbr + vector * 4 ); - change_pc(sh2->pc & AM); #endif } diff --git a/src/emu/cpu/sh2/sh2drc.c b/src/emu/cpu/sh2/sh2drc.c index 31c8f71c86d..8c1f029ab38 100644 --- a/src/emu/cpu/sh2/sh2drc.c +++ b/src/emu/cpu/sh2/sh2drc.c @@ -818,7 +818,6 @@ static CPU_RESET( sh2 ) sh2->pc = memory_read_dword_32be(sh2->program, 0); sh2->r[15] = memory_read_dword_32be(sh2->program, 4); sh2->sr = I; - change_pc(sh2->pc & AM); sh2->internal_irq_level = -1; diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c index 682cc8501b9..02e69e36fb6 100644 --- a/src/emu/cpu/sh4/sh4.c +++ b/src/emu/cpu/sh4/sh4.c @@ -313,7 +313,6 @@ INLINE void BF(UINT32 d) { INT32 disp = ((INT32)d << 24) >> 24; sh4.pc = sh4.ea = sh4.pc + disp * 2 + 2; - change_pc(sh4.pc & AM); sh4.sh4_icount -= 2; } } @@ -404,7 +403,6 @@ INLINE void BT(UINT32 d) { INT32 disp = ((INT32)d << 24) >> 24; sh4.pc = sh4.ea = sh4.pc + disp * 2 + 2; - change_pc(sh4.pc & AM); sh4.sh4_icount -= 2; } } @@ -1743,7 +1741,6 @@ INLINE void TRAPA(UINT32 i) sh4.m[EXPEVT] = 0x00000160; sh4.pc = sh4.vbr + 0x00000100; - change_pc(sh4.pc & AM); sh4.sh4_icount -= 7; } @@ -3311,7 +3308,6 @@ static CPU_RESET( sh4 ) sh4.fpu_pr = (sh4.fpscr & PR) ? 1 : 0; sh4.fpul = 0; sh4.dbr = 0; - change_pc(sh4.pc & AM); sh4.internal_irq_level = -1; sh4.irln = 15; @@ -3332,7 +3328,6 @@ static CPU_EXECUTE( sh4 ) if (sh4.delay) { opcode = memory_decrypted_read_word(sh4.program, WORD2_XOR_LE((UINT32)(sh4.delay & AM))); - change_pc(sh4.pc & AM); sh4.pc -= 2; } else diff --git a/src/emu/cpu/sh4/sh4comn.c b/src/emu/cpu/sh4/sh4comn.c index 074e8c1bf33..ea53409decd 100644 --- a/src/emu/cpu/sh4/sh4comn.c +++ b/src/emu/cpu/sh4/sh4comn.c @@ -206,7 +206,6 @@ void sh4_exception(const char *message, int exception) // handle exception /* fetch PC */ sh4.pc = sh4.vbr + vector; - change_pc(sh4.pc & AM); } static UINT32 compute_ticks_refresh_timer(emu_timer *timer, int hertz, int base, int divisor) diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c index 89f20e71b57..6b1c47cc91e 100644 --- a/src/emu/cpu/sharc/sharc.c +++ b/src/emu/cpu/sharc/sharc.c @@ -617,8 +617,6 @@ static CPU_SET_CONTEXT( sharc ) { sharc = *(SHARC_REGS *)src; } - - change_pc(sharc.pc); } static void sharc_set_irq_line(int irqline, int state) diff --git a/src/emu/cpu/spc700/spc700.h b/src/emu/cpu/spc700/spc700.h index a8aedd448ef..fdc25c7564b 100644 --- a/src/emu/cpu/spc700/spc700.h +++ b/src/emu/cpu/spc700/spc700.h @@ -141,8 +141,8 @@ extern CPU_GET_INFO( spc700 ); //#define spc700_read_8_immediate(A) memory_raw_read_byte(spc700i_cpu.program,A) #define spc700_read_instruction(A) memory_read_byte_8le(spc700i_cpu.program,A) #define spc700_read_8_immediate(A) memory_read_byte_8le(spc700i_cpu.program,A) -#define spc700_jumping(A) change_pc(A) -#define spc700_branching(A) change_pc(A) +#define spc700_jumping(A) +#define spc700_branching(A) diff --git a/src/emu/cpu/ssp1601/ssp1601.c b/src/emu/cpu/ssp1601/ssp1601.c index bd2c0c04635..7eebf71fd5c 100644 --- a/src/emu/cpu/ssp1601/ssp1601.c +++ b/src/emu/cpu/ssp1601/ssp1601.c @@ -78,7 +78,6 @@ struct _ssp1601_state_t #define FETCH() memory_decrypted_read_word(ssp1601_state->program, rPC++ << 1) #define PROGRAM_WORD(a) memory_read_word(ssp1601_state->program, (a) << 1) #define GET_PPC_OFFS() PPC -#define CHANGEPC() change_pc(rPC << 1) #define REG_READ(ssp1601_state,r) (((r) <= 4) ? ssp1601_state->gr[r].w.h : reg_read_handlers[r](ssp1601_state, r)) #define REG_WRITE(ssp1601_state,r,d) { \ @@ -294,7 +293,6 @@ static void write_PC(ssp1601_state_t *ssp1601_state, int reg, UINT32 d) { rPC = d; ssp1601_state->g_cycles--; - CHANGEPC(); } // 7 @@ -611,7 +609,7 @@ static CPU_EXECUTE( ssp1601 ) int cond = 0; CHECK_00f(); COND_CHECK - if (cond) { int new_PC = FETCH(); write_STACK(ssp1601_state, SSP_STACK, rPC); rPC = new_PC; CHANGEPC(); } + if (cond) { int new_PC = FETCH(); write_STACK(ssp1601_state, SSP_STACK, rPC); rPC = new_PC; } else rPC++; ssp1601_state->g_cycles--; // always 2 cycles break; @@ -630,7 +628,7 @@ static CPU_EXECUTE( ssp1601 ) int cond = 0; CHECK_00f(); COND_CHECK - if (cond) { rPC = FETCH(); CHANGEPC(); } + if (cond) { rPC = FETCH(); } else rPC++; ssp1601_state->g_cycles--; break; diff --git a/src/emu/cpu/t11/t11.c b/src/emu/cpu/t11/t11.c index 5f76cca8c17..9e906ba6de9 100644 --- a/src/emu/cpu/t11/t11.c +++ b/src/emu/cpu/t11/t11.c @@ -224,7 +224,6 @@ static void t11_check_irqs(void) PUSH(PC); PCD = new_pc; PSW = new_psw; - change_pc(PC); t11_check_irqs(); /* count cycles and clear the WAIT flag */ @@ -273,7 +272,6 @@ static CPU_SET_CONTEXT( t11 ) { if (src) t11 = *(t11_Regs *)src; - change_pc(PC); t11_check_irqs(); } @@ -337,7 +335,6 @@ static CPU_RESET( t11 ) /* initial PC comes from the setup word */ PC = t11.initial_pc; - change_pc(PC); /* PSW starts off at highest priority */ PSW = 0xe0; @@ -433,7 +430,7 @@ static CPU_SET_INFO( t11 ) case CPUINFO_INT_INPUT_STATE + T11_IRQ3: set_irq_line(T11_IRQ3, info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + T11_PC: PC = info->i; change_pc(PC); break; + case CPUINFO_INT_REGISTER + T11_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + T11_SP: SP = info->i; break; case CPUINFO_INT_REGISTER + T11_PSW: PSW = info->i; break; diff --git a/src/emu/cpu/t11/t11ops.c b/src/emu/cpu/t11/t11ops.c index 4d6d850e7b3..ed51fe3876e 100644 --- a/src/emu/cpu/t11/t11ops.c +++ b/src/emu/cpu/t11/t11ops.c @@ -192,9 +192,9 @@ #define INCB_R(d) int dreg, dest, result; GET_DB_##d; CLR_NZV; result = dest + 1; SETB_NZ; if (dest == 0x7f) SET_V; PUT_DB_DREG(result) #define INCB_M(d) int dreg, dest, result, ea; GET_DB_##d; CLR_NZV; result = dest + 1; SETB_NZ; if (dest == 0x7f) SET_V; PUT_DB_EA(result) /* JMP: PC = ea */ -#define JMP(d) int dreg, ea; GET_DREG; MAKE_EAW_##d(dreg); PC = ea; change_pc(PC) +#define JMP(d) int dreg, ea; GET_DREG; MAKE_EAW_##d(dreg); PC = ea /* JSR: PUSH src, src = PC, PC = ea */ -#define JSR(d) int sreg, dreg, ea; GET_SREG; GET_DREG; MAKE_EAW_##d(dreg); PUSH(REGW(sreg)); REGW(sreg) = PC; PC = ea; change_pc(PC) +#define JSR(d) int sreg, dreg, ea; GET_SREG; GET_DREG; MAKE_EAW_##d(dreg); PUSH(REGW(sreg)); REGW(sreg) = PC; PC = ea /* MFPS: dst = flags */ #define MFPS_R(d) int dreg, result; result = PSW; CLR_NZV; SETB_NZ; PUT_DW_##d((signed char)result) #define MFPS_M(d) int dreg, result, ea; result = PSW; CLR_NZV; SETB_NZ; PUT_DB_##d(result) @@ -257,11 +257,11 @@ static void op_0000(void) { case 0x00: /* HALT */ halt(); break; case 0x01: /* WAIT */ t11_ICount = 0; t11.wait_state = 1; break; - case 0x02: /* RTI */ t11_ICount -= 24; PC = POP(); PSW = POP(); change_pc(PC); t11_check_irqs(); break; - case 0x03: /* BPT */ t11_ICount -= 48; PUSH(PSW); PUSH(PC); PC = RWORD(0x0c); PSW = RWORD(0x0e); change_pc(PC); t11_check_irqs(); break; - case 0x04: /* IOT */ t11_ICount -= 48; PUSH(PSW); PUSH(PC); PC = RWORD(0x10); PSW = RWORD(0x12); change_pc(PC); t11_check_irqs(); break; + case 0x02: /* RTI */ t11_ICount -= 24; PC = POP(); PSW = POP(); t11_check_irqs(); break; + case 0x03: /* BPT */ t11_ICount -= 48; PUSH(PSW); PUSH(PC); PC = RWORD(0x0c); PSW = RWORD(0x0e); t11_check_irqs(); break; + case 0x04: /* IOT */ t11_ICount -= 48; PUSH(PSW); PUSH(PC); PC = RWORD(0x10); PSW = RWORD(0x12); t11_check_irqs(); break; case 0x05: /* RESET */ t11_ICount -= 110; break; - case 0x06: /* RTT */ t11_ICount -= 33; PC = POP(); PSW = POP(); change_pc(PC); t11_check_irqs(); break; + case 0x06: /* RTT */ t11_ICount -= 33; PC = POP(); PSW = POP(); t11_check_irqs(); break; default: illegal(); break; } } @@ -273,7 +273,6 @@ static void halt(void) PUSH(PC); PC = RWORD(0x04); PSW = RWORD(0x06); - change_pc(PC); t11_check_irqs(); } @@ -284,7 +283,6 @@ static void illegal(void) PUSH(PC); PC = RWORD(0x08); PSW = RWORD(0x0a); - change_pc(PC); t11_check_irqs(); } @@ -295,8 +293,6 @@ static void mark(void) SP = SP + 2 * (t11.op & 0x3f); PC = REGW(5); REGW(5) = POP(); - - change_pc(PC); } static void jmp_rgd(void) { t11_ICount -= 15; { JMP(RGD); } } @@ -314,7 +310,6 @@ static void rts(void) GET_DREG; PC = REGD(dreg); REGW(dreg) = POP(); - change_pc(PC); } static void ccc(void) { t11_ICount -= 18; { PSW &= ~(t11.op & 15); } } @@ -889,7 +884,6 @@ static void emt(void) PUSH(PC); PC = RWORD(0x18); PSW = RWORD(0x1a); - change_pc(PC); t11_check_irqs(); } @@ -900,7 +894,6 @@ static void trap(void) PUSH(PC); PC = RWORD(0x1c); PSW = RWORD(0x1e); - change_pc(PC); t11_check_irqs(); } diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/emu/cpu/tlcs90/tlcs90.c index f8265745f0f..546e224d4d7 100644 --- a/src/emu/cpu/tlcs90/tlcs90.c +++ b/src/emu/cpu/tlcs90/tlcs90.c @@ -1077,7 +1077,7 @@ INLINE void w16( const e_r r, UINT16 value ) case SP: T90.sp.w.l = value; return; case AF: T90.af.w.l = value; return; case AF2: T90.af2.w.l = value; return; - case PC: change_pc( T90.pc.d = value ); return; + case PC: T90.pc.d = value; return; default: fatalerror("%04x: unimplemented w16 register index = %d\n",cpu_get_pc(Machine->activecpu),r); @@ -1286,7 +1286,6 @@ static void take_interrupt(e_irq irq) F &= ~IF; T90.pc.w.l = 0x10 + irq * 8; - change_pc( T90.pc.d ); T90.extra_cycles += 20*2; } @@ -1463,7 +1462,6 @@ static CPU_EXECUTE( t90 ) if ( Test( Read1_8() ) ) { T90.pc.w.l = Read2_16(); - change_pc( T90.pc.d ); Cyc(); } else Cyc_f(); @@ -1472,7 +1470,6 @@ static CPU_EXECUTE( t90 ) if ( Test( Read1_8() ) ) { T90.pc.w.l += /*2 +*/ (INT8)Read2_8(); - change_pc( T90.pc.d ); Cyc(); } else Cyc_f(); @@ -1481,7 +1478,6 @@ static CPU_EXECUTE( t90 ) if ( Test( Read1_8() ) ) { T90.pc.w.l += /*2 +*/ Read2_16(); - change_pc( T90.pc.d ); Cyc(); } else Cyc_f(); @@ -1493,7 +1489,6 @@ static CPU_EXECUTE( t90 ) { Push( PC ); T90.pc.w.l = Read2_16(); - change_pc( T90.pc.d ); Cyc(); } else Cyc_f(); @@ -1501,7 +1496,6 @@ static CPU_EXECUTE( t90 ) case CALLR: Push( PC ); T90.pc.w.l += /*2 +*/ Read1_16(); - change_pc( T90.pc.d ); Cyc(); break; @@ -1912,7 +1906,6 @@ static CPU_EXECUTE( t90 ) if ( --T90.bc.b.h ) { T90.pc.w.l += /*2 +*/ (INT8)Read1_8(); - change_pc( T90.pc.d ); Cyc(); } else Cyc_f(); @@ -1921,7 +1914,6 @@ static CPU_EXECUTE( t90 ) if ( --T90.bc.w.l ) { T90.pc.w.l += /*2 +*/ (INT8)Read2_8(); - change_pc( T90.pc.d ); Cyc(); } else Cyc_f(); @@ -1973,7 +1965,7 @@ static CPU_RESET( t90 ) { T90.irq_state = 0; T90.irq_mask = 0; - change_pc( T90.pc.d = 0x0000 ); + T90.pc.d = 0x0000; F &= ~IF; /* P0/D0-D7 P1/A0-A7 P2/A8-A15 P6 P7 = INPUT @@ -2003,7 +1995,6 @@ static CPU_SET_CONTEXT( t90 ) { if( src ) T90 = *(t90_Regs*)src; - change_pc(T90.pc.d); } @@ -2708,7 +2699,7 @@ static CPU_SET_INFO( t90 ) case CPUINFO_INT_INPUT_STATE + INPUT_LINE_IRQ1: set_irq_line( INT1, info->i); break; case CPUINFO_INT_INPUT_STATE + INPUT_LINE_IRQ2: set_irq_line( INT2, info->i); break; - case CPUINFO_INT_PC: change_pc( T90.pc.d = info->i ); break; + case CPUINFO_INT_PC: T90.pc.d = info->i; break; case CPUINFO_INT_REGISTER + T90_PC: T90.pc.w.l = info->i; break; case CPUINFO_INT_SP: T90.sp.w.l = info->i; break; case CPUINFO_INT_REGISTER + T90_SP: T90.sp.w.l = info->i; break; diff --git a/src/emu/cpu/tms32025/tms32025.c b/src/emu/cpu/tms32025/tms32025.c index ad73d853dad..098503fac5e 100644 --- a/src/emu/cpu/tms32025/tms32025.c +++ b/src/emu/cpu/tms32025/tms32025.c @@ -132,7 +132,7 @@ Table 3-2. TMS32025/26 Memory Blocks static UINT16 *tms32025_pgmmap[0x200]; static UINT16 *tms32025_datamap[0x200]; -#define SET_PC(x) do { R.PC = (x); change_pc(R.PC<<1); } while (0) +#define SET_PC(x) do { R.PC = (x); } while (0) #define P_IN(A) (memory_read_word_16be(R.io, (A)<<1)) #define P_OUT(A,V) (memory_write_word_16be(R.io, ((A)<<1),(V))) diff --git a/src/emu/cpu/tms32051/tms32051.c b/src/emu/cpu/tms32051/tms32051.c index 49e9b3e58f2..706cbb1145a 100644 --- a/src/emu/cpu/tms32051/tms32051.c +++ b/src/emu/cpu/tms32051/tms32051.c @@ -161,7 +161,6 @@ static int tms_icount; INLINE void CHANGE_PC(UINT16 new_pc) { tms.pc = new_pc; - change_pc(tms.pc << 1); } INLINE UINT16 PM_READ16(UINT16 address) diff --git a/src/emu/cpu/tms34010/34010ops.c b/src/emu/cpu/tms34010/34010ops.c index 35817e17646..e1b68b206fb 100644 --- a/src/emu/cpu/tms34010/34010ops.c +++ b/src/emu/cpu/tms34010/34010ops.c @@ -91,7 +91,6 @@ static void unimpl(tms34010_state *tms, UINT16 op) PUSH(tms, GET_ST(tms)); RESET_ST(tms); tms->pc = RLONG(tms, 0xfffffc20); - change_pc(TOBYTE(tms->pc)); COUNT_UNKNOWN_CYCLES(tms,16); /* extra check to prevent bad things */ @@ -1425,7 +1424,6 @@ static void move1_aa (tms34010_state *tms, UINT16 op) { MOVE_AA(1); } PUSH(tms, tms->pc); \ tms->pc = R##REG(tms,DSTREG(op)); \ CORRECT_ODD_PC(tms,"CALL"); \ - change_pc(TOBYTE(tms->pc)); \ COUNT_CYCLES(tms,3); \ } static void call_a (tms34010_state *tms, UINT16 op) { CALL(A); } @@ -1443,7 +1441,6 @@ static void calla(tms34010_state *tms, UINT16 op) PUSH(tms, tms->pc+0x20); tms->pc = PARAM_LONG_NO_INC(tms); CORRECT_ODD_PC(tms,"CALLA"); - change_pc(TOBYTE(tms->pc)); COUNT_CYCLES(tms,4); } @@ -1550,7 +1547,6 @@ static void emu(tms34010_state *tms, UINT16 op) *rd = tms->pc; \ tms->pc = temppc; \ CORRECT_ODD_PC(tms,"EXGPC"); \ - change_pc(TOBYTE(tms->pc)); \ COUNT_CYCLES(tms,2); \ } static void exgpc_a (tms34010_state *tms, UINT16 op) { EXGPC(A); } @@ -1590,7 +1586,6 @@ static void getst_b (tms34010_state *tms, UINT16 op) { GETST(B); } { \ tms->pc = PARAM_LONG_NO_INC(tms); \ CORRECT_ODD_PC(tms,"J_XX_8"); \ - change_pc(TOBYTE(tms->pc)); \ COUNT_CYCLES(tms,3); \ } \ else \ @@ -1836,7 +1831,6 @@ static void j_NN_x(tms34010_state *tms, UINT16 op) { \ tms->pc = R##REG(tms,DSTREG(op)); \ CORRECT_ODD_PC(tms,"JUMP"); \ - change_pc(TOBYTE(tms->pc)); \ COUNT_CYCLES(tms,2); \ } static void jump_a (tms34010_state *tms, UINT16 op) { JUMP(A); } @@ -1867,7 +1861,6 @@ static void reti(tms34010_state *tms, UINT16 op) INT32 st = POP(tms); tms->pc = POP(tms); CORRECT_ODD_PC(tms,"RETI"); - change_pc(TOBYTE(tms->pc)); SET_ST(tms, st); COUNT_CYCLES(tms,11); } @@ -1877,7 +1870,6 @@ static void rets(tms34010_state *tms, UINT16 op) UINT32 offs; tms->pc = POP(tms); CORRECT_ODD_PC(tms,"RETS"); - change_pc(TOBYTE(tms->pc)); offs = PARAM_N(op); if (offs) { @@ -1905,7 +1897,6 @@ static void trap(tms34010_state *tms, UINT16 op) RESET_ST(tms); tms->pc = RLONG(tms, 0xffffffe0-(t<<5)); CORRECT_ODD_PC(tms,"TRAP"); - change_pc(TOBYTE(tms->pc)); COUNT_CYCLES(tms,16); } diff --git a/src/emu/cpu/tms34010/tms34010.c b/src/emu/cpu/tms34010/tms34010.c index 3eaa50721cb..e9a8a26fc72 100644 --- a/src/emu/cpu/tms34010/tms34010.c +++ b/src/emu/cpu/tms34010/tms34010.c @@ -546,7 +546,6 @@ static void check_interrupt(tms34010_state *tms) /* leap to the vector */ RESET_ST(tms); tms->pc = RLONG(tms, 0xfffffee0); - change_pc(TOBYTE(tms->pc)); COUNT_CYCLES(tms,16); return; } @@ -600,7 +599,6 @@ static void check_interrupt(tms34010_state *tms) PUSH(tms, GET_ST(tms)); RESET_ST(tms); tms->pc = RLONG(tms, vector); - change_pc(TOBYTE(tms->pc)); COUNT_CYCLES(tms,16); /* call the callback for externals */ @@ -671,7 +669,6 @@ static CPU_RESET( tms34010 ) /* fetch the initial PC and reset the state */ tms->pc = RLONG(tms, 0xffffffe0) & 0xfffffff0; - change_pc(TOBYTE(tms->pc)); RESET_ST(tms); /* HALT the CPU if requested, and remember to re-read the starting PC */ @@ -808,7 +805,6 @@ static CPU_EXECUTE( tms34010 ) /* execute starting now */ tms->icount = cycles; - change_pc(TOBYTE(tms->pc)); /* check interrupts first */ tms->executing = TRUE; @@ -1573,7 +1569,6 @@ READ16_HANDLER( tms34020_io_register_r ) static STATE_POSTLOAD( tms34010_state_postload ) { tms34010_state *tms = param; - change_pc(TOBYTE(tms->pc)); set_raster_op(tms); set_pixel_function(tms); } @@ -1714,7 +1709,7 @@ static CPU_SET_INFO( tms34010 ) case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(tms, 0, info->i); break; case CPUINFO_INT_INPUT_STATE + 1: set_irq_line(tms, 1, info->i); break; - case CPUINFO_INT_PC: tms->pc = info->i; change_pc(TOBYTE(tms->pc)); break; + case CPUINFO_INT_PC: tms->pc = info->i; break; case CPUINFO_INT_REGISTER + TMS34010_PC: tms->pc = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + TMS34010_SP: SP(tms) = info->i; break; diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c index 835fa1f91f9..29dd769aab9 100644 --- a/src/emu/cpu/tms7000/tms7000.c +++ b/src/emu/cpu/tms7000/tms7000.c @@ -122,9 +122,6 @@ static tms7000_Regs tms7000; #define SETZ pSR |= SR_Z #define SETN pSR |= SR_N -#define CHANGE_PC change_pc(pPC) - - static READ8_HANDLER( tms7000_internal_r ); static WRITE8_HANDLER( tms7000_internal_w ); static READ8_HANDLER( tms70x0_pf_r ); @@ -249,7 +246,6 @@ static CPU_RESET( tms7000 ) WRA( tms7000.pc.b.h ); /* Write previous PC to A:B */ WRB( tms7000.pc.b.l ); pPC = RM16(0xfffe); /* Load reset vector */ - CHANGE_PC; tms7000_div_by_16_trigger = -16; } @@ -270,7 +266,7 @@ static CPU_SET_INFO( tms7000 ) case CPUINFO_INT_INPUT_STATE + TMS7000_IRQ3_LINE: tms7000_set_irq_line(TMS7000_IRQ3_LINE, info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + TMS7000_PC: pPC = info->i; CHANGE_PC; break; + case CPUINFO_INT_REGISTER + TMS7000_PC: pPC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + TMS7000_SP: pSP = info->i; break; case CPUINFO_INT_REGISTER + TMS7000_ST: pSR = info->i; tms7000_check_IRQ_lines(); break; @@ -449,7 +445,6 @@ static void tms7000_do_interrupt( UINT16 address, UINT8 line ) PUSHWORD( PC ); /* Push Program Counter */ pSR = 0; /* Clear Status register */ pPC = RM16(address); /* Load PC with interrupt vector */ - CHANGE_PC; if( tms7000.idle_state == 0 ) tms7000_icount -= 19; /* 19 cycles used */ diff --git a/src/emu/cpu/tms7000/tms70op.c b/src/emu/cpu/tms7000/tms70op.c index a527dfcbe3a..5171bf0a1e1 100644 --- a/src/emu/cpu/tms7000/tms70op.c +++ b/src/emu/cpu/tms7000/tms70op.c @@ -466,7 +466,6 @@ static void br_dir( void ) IMMWORD( p ); pPC = p.d; - CHANGE_PC; tms7000_icount -= 10; } @@ -486,7 +485,6 @@ static void br_inx( void ) IMMWORD( p ); pPC = p.w.l + RDB; - CHANGE_PC; tms7000_icount -= 12; } @@ -513,7 +511,6 @@ static void btjo_b2a( void ) pPC++; tms7000_icount -= 7; } - CHANGE_PC; } static void btjo_r2a( void ) @@ -540,7 +537,6 @@ static void btjo_r2a( void ) pPC++; tms7000_icount -= 7; } - CHANGE_PC; } static void btjo_r2b( void ) @@ -567,7 +563,6 @@ static void btjo_r2b( void ) pPC++; tms7000_icount -= 10; } - CHANGE_PC; } static void btjo_r2r( void ) @@ -595,7 +590,6 @@ static void btjo_r2r( void ) pPC++; tms7000_icount -= 12; } - CHANGE_PC; } static void btjo_i2a( void ) @@ -622,7 +616,6 @@ static void btjo_i2a( void ) pPC++; tms7000_icount -= 9; } - CHANGE_PC; } static void btjo_i2b( void ) @@ -649,7 +642,6 @@ static void btjo_i2b( void ) pPC++; tms7000_icount -= 9; } - CHANGE_PC; } static void btjo_i2r( void ) @@ -677,7 +669,6 @@ static void btjo_i2r( void ) pPC++; tms7000_icount -= 11; } - CHANGE_PC; } static void btjop_ap( void ) @@ -705,7 +696,6 @@ static void btjop_ap( void ) pPC++; tms7000_icount -= 11; } - CHANGE_PC; } static void btjop_bp( void ) @@ -733,7 +723,6 @@ static void btjop_bp( void ) pPC++; tms7000_icount -= 10; } - CHANGE_PC; } static void btjop_ip( void ) @@ -762,7 +751,6 @@ static void btjop_ip( void ) pPC++; tms7000_icount -= 12; } - CHANGE_PC; } static void btjz_b2a( void ) @@ -788,7 +776,6 @@ static void btjz_b2a( void ) pPC++; tms7000_icount -= 7; } - CHANGE_PC; } static void btjz_r2a( void ) @@ -815,7 +802,6 @@ static void btjz_r2a( void ) pPC++; tms7000_icount -= 7; } - CHANGE_PC; } static void btjz_r2b( void ) @@ -842,7 +828,6 @@ static void btjz_r2b( void ) pPC++; tms7000_icount -= 10; } - CHANGE_PC; } static void btjz_r2r( void ) @@ -870,7 +855,6 @@ static void btjz_r2r( void ) pPC++; tms7000_icount -= 12; } - CHANGE_PC; } static void btjz_i2a( void ) @@ -897,7 +881,6 @@ static void btjz_i2a( void ) pPC++; tms7000_icount -= 9; } - CHANGE_PC; } static void btjz_i2b( void ) @@ -924,7 +907,6 @@ static void btjz_i2b( void ) pPC++; tms7000_icount -= 9; } - CHANGE_PC; } static void btjz_i2r( void ) @@ -952,7 +934,6 @@ static void btjz_i2r( void ) pPC++; tms7000_icount -= 11; } - CHANGE_PC; } static void btjzp_ap( void ) @@ -980,7 +961,6 @@ static void btjzp_ap( void ) pPC++; tms7000_icount -= 11; } - CHANGE_PC; } static void btjzp_bp( void ) @@ -1008,7 +988,6 @@ static void btjzp_bp( void ) pPC++; tms7000_icount -= 10; } - CHANGE_PC; } static void btjzp_ip( void ) @@ -1037,7 +1016,6 @@ static void btjzp_ip( void ) pPC++; tms7000_icount -= 12; } - CHANGE_PC; } static void call_dir( void ) @@ -1047,7 +1025,6 @@ static void call_dir( void ) IMMWORD( tPC ); PUSHWORD( PC ); pPC = tPC.d; - CHANGE_PC; tms7000_icount -= 14; } @@ -1070,7 +1047,6 @@ static void call_inx( void ) IMMWORD( tPC ); PUSHWORD( PC ); pPC = tPC.w.l + RDB; - CHANGE_PC; tms7000_icount -= 16; } @@ -1601,7 +1577,6 @@ static void djnz_a( void ) pPC++; tms7000_icount -= 2; } - CHANGE_PC; } static void djnz_b( void ) @@ -1629,7 +1604,6 @@ static void djnz_b( void ) pPC++; tms7000_icount -= 2; } - CHANGE_PC; } static void djnz_r( void ) @@ -1660,7 +1634,6 @@ static void djnz_r( void ) pPC++; tms7000_icount -= 3; } - CHANGE_PC; } static void dsb_b2a( void ) @@ -1934,7 +1907,6 @@ static void jc( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } else @@ -1952,7 +1924,6 @@ static void jeq( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } else @@ -1975,7 +1946,6 @@ static void jl( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } } @@ -1986,7 +1956,6 @@ static void jmp( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } @@ -1998,7 +1967,6 @@ static void j_jn( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } else @@ -2022,7 +1990,6 @@ static void jne( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } } @@ -2040,7 +2007,6 @@ static void jp( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } } @@ -2053,7 +2019,6 @@ static void jpz( void ) SIMMBYTE( s ); pPC += s; - CHANGE_PC; tms7000_icount -= 7; } else @@ -3427,7 +3392,6 @@ static void trap_0( void ) { PUSHWORD( PC ); pPC = RM16(0xfffe); - CHANGE_PC; tms7000_icount -= 14; } @@ -3435,7 +3399,6 @@ static void trap_1( void ) { PUSHWORD( PC ); pPC = RM16(0xfffc); - CHANGE_PC; tms7000_icount -= 14; } @@ -3443,7 +3406,6 @@ static void trap_2( void ) { PUSHWORD( PC ); pPC = RM16(0xfffa); - CHANGE_PC; tms7000_icount -= 14; } @@ -3451,7 +3413,6 @@ static void trap_3( void ) { PUSHWORD( PC ); pPC = RM16(0xfff8); - CHANGE_PC; tms7000_icount -= 14; } @@ -3459,7 +3420,6 @@ static void trap_4( void ) { PUSHWORD( PC ); pPC = RM16(0xfff6); - CHANGE_PC; tms7000_icount -= 14; } @@ -3467,7 +3427,6 @@ static void trap_5( void ) { PUSHWORD( PC ); pPC = RM16(0xfff4); - CHANGE_PC; tms7000_icount -= 14; } @@ -3475,7 +3434,6 @@ static void trap_6( void ) { PUSHWORD( PC ); pPC = RM16(0xfff2); - CHANGE_PC; tms7000_icount -= 14; } @@ -3483,7 +3441,6 @@ static void trap_7( void ) { PUSHWORD( PC ); pPC = RM16(0xfff0); - CHANGE_PC; tms7000_icount -= 14; } @@ -3491,7 +3448,6 @@ static void trap_8( void ) { PUSHWORD( PC ); pPC = RM16(0xffee); - CHANGE_PC; tms7000_icount -= 14; } @@ -3499,7 +3455,6 @@ static void trap_9( void ) { PUSHWORD( PC ); pPC = RM16(0xffec); - CHANGE_PC; tms7000_icount -= 14; } @@ -3507,7 +3462,6 @@ static void trap_10( void ) { PUSHWORD( PC ); pPC = RM16(0xffea); - CHANGE_PC; tms7000_icount -= 14; } @@ -3515,7 +3469,6 @@ static void trap_11( void ) { PUSHWORD( PC ); pPC = RM16(0xffe8); - CHANGE_PC; tms7000_icount -= 14; } @@ -3523,7 +3476,6 @@ static void trap_12( void ) { PUSHWORD( PC ); pPC = RM16(0xffe6); - CHANGE_PC; tms7000_icount -= 14; } @@ -3531,7 +3483,6 @@ static void trap_13( void ) { PUSHWORD( PC ); pPC = RM16(0xffe4); - CHANGE_PC; tms7000_icount -= 14; } @@ -3539,7 +3490,6 @@ static void trap_14( void ) { PUSHWORD( PC ); pPC = RM16(0xffe2); - CHANGE_PC; tms7000_icount -= 14; } @@ -3547,7 +3497,6 @@ static void trap_15( void ) { PUSHWORD( PC ); pPC = RM16(0xffe0); - CHANGE_PC; tms7000_icount -= 14; } @@ -3555,7 +3504,6 @@ static void trap_16( void ) { PUSHWORD( PC ); pPC = RM16(0xffde); - CHANGE_PC; tms7000_icount -= 14; } @@ -3563,7 +3511,6 @@ static void trap_17( void ) { PUSHWORD( PC ); pPC = RM16(0xffdc); - CHANGE_PC; tms7000_icount -= 14; } @@ -3571,7 +3518,6 @@ static void trap_18( void ) { PUSHWORD( PC ); pPC = RM16(0xffda); - CHANGE_PC; tms7000_icount -= 14; } @@ -3579,7 +3525,6 @@ static void trap_19( void ) { PUSHWORD( PC ); pPC = RM16(0xffd8); - CHANGE_PC; tms7000_icount -= 14; } @@ -3587,7 +3532,6 @@ static void trap_20( void ) { PUSHWORD( PC ); pPC = RM16(0xffd6); - CHANGE_PC; tms7000_icount -= 14; } @@ -3595,7 +3539,6 @@ static void trap_21( void ) { PUSHWORD( PC ); pPC = RM16(0xffd4); - CHANGE_PC; tms7000_icount -= 14; } @@ -3603,7 +3546,6 @@ static void trap_22( void ) { PUSHWORD( PC ); pPC = RM16(0xffd2); - CHANGE_PC; tms7000_icount -= 14; } @@ -3611,7 +3553,6 @@ static void trap_23( void ) { PUSHWORD( PC ); pPC = RM16(0xffd0); - CHANGE_PC; tms7000_icount -= 14; } diff --git a/src/emu/cpu/upd7810/7810ops.c b/src/emu/cpu/upd7810/7810ops.c index 866563a1ab7..65dca2d89b4 100644 --- a/src/emu/cpu/upd7810/7810ops.c +++ b/src/emu/cpu/upd7810/7810ops.c @@ -169,7 +169,6 @@ static void SLL_C(void) static void JEA(void) { PC = EA; - change_pc( PCD ); } /* 48 29: 0100 1000 0010 1001 */ @@ -181,7 +180,6 @@ static void CALB(void) WM( SPD, PCL ); PC = BC; - change_pc( PCD ); } /* 48 2a: 0100 1000 0010 1010 */ @@ -8113,7 +8111,6 @@ static void INRW_wa(void) static void JB(void) { PC = BC; - change_pc( PCD ); } /* 22: 0010 0010 */ @@ -8337,7 +8334,6 @@ static void CALL_w(void) WM( SPD, PCL ); PC = w.w.l; - change_pc( PCD ); } /* 41: 0100 0001 */ @@ -8453,7 +8449,6 @@ static void JRE(void) PC -= 256 - offs; else PC += offs; - change_pc( PCD ); } /* 50: 0101 0000 */ @@ -8500,7 +8495,6 @@ static void JMP_w(void) RDOPARG( w.b.h ); PCD = w.d; - change_pc( PCD ); } /* 55: 0101 0101 oooo oooo xxxx xxxx */ @@ -8866,7 +8860,6 @@ static void RETI(void) SP++; PSW = RM( SPD ); SP++; - change_pc( PCD ); } /* 63: 0110 0011 oooo oooo */ @@ -8998,7 +8991,6 @@ static void SOFTI(void) WM( SPD, PCL ); PC = 0x0060; - change_pc( PCD ); } /* 74: prefix */ @@ -9045,7 +9037,6 @@ static void CALF(void) WM( SPD, PCL ); PCD = w.d; - change_pc( PCD ); } /* 80: 100t tttt */ @@ -9070,8 +9061,6 @@ static void CALT(void) PCL=RM(w.w.l); PCH=RM(w.w.l+1); - - change_pc( PCD ); } } @@ -9268,7 +9257,6 @@ static void RET(void) SP++; PCH = RM( SPD ); SP++; - change_pc( PCD ); } /* b9: 1011 1001 */ @@ -9279,7 +9267,6 @@ static void RETS(void) PCH = RM( SPD ); SP++; PSW|=SK; /* skip one instruction */ - change_pc( PCD ); } /* ba: 1011 1010 */ @@ -9335,7 +9322,6 @@ static void JR(void) { INT8 offs = (INT8)(OP << 2) >> 2; PC += offs; - change_pc(PCD); } /*********************/ @@ -9358,8 +9344,6 @@ static void CALT_7801(void) PCL=RM(w.w.l); PCH=RM(w.w.l+1); - - change_pc( PCD ); } /* DCR(W) and INR(W) instructions do not modify the CY register on at least 78c05 and 78c06 */ diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/emu/cpu/upd7810/upd7810.c index 8e1d2cdd01f..17cab2ffd92 100644 --- a/src/emu/cpu/upd7810/upd7810.c +++ b/src/emu/cpu/upd7810/upd7810.c @@ -843,7 +843,6 @@ static void upd7810_take_irq(void) IFF = 0; PSW &= ~(SK|L0|L1); PC = vector; - change_pc( PCD ); } } @@ -1769,7 +1768,6 @@ static CPU_EXECUTE( upd7810 ) } PSW &= ~SK; upd7810.handle_timers( cc ); - change_pc( PCD ); } else { @@ -1816,7 +1814,6 @@ static void set_irq_line(int irqline, int state) IFF = 0; PSW &= ~(SK|L0|L1); PC = 0x0004; - change_pc( PCD ); } } else @@ -1850,7 +1847,7 @@ static CPU_SET_INFO( upd7810 ) case CPUINFO_INT_INPUT_STATE + UPD7810_INTF2: set_irq_line(UPD7810_INTF2, info->i); break; case CPUINFO_INT_INPUT_STATE + UPD7810_INTFE1: set_irq_line(UPD7810_INTFE1, info->i); break; - case CPUINFO_INT_PC: PC = info->i; change_pc(PCD); break; + case CPUINFO_INT_PC: PC = info->i; break; case CPUINFO_INT_REGISTER + UPD7810_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + UPD7810_SP: SP = info->i; break; diff --git a/src/emu/cpu/v30mz/v30mz.c b/src/emu/cpu/v30mz/v30mz.c index bf3ff36d9f4..82d43633ae5 100644 --- a/src/emu/cpu/v30mz/v30mz.c +++ b/src/emu/cpu/v30mz/v30mz.c @@ -124,8 +124,6 @@ static CPU_RESET( nec ) I.sregs[CS] = 0xffff; - CHANGE_PC; - for (i = 0;i < 256; i++) { for (j = i, c = 0; j > 0; j >>= 1) @@ -177,7 +175,6 @@ static void nec_interrupt(unsigned int_num,BOOLEAN md_flag) PUSH(I.ip); I.ip = (WORD)dest_off; I.sregs[CS] = (WORD)dest_seg; - CHANGE_PC; } static void nec_trap(void) @@ -561,7 +558,7 @@ OP( 0x97, i_xchg_axdi ) { XchgAWReg(IY); CLK(3); } OP( 0x98, i_cbw ) { I.regs.b[AH] = (I.regs.b[AL] & 0x80) ? 0xff : 0; CLK(1); } OP( 0x99, i_cwd ) { I.regs.w[DW] = (I.regs.b[AH] & 0x80) ? 0xffff : 0; CLK(1); } -OP( 0x9a, i_call_far ) { UINT32 tmp, tmp2; FETCHWORD(tmp); FETCHWORD(tmp2); PUSH(I.sregs[CS]); PUSH(I.ip); I.ip = (WORD)tmp; I.sregs[CS] = (WORD)tmp2; CHANGE_PC; CLK(10); } +OP( 0x9a, i_call_far ) { UINT32 tmp, tmp2; FETCHWORD(tmp); FETCHWORD(tmp2); PUSH(I.sregs[CS]); PUSH(I.ip); I.ip = (WORD)tmp; I.sregs[CS] = (WORD)tmp2; CLK(10); } OP( 0x9b, i_wait ) { logerror("%06x: Hardware POLL\n",cpu_get_pc(Machine->activecpu)); } OP( 0x9c, i_pushf ) { PUSH( CompressFlags() ); CLK(2); } OP( 0x9d, i_popf ) { UINT32 tmp; POP(tmp); ExpandFlags(tmp); CLK(3); if (I.TF) nec_trap(); } @@ -638,8 +635,8 @@ OP( 0xc1, i_rotshft_wd8 ) { } } -OP( 0xc2, i_ret_d16 ) { UINT32 count = FETCH; count += FETCH << 8; POP(I.ip); I.regs.w[SP]+=count; CHANGE_PC; CLK(6); } -OP( 0xc3, i_ret ) { POP(I.ip); CHANGE_PC; CLK(6); } +OP( 0xc2, i_ret_d16 ) { UINT32 count = FETCH; count += FETCH << 8; POP(I.ip); I.regs.w[SP]+=count; CLK(6); } +OP( 0xc3, i_ret ) { POP(I.ip); CLK(6); } OP( 0xc4, i_les_dw ) { GetModRM; WORD tmp = GetRMWord(ModRM); RegWord(ModRM)=tmp; I.sregs[ES] = GetnextRMWord; CLK(6); } OP( 0xc5, i_lds_dw ) { GetModRM; WORD tmp = GetRMWord(ModRM); RegWord(ModRM)=tmp; I.sregs[DS] = GetnextRMWord; CLK(6); } OP( 0xc6, i_mov_bd8 ) { GetModRM; PutImmRMByte(ModRM); CLK(1); } @@ -666,12 +663,12 @@ OP( 0xc9, i_leave ) { POP(I.regs.w[BP]); CLK(2); } -OP( 0xca, i_retf_d16 ) { UINT32 count = FETCH; count += FETCH << 8; POP(I.ip); POP(I.sregs[CS]); I.regs.w[SP]+=count; CHANGE_PC; CLK(9); } -OP( 0xcb, i_retf ) { POP(I.ip); POP(I.sregs[CS]); CHANGE_PC; CLK(8); } +OP( 0xca, i_retf_d16 ) { UINT32 count = FETCH; count += FETCH << 8; POP(I.ip); POP(I.sregs[CS]); I.regs.w[SP]+=count; CLK(9); } +OP( 0xcb, i_retf ) { POP(I.ip); POP(I.sregs[CS]); CLK(8); } OP( 0xcc, i_int3 ) { nec_interrupt(3,0); CLK(9); } OP( 0xcd, i_int ) { nec_interrupt(FETCH,0); CLK(10); } OP( 0xce, i_into ) { if (OF) { nec_interrupt(4,0); CLK(13); } else CLK(6); } -OP( 0xcf, i_iret ) { POP(I.ip); POP(I.sregs[CS]); i_popf(); CHANGE_PC; CLK(10); } +OP( 0xcf, i_iret ) { POP(I.ip); POP(I.sregs[CS]); i_popf(); CLK(10); } OP( 0xd0, i_rotshft_b ) { UINT32 src, dst; GetModRM; src = (UINT32)GetRMByte(ModRM); dst=src; @@ -741,18 +738,18 @@ OP( 0xd6, i_setalc ) { I.regs.b[AL] = (CF)?0xff:0x00; CLK(3); logerror("%06x: Un OP( 0xd7, i_trans ) { UINT32 dest = (I.regs.w[BW]+I.regs.b[AL])&0xffff; I.regs.b[AL] = GetMemB(DS, dest); CLK(5); } OP( 0xd8, i_fpo ) { GetModRM; CLK(1); logerror("%06x: Unimplemented floating point control %04x\n",cpu_get_pc(Machine->activecpu),ModRM); } -OP( 0xe0, i_loopne ) { INT8 disp = (INT8)FETCH; I.regs.w[CW]--; if (!ZF && I.regs.w[CW]) { I.ip = (WORD)(I.ip+disp); /*CHANGE_PC;*/ CLK(6); } else CLK(3); } -OP( 0xe1, i_loope ) { INT8 disp = (INT8)FETCH; I.regs.w[CW]--; if ( ZF && I.regs.w[CW]) { I.ip = (WORD)(I.ip+disp); /*CHANGE_PC;*/ CLK(6); } else CLK(3); } -OP( 0xe2, i_loop ) { INT8 disp = (INT8)FETCH; I.regs.w[CW]--; if (I.regs.w[CW]) { I.ip = (WORD)(I.ip+disp); /*CHANGE_PC;*/ CLK(5); } else CLK(2); } -OP( 0xe3, i_jcxz ) { INT8 disp = (INT8)FETCH; if (I.regs.w[CW] == 0) { I.ip = (WORD)(I.ip+disp); /*CHANGE_PC;*/ CLK(4); } else CLK(1); } +OP( 0xe0, i_loopne ) { INT8 disp = (INT8)FETCH; I.regs.w[CW]--; if (!ZF && I.regs.w[CW]) { I.ip = (WORD)(I.ip+disp); CLK(6); } else CLK(3); } +OP( 0xe1, i_loope ) { INT8 disp = (INT8)FETCH; I.regs.w[CW]--; if ( ZF && I.regs.w[CW]) { I.ip = (WORD)(I.ip+disp); CLK(6); } else CLK(3); } +OP( 0xe2, i_loop ) { INT8 disp = (INT8)FETCH; I.regs.w[CW]--; if (I.regs.w[CW]) { I.ip = (WORD)(I.ip+disp); CLK(5); } else CLK(2); } +OP( 0xe3, i_jcxz ) { INT8 disp = (INT8)FETCH; if (I.regs.w[CW] == 0) { I.ip = (WORD)(I.ip+disp); CLK(4); } else CLK(1); } OP( 0xe4, i_inal ) { UINT8 port = FETCH; I.regs.b[AL] = read_port(port); CLK(6); } OP( 0xe5, i_inax ) { UINT8 port = FETCH; I.regs.b[AL] = read_port(port); I.regs.b[AH] = read_port(port+1); CLK(6); } OP( 0xe6, i_outal ) { UINT8 port = FETCH; write_port(port, I.regs.b[AL]); CLK(6); } OP( 0xe7, i_outax ) { UINT8 port = FETCH; write_port(port, I.regs.b[AL]); write_port(port+1, I.regs.b[AH]); CLK(6); } -OP( 0xe8, i_call_d16 ) { UINT32 tmp; FETCHWORD(tmp); PUSH(I.ip); I.ip = (WORD)(I.ip+(INT16)tmp); CHANGE_PC; CLK(5); } -OP( 0xe9, i_jmp_d16 ) { UINT32 tmp; FETCHWORD(tmp); I.ip = (WORD)(I.ip+(INT16)tmp); CHANGE_PC; CLK(4); } -OP( 0xea, i_jmp_far ) { UINT32 tmp,tmp1; FETCHWORD(tmp); FETCHWORD(tmp1); I.sregs[CS] = (WORD)tmp1; I.ip = (WORD)tmp; CHANGE_PC; CLK(7); } +OP( 0xe8, i_call_d16 ) { UINT32 tmp; FETCHWORD(tmp); PUSH(I.ip); I.ip = (WORD)(I.ip+(INT16)tmp); CLK(5); } +OP( 0xe9, i_jmp_d16 ) { UINT32 tmp; FETCHWORD(tmp); I.ip = (WORD)(I.ip+(INT16)tmp); CLK(4); } +OP( 0xea, i_jmp_far ) { UINT32 tmp,tmp1; FETCHWORD(tmp); FETCHWORD(tmp1); I.sregs[CS] = (WORD)tmp1; I.ip = (WORD)tmp; CLK(7); } OP( 0xeb, i_jmp_d8 ) { int tmp = (int)((INT8)FETCH); CLK(4); if (tmp==-2 && I.no_interrupt==0 && (I.pending_irq==0) && nec_ICount>0) nec_ICount%=12; /* cycle skip */ I.ip = (WORD)(I.ip+tmp); @@ -864,10 +861,10 @@ OP( 0xff, i_ffpre ) { UINT32 tmp, tmp1; GetModRM; tmp=GetRMWord(ModRM); switch(ModRM & 0x38) { case 0x00: tmp1 = tmp+1; I.OverVal = (tmp==0x7fff); SetAF(tmp1,tmp,1); SetSZPF_Word(tmp1); PutbackRMWord(ModRM,(WORD)tmp1); CLKM(1,3); break; /* INC */ case 0x08: tmp1 = tmp-1; I.OverVal = (tmp==0x8000); SetAF(tmp1,tmp,1); SetSZPF_Word(tmp1); PutbackRMWord(ModRM,(WORD)tmp1); CLKM(1,3); break; /* DEC */ - case 0x10: PUSH(I.ip); I.ip = (WORD)tmp; CHANGE_PC; CLKM(5,6); break; /* CALL */ - case 0x18: tmp1 = I.sregs[CS]; I.sregs[CS] = GetnextRMWord; PUSH(tmp1); PUSH(I.ip); I.ip = tmp; CHANGE_PC; CLKM(5,12); break; /* CALL FAR */ - case 0x20: I.ip = tmp; CHANGE_PC; CLKM(4,5); break; /* JMP */ - case 0x28: I.ip = tmp; I.sregs[CS] = GetnextRMWord; CHANGE_PC; CLK(10); break; /* JMP FAR */ + case 0x10: PUSH(I.ip); I.ip = (WORD)tmp; CLKM(5,6); break; /* CALL */ + case 0x18: tmp1 = I.sregs[CS]; I.sregs[CS] = GetnextRMWord; PUSH(tmp1); PUSH(I.ip); I.ip = tmp; CLKM(5,12); break; /* CALL FAR */ + case 0x20: I.ip = tmp; CLKM(4,5); break; /* JMP */ + case 0x28: I.ip = tmp; I.sregs[CS] = GetnextRMWord; CLK(10); break; /* JMP FAR */ case 0x30: PUSH(tmp); CLK(1); break; default: logerror("%06x: FF Pre with unimplemented mod\n",cpu_get_pc(Machine->activecpu)); } @@ -892,7 +889,6 @@ static CPU_SET_CONTEXT( nec ) if( src ) { I = *(nec_Regs*)src; - CHANGE_PC; } } diff --git a/src/emu/cpu/v30mz/v30mz.h b/src/emu/cpu/v30mz/v30mz.h index 39317bbbc6c..c00c3250eb6 100644 --- a/src/emu/cpu/v30mz/v30mz.h +++ b/src/emu/cpu/v30mz/v30mz.h @@ -64,8 +64,6 @@ typedef enum { AH,AL,CH,CL,DH,DL,BH,BL,SPH,SPL,BPH,BPL,IXH,IXL,IYH,IYL } BREGS; /************************************************************************/ -#define CHANGE_PC change_pc((I.sregs[CS]<<4) + I.ip) - #define SegBase(Seg) (I.sregs[Seg] << 4) #define DefaultBase(Seg) ((seg_prefix && (Seg==DS || Seg==SS)) ? prefix_base : I.sregs[Seg] << 4) @@ -152,7 +150,6 @@ typedef enum { AH,AL,CH,CL,DH,DL,BH,BL,SPH,SPL,BPH,BPL,IXH,IXL,IYH,IYL } BREGS; static const UINT8 table[3]={3,10,10}; \ I.ip = (WORD)(I.ip+tmp); \ nec_ICount-=table[chip_type/8]; \ - CHANGE_PC; \ return; \ } diff --git a/src/emu/cpu/z180/z180.c b/src/emu/cpu/z180/z180.c index ed8e952e94b..bf5d6702620 100644 --- a/src/emu/cpu/z180/z180.c +++ b/src/emu/cpu/z180/z180.c @@ -2114,7 +2114,6 @@ static CPU_RESET( z180 ) if (Z180.daisy) z80daisy_reset(Z180.daisy); z180_mmu(); - z180_change_pc(_PCD); } /* Handle PRT timers, decreasing them after 20 clocks and returning the new icount base that needs to be used for the next check */ @@ -2308,7 +2307,6 @@ static CPU_SET_CONTEXT( z180 ) { if( src ) Z180 = *(Z180_Regs*)src; - z180_change_pc(_PCD); } #ifdef UNUSED_FUNCTION @@ -2374,7 +2372,7 @@ static CPU_SET_INFO( z180 ) case CPUINFO_INT_INPUT_STATE + Z180_INT1: set_irq_line(Z180_INT1, info->i); break; case CPUINFO_INT_INPUT_STATE + Z180_INT2: set_irq_line(Z180_INT2, info->i); break; - case CPUINFO_INT_PC: _PC = info->i; z180_change_pc(_PCD); break; + case CPUINFO_INT_PC: _PC = info->i; break; case CPUINFO_INT_REGISTER + Z180_PC: Z180.PC.w.l = info->i; break; case CPUINFO_INT_SP: _SP = info->i; break; case CPUINFO_INT_REGISTER + Z180_SP: Z180.SP.w.l = info->i; break; diff --git a/src/emu/cpu/z180/z180dd.c b/src/emu/cpu/z180/z180dd.c index 8ba423c5b8f..582536ce7ab 100644 --- a/src/emu/cpu/z180/z180dd.c +++ b/src/emu/cpu/z180/z180dd.c @@ -268,7 +268,7 @@ OP(dd,e6) { illegal_1(); op_e6(); } /* DB DD */ OP(dd,e7) { illegal_1(); op_e7(); } /* DB DD */ OP(dd,e8) { illegal_1(); op_e8(); } /* DB DD */ -OP(dd,e9) { _R++; _PC = _IX; z180_change_pc(_PCD); } /* JP (IX) */ +OP(dd,e9) { _R++; _PC = _IX; } /* JP (IX) */ OP(dd,ea) { illegal_1(); op_ea(); } /* DB DD */ OP(dd,eb) { illegal_1(); op_eb(); } /* DB DD */ OP(dd,ec) { illegal_1(); op_ec(); } /* DB DD */ diff --git a/src/emu/cpu/z180/z180fd.c b/src/emu/cpu/z180/z180fd.c index 44af305f42e..5a713c17188 100644 --- a/src/emu/cpu/z180/z180fd.c +++ b/src/emu/cpu/z180/z180fd.c @@ -263,7 +263,7 @@ OP(fd,e6) { illegal_1(); op_e6(); } /* DB FD */ OP(fd,e7) { illegal_1(); op_e7(); } /* DB FD */ OP(fd,e8) { illegal_1(); op_e8(); } /* DB FD */ -OP(fd,e9) { _R++; _PC = _IY; z180_change_pc(_PCD); } /* JP (IY) */ +OP(fd,e9) { _R++; _PC = _IY; } /* JP (IY) */ OP(fd,ea) { illegal_1(); op_ea(); } /* DB FD */ OP(fd,eb) { illegal_1(); op_eb(); } /* DB FD */ OP(fd,ec) { illegal_1(); op_ec(); } /* DB FD */ diff --git a/src/emu/cpu/z180/z180op.c b/src/emu/cpu/z180/z180op.c index 164db10a59c..0fab05c36a0 100644 --- a/src/emu/cpu/z180/z180op.c +++ b/src/emu/cpu/z180/z180op.c @@ -229,7 +229,7 @@ OP(op,c6) { ADD(ARG()); } /* ADD A,n */ OP(op,c7) { RST(0x00); } /* RST 0 */ OP(op,c8) { RET_COND( _F & ZF, 0xc8 ); } /* RET Z */ -OP(op,c9) { POP(PC); z180_change_pc(_PCD); } /* RET */ +OP(op,c9) { POP(PC); } /* RET */ OP(op,ca) { JP_COND( _F & ZF ); } /* JP Z,a */ OP(op,cb) { _R++; EXEC(cb,ROP()); } /* **** CB xx */ OP(op,cc) { CALL_COND( _F & ZF, 0xcc ); } /* CALL Z,a */ @@ -265,7 +265,7 @@ OP(op,e6) { AND(ARG()); } /* AND n */ OP(op,e7) { RST(0x20); } /* RST 4 */ OP(op,e8) { RET_COND( _F & PF, 0xe8 ); } /* RET PE */ -OP(op,e9) { _PC = _HL; z180_change_pc(_PCD); } /* JP (HL) */ +OP(op,e9) { _PC = _HL; } /* JP (HL) */ OP(op,ea) { JP_COND( _F & PF ); } /* JP PE,a */ OP(op,eb) { EX_DE_HL; } /* EX DE,HL */ OP(op,ec) { CALL_COND( _F & PF, 0xec ); } /* CALL PE,a */ @@ -375,8 +375,5 @@ static void take_interrupt(int irq) /* CALL opcode timing */ z180_icount -= cc[Z180_TABLE_op][0xcd]; } - z180_change_pc(_PCD); - - } diff --git a/src/emu/cpu/z180/z180ops.h b/src/emu/cpu/z180/z180ops.h index b37dae29dec..0ebe91fca0e 100644 --- a/src/emu/cpu/z180/z180ops.h +++ b/src/emu/cpu/z180/z180ops.h @@ -137,10 +137,8 @@ INLINE UINT32 ARG16(void) /**************************************************************************** * Change program counter - MMU lookup ****************************************************************************/ -#define z180_change_pc(addr) change_pc(MMU_REMAP_ADDR(addr)) void z180_setOPbase(int pc) { - z180_change_pc(pc); } /*************************************************************** @@ -165,7 +163,6 @@ void z180_setOPbase(int pc) ***************************************************************/ #define JP { \ _PCD = ARG16(); \ - z180_change_pc(_PCD); \ } /*************************************************************** @@ -176,7 +173,6 @@ void z180_setOPbase(int pc) if( cond ) \ { \ _PCD = ARG16(); \ - z180_change_pc(_PCD); \ } \ else \ { \ @@ -191,7 +187,6 @@ void z180_setOPbase(int pc) unsigned oldpc = _PCD-1; \ INT8 arg = (INT8)ARG(); /* ARG() also increments _PC */ \ _PC += arg; /* so don't do _PC += ARG() */ \ - z180_change_pc(_PCD); \ /* speed up busy loop */ \ if( _PCD == oldpc ) \ { \ @@ -231,7 +226,6 @@ void z180_setOPbase(int pc) INT8 arg = (INT8)ARG(); /* ARG() also increments _PC */ \ _PC += arg; /* so don't do _PC += ARG() */ \ CC(ex,opcode); \ - z180_change_pc(_PCD); \ } \ else _PC++; \ @@ -241,8 +235,7 @@ void z180_setOPbase(int pc) #define CALL() \ EA = ARG16(); \ PUSH( PC ); \ - _PCD = EA; \ - z180_change_pc(_PCD) + _PCD = EA; /*************************************************************** * CALL_COND @@ -254,7 +247,6 @@ void z180_setOPbase(int pc) PUSH( PC ); \ _PCD = EA; \ CC(ex,opcode); \ - z180_change_pc(_PCD); \ } \ else \ { \ @@ -268,7 +260,6 @@ void z180_setOPbase(int pc) if( cond ) \ { \ POP(PC); \ - z180_change_pc(_PCD); \ CC(ex,opcode); \ } @@ -278,7 +269,6 @@ void z180_setOPbase(int pc) #define RETN { \ LOG(("Z180 #%d RETN IFF1:%d IFF2:%d\n", cpunum_get_active(), _IFF1, _IFF2)); \ POP(PC); \ - z180_change_pc(_PCD); \ _IFF1 = _IFF2; \ } @@ -287,7 +277,6 @@ void z180_setOPbase(int pc) ***************************************************************/ #define RETI { \ POP(PC); \ - z180_change_pc(_PCD); \ /* according to http://www.msxnet.org/tech/Z80/z80undoc.txt */ \ /* _IFF1 = _IFF2; */ \ if (Z180.daisy) \ @@ -330,8 +319,7 @@ void z180_setOPbase(int pc) ***************************************************************/ #define RST(addr) \ PUSH( PC ); \ - _PCD = addr; \ - z180_change_pc(_PCD) + _PCD = addr; /*************************************************************** * INC r8 diff --git a/src/emu/cpu/z80/z80.c b/src/emu/cpu/z80/z80.c index 4e076b92a3a..750650ae413 100644 --- a/src/emu/cpu/z80/z80.c +++ b/src/emu/cpu/z80/z80.c @@ -651,7 +651,6 @@ INLINE UINT32 ARG16(z80_state *z80) #define JP(Z) do { \ (Z)->PCD = ARG16(Z); \ (Z)->MEMPTR = (Z)->PCD; \ - change_pc((Z)->PCD); \ } while (0) /*************************************************************** @@ -662,7 +661,6 @@ INLINE UINT32 ARG16(z80_state *z80) { \ (Z)->PCD = ARG16(Z); \ (Z)->MEMPTR = (Z)->PCD; \ - change_pc((Z)->PCD); \ } \ else \ { \ @@ -677,7 +675,6 @@ INLINE UINT32 ARG16(z80_state *z80) INT8 arg = (INT8)ARG(Z); /* ARG() also increments PC */ \ (Z)->PC += arg; /* so don't do PC += ARG() */ \ (Z)->MEMPTR = (Z)->PC; \ - change_pc((Z)->PCD); \ } while (0) /*************************************************************** @@ -700,7 +697,6 @@ INLINE UINT32 ARG16(z80_state *z80) (Z)->MEMPTR = (Z)->ea; \ PUSH((Z), pc); \ (Z)->PCD = (Z)->ea; \ - change_pc((Z)->PCD); \ } while (0) /*************************************************************** @@ -714,7 +710,6 @@ INLINE UINT32 ARG16(z80_state *z80) PUSH((Z), pc); \ (Z)->PCD = (Z)->ea; \ CC(Z, ex, opcode); \ - change_pc((Z)->PCD); \ } \ else \ { \ @@ -730,7 +725,6 @@ INLINE UINT32 ARG16(z80_state *z80) { \ POP((Z), pc); \ (Z)->MEMPTR = (Z)->PC; \ - change_pc((Z)->PCD); \ CC(Z, ex, opcode); \ } \ } while (0) @@ -743,7 +737,6 @@ INLINE UINT32 ARG16(z80_state *z80) (Z)->device->tag, (Z)->iff1, (Z)->iff2)); \ POP((Z), pc); \ (Z)->MEMPTR = (Z)->PC; \ - change_pc((Z)->PCD); \ (Z)->iff1 = (Z)->iff2; \ } while (0) @@ -753,7 +746,6 @@ INLINE UINT32 ARG16(z80_state *z80) #define RETI(Z) do { \ POP((Z), pc); \ (Z)->MEMPTR = (Z)->PC; \ - change_pc((Z)->PCD); \ /* according to http://www.msxnet.org/tech/z80-documented.pdf */\ (Z)->iff1 = (Z)->iff2; \ if ((Z)->daisy != NULL) \ @@ -798,7 +790,6 @@ INLINE UINT32 ARG16(z80_state *z80) PUSH((Z), pc); \ (Z)->PCD = addr; \ (Z)->MEMPTR = (Z)->PC; \ - change_pc((Z)->PCD); \ } while (0) /*************************************************************** @@ -2289,7 +2280,7 @@ OP(dd,e6) { illegal_1(z80); op_e6(z80); } /* DB DD */ OP(dd,e7) { illegal_1(z80); op_e7(z80); } /* DB DD */ OP(dd,e8) { illegal_1(z80); op_e8(z80); } /* DB DD */ -OP(dd,e9) { z80->PC = z80->IX; change_pc(z80->PCD); } /* JP (IX) */ +OP(dd,e9) { z80->PC = z80->IX; } /* JP (IX) */ OP(dd,ea) { illegal_1(z80); op_ea(z80); } /* DB DD */ OP(dd,eb) { illegal_1(z80); op_eb(z80); } /* DB DD */ OP(dd,ec) { illegal_1(z80); op_ec(z80); } /* DB DD */ @@ -2580,7 +2571,7 @@ OP(fd,e6) { illegal_1(z80); op_e6(z80); } /* DB FD */ OP(fd,e7) { illegal_1(z80); op_e7(z80); } /* DB FD */ OP(fd,e8) { illegal_1(z80); op_e8(z80); } /* DB FD */ -OP(fd,e9) { z80->PC = z80->IY; change_pc(z80->PCD); } /* JP (IY) */ +OP(fd,e9) { z80->PC = z80->IY; } /* JP (IY) */ OP(fd,ea) { illegal_1(z80); op_ea(z80); } /* DB FD */ OP(fd,eb) { illegal_1(z80); op_eb(z80); } /* DB FD */ OP(fd,ec) { illegal_1(z80); op_ec(z80); } /* DB FD */ @@ -3133,7 +3124,7 @@ OP(op,c6) { ADD(z80, ARG(z80)); } /* ADD A,n */ OP(op,c7) { RST(z80, 0x00); } /* RST 0 */ OP(op,c8) { RET_COND(z80, z80->F & ZF, 0xc8); } /* RET Z */ -OP(op,c9) { POP(z80, pc); change_pc(z80->PCD); z80->MEMPTR=z80->PCD; } /* RET */ +OP(op,c9) { POP(z80, pc); z80->MEMPTR=z80->PCD; } /* RET */ OP(op,ca) { JP_COND(z80, z80->F & ZF); } /* JP Z,a */ OP(op,cb) { z80->r++; EXEC(z80,cb,ROP(z80)); } /* **** CB xx */ OP(op,cc) { CALL_COND(z80, z80->F & ZF, 0xcc); } /* CALL Z,a */ @@ -3169,7 +3160,7 @@ OP(op,e6) { AND(z80, ARG(z80)); } /* AND n */ OP(op,e7) { RST(z80, 0x20); } /* RST 4 */ OP(op,e8) { RET_COND(z80, z80->F & PF, 0xe8); } /* RET PE */ -OP(op,e9) { z80->PC = z80->HL; change_pc(z80->PCD); } /* JP (HL) */ +OP(op,e9) { z80->PC = z80->HL; } /* JP (HL) */ OP(op,ea) { JP_COND(z80, z80->F & PF); } /* JP PE,a */ OP(op,eb) { EX_DE_HL(z80); } /* EX DE,HL */ OP(op,ec) { CALL_COND(z80, z80->F & PF, 0xec); } /* CALL PE,a */ @@ -3266,7 +3257,6 @@ static void take_interrupt(z80_state *z80) break; } } - change_pc(z80->PCD); z80->MEMPTR=z80->PCD; } @@ -3425,7 +3415,6 @@ static CPU_RESET( z80 ) if (z80->daisy) z80daisy_reset(z80->daisy); - change_pc(z80->PCD); z80->MEMPTR=z80->PCD; } @@ -3445,7 +3434,6 @@ static CPU_EXECUTE( z80 ) z80_state *z80 = device->token; z80->icount = cycles; - change_pc(z80->PCD); /* check for NMIs on the way in; they can only be set externally */ /* via timers, and can't be dynamically enabled, so it is safe */ @@ -3459,7 +3447,6 @@ static CPU_EXECUTE( z80 ) z80->iff1 = 0; PUSH(z80, pc); z80->PCD = 0x0066; - change_pc(z80->PCD); z80->MEMPTR=z80->PCD; z80->icount -= 11; z80->nmi_pending = FALSE; @@ -3549,7 +3536,7 @@ static CPU_SET_INFO( z80 ) case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(z80, INPUT_LINE_NMI, info->i); break; case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(z80, 0, info->i); break; - case CPUINFO_INT_PC: z80->PC = info->i; change_pc(z80->PCD); break; + case CPUINFO_INT_PC: z80->PC = info->i; break; case CPUINFO_INT_REGISTER + Z80_PC: z80->PC = info->i; break; case CPUINFO_INT_SP: z80->SP = info->i; break; case CPUINFO_INT_REGISTER + Z80_SP: z80->SP = info->i; break; diff --git a/src/emu/cpu/z8000/z8000.c b/src/emu/cpu/z8000/z8000.c index c170ebcc441..2733c090948 100644 --- a/src/emu/cpu/z8000/z8000.c +++ b/src/emu/cpu/z8000/z8000.c @@ -471,7 +471,6 @@ static CPU_RESET( z8000 ) Z.io = memory_find_address_space(device, ADDRESS_SPACE_IO); FCW = RDMEM_W( 2 ); /* get reset FCW */ PC = RDMEM_W( 4 ); /* get reset PC */ - change_pc(PC); } static CPU_EXIT( z8000 ) @@ -527,7 +526,6 @@ static CPU_SET_CONTEXT( z8000 ) if( src ) { Z = *(z8000_Regs*)src; - change_pc(PC); } } @@ -595,7 +593,7 @@ static CPU_SET_INFO( z8000 ) case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(0, info->i); break; case CPUINFO_INT_INPUT_STATE + 1: set_irq_line(1, info->i); break; - case CPUINFO_INT_PC: PC = info->i; change_pc(PC); break; + case CPUINFO_INT_PC: PC = info->i; break; case CPUINFO_INT_REGISTER + Z8000_PC: PC = info->i; break; case CPUINFO_INT_SP: case CPUINFO_INT_REGISTER + Z8000_NSP: NSP = info->i; break; diff --git a/src/emu/cpu/z8000/z8000ops.c b/src/emu/cpu/z8000/z8000ops.c index 4dce057785c..99fa1abeca9 100644 --- a/src/emu/cpu/z8000/z8000ops.c +++ b/src/emu/cpu/z8000/z8000ops.c @@ -1841,7 +1841,6 @@ static void Z1E_ddN0_cccc(void) case 14: if (CCE) PC = RW(dst); break; case 15: if (CCF) PC = RW(dst); break; } - change_pc(PC); } /****************************************** @@ -1853,7 +1852,6 @@ static void Z1F_ddN0_0000(void) GET_DST(OP0,NIB2); PUSHW( SP, PC ); PC = RW(dst); - change_pc(PC); } /****************************************** @@ -2330,7 +2328,6 @@ static void Z39_ssN0_0000(void) fcw = RDMEM_W( RW(src) ); PC = RDMEM_W( (UINT16)(RW(src) + 2) ); CHANGE_FCW(fcw); /* check for user/system mode change */ - change_pc(PC); } /****************************************** @@ -3785,7 +3782,6 @@ static void Z5E_0000_cccc_addr(void) case 14: if (CCE) PC = addr; break; case 15: if (CCF) PC = addr; break; } - change_pc(PC); } /****************************************** @@ -3816,7 +3812,6 @@ static void Z5E_ddN0_cccc_addr(void) case 14: if (CCE) PC = addr; break; case 15: if (CCF) PC = addr; break; } - change_pc(PC); } /****************************************** @@ -3828,7 +3823,6 @@ static void Z5F_0000_0000_addr(void) GET_ADDR(OP1); PUSHW( SP, PC ); PC = addr; - change_pc(PC); } /****************************************** @@ -3842,7 +3836,6 @@ static void Z5F_ddN0_0000_addr(void) PUSHW( SP, PC ); addr += RW(dst); PC = addr; - change_pc(PC); } /****************************************** @@ -4372,7 +4365,6 @@ static void Z79_0000_0000_addr(void) fcw = RDMEM_W(addr); PC = RDMEM_W((UINT16)(addr + 2)); CHANGE_FCW(fcw); /* check for user/system mode change */ - change_pc(PC); } /****************************************** @@ -4388,7 +4380,6 @@ static void Z79_ssN0_0000_addr(void) fcw = RDMEM_W(addr); PC = RDMEM_W((UINT16)(addr + 2)); CHANGE_FCW(fcw); /* check for user/system mode change */ - change_pc(PC); } /****************************************** @@ -4413,7 +4404,6 @@ static void Z7B_0000_0000(void) PC = POPW( SP ); /* get PC */ IRQ_SRV &= ~tag; /* remove IRQ serviced flag */ CHANGE_FCW(fcw); /* check for user/system mode change */ - change_pc(PC); LOG(("Z8K#%d IRET tag $%04x, fcw $%04x, pc $%04x\n", cpunum_get_active(), tag, fcw, PC)); } @@ -5040,7 +5030,6 @@ static void Z9E_0000_cccc(void) case 14: if (CCE) PC = POPW( SP ); break; case 15: if (CCF) PC = POPW( SP ); break; } - change_pc(PC); } /****************************************** @@ -6438,7 +6427,6 @@ static void ZD_dsp12(void) PUSHW( SP, PC ); dsp12 = (dsp12 & 2048) ? 4096 -2 * (dsp12 & 2047) : -2 * (dsp12 & 2047); PC += dsp12; - change_pc(PC); } /****************************************** @@ -6467,7 +6455,6 @@ static void ZE_cccc_dsp8(void) case 14: if (CCE) PC += dsp8 * 2; break; case 15: if (CCF) PC += dsp8 * 2; break; } - change_pc(PC); } /****************************************** @@ -6481,7 +6468,6 @@ static void ZF_dddd_0dsp7(void) RB(dst) -= 1; if (RB(dst)) { PC = PC - 2 * dsp7; - change_pc(PC); } } @@ -6496,7 +6482,6 @@ static void ZF_dddd_1dsp7(void) RW(dst) -= 1; if (RW(dst)) { PC = PC - 2 * dsp7; - change_pc(PC); } } diff --git a/src/emu/cpuintrf.c b/src/emu/cpuintrf.c index 2e56070c722..e23e8fd0223 100644 --- a/src/emu/cpuintrf.c +++ b/src/emu/cpuintrf.c @@ -1295,7 +1295,6 @@ void cpu_reset(const device_config *device) cpu_class_header *classheader = get_safe_classheader(device); cpu_push_context(device); - change_pc(0); (*classheader->reset)(device); cpu_pop_context(); } diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c index 570dc097dc3..cc250eb23d8 100644 --- a/src/emu/debug/debugcpu.c +++ b/src/emu/debug/debugcpu.c @@ -1720,10 +1720,6 @@ UINT64 debug_read_opcode(const address_space *space, offs_t address, int size, i /* keep in physical range */ address &= info->space[ADDRESS_SPACE_PROGRAM].physbytemask; - - /* adjust the address */ - change_pc(address); - switch (info->space[ADDRESS_SPACE_PROGRAM].databytes * 10 + size) { /* dump opcodes in bytes from a byte-sized bus */ diff --git a/src/emu/debug/debugvw.c b/src/emu/debug/debugvw.c index 1567d118dd3..c29cb92ebc6 100644 --- a/src/emu/debug/debugvw.c +++ b/src/emu/debug/debugvw.c @@ -1598,10 +1598,6 @@ static int disasm_recompute(debug_view *view, offs_t pc, int startline, int line changed = TRUE; } - /* reset the opcode base */ - if (dasmdata->cpunum == original_cpunum) - change_pc(cpu_get_physical_pc_byte(cpuinfo->device)); - /* update opcode base information */ dasmdata->last_direct_decrypted = space->direct.decrypted; dasmdata->last_direct_raw = space->direct.raw; diff --git a/src/emu/memory.h b/src/emu/memory.h index 31ccf435eb8..d4ec8a82a70 100644 --- a/src/emu/memory.h +++ b/src/emu/memory.h @@ -496,10 +496,6 @@ union _addrmap64_token #define ACCESSING_BITS_32_63 ((mem_mask & U64(0xffffffff00000000)) != 0) -/* bank switching for CPU cores */ -#define change_pc(byteaddress) do {} while (0) - - /* opcode range safety check */ #define address_is_unsafe(S,A) ((UNEXPECTED((A) < (S)->direct.min) || UNEXPECTED((A) > (S)->direct.max))) diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c index dd03255b490..e5b7620693d 100644 --- a/src/mame/machine/amiga.c +++ b/src/mame/machine/amiga.c @@ -324,9 +324,6 @@ static void amiga_m68k_reset(const device_config *device) { amiga_cia_w(space, 0x1001/2, 1, 0xffff); } - - if (cpu_get_pc(space->cpu) < 0x80000) - change_pc(0); } diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c index a700db8d68c..6b3c781c6d3 100644 --- a/src/mame/machine/namcos1.c +++ b/src/mame/machine/namcos1.c @@ -742,9 +742,6 @@ static void namcos1_bankswitch(running_machine *machine, int cpu, offs_t offset, logerror("CPU #%d PC %04x:warning unknown chip selected bank %x=$%04x\n", cpu , cpu_get_pc(machine->activecpu), bank , chip[bank] ); // if (chip) popmessage("CPU #%d PC %04x:unknown chip selected bank %x=$%04x", cpu , cpu_get_pc(machine->activecpu), bank , chip[bank] ); } - - /* renew pc base */ -// change_pc(cpu_get_pc(machine->activecpu)); } WRITE8_HANDLER( namcos1_bankswitch_w ) |