`ifdef EXECUTE `INSN_PUSH_reg: begin /* PUSH is 16 cycles! */ case (cycle) 0: begin wr <= 1; address <= {registers[`REG_SPH],registers[`REG_SPL]}-1; case (opcode[5:4]) `INSN_stack_AF: wdata <= registers[`REG_A]; `INSN_stack_BC: wdata <= registers[`REG_B]; `INSN_stack_DE: wdata <= registers[`REG_D]; `INSN_stack_HL: wdata <= registers[`REG_H]; endcase end 1: begin wr <= 1; address <= {registers[`REG_SPH],registers[`REG_SPL]}-2; case (opcode[5:4]) `INSN_stack_AF: wdata <= registers[`REG_F]; `INSN_stack_BC: wdata <= registers[`REG_C]; `INSN_stack_DE: wdata <= registers[`REG_E]; `INSN_stack_HL: wdata <= registers[`REG_L]; endcase end 2: begin /* Twiddle thumbs. */ end 3: begin `EXEC_NEWCYCLE; `EXEC_INC_PC; end endcase end `endif `ifdef WRITEBACK `INSN_PUSH_reg: begin /* PUSH is 16 cycles! */ case (cycle) 0: begin /* type F */ end 1: begin /* type F */ end 2: begin /* type F */ end 3: {registers[`REG_SPH],registers[`REG_SPL]} <= {registers[`REG_SPH],registers[`REG_SPL]} - 2; endcase end `endif