`ifdef EXECUTE `INSN_JP_imm,`INSN_JPCC_imm: begin case (cycle) 0: begin `EXEC_INC_PC; `EXEC_NEXTADDR_PCINC; rd <= 1; end 1: begin `EXEC_INC_PC; `EXEC_NEXTADDR_PCINC; rd <= 1; end 2: begin `EXEC_INC_PC; if (!opcode[0]) begin // i.e., JP cc,nn /* We need to check the condition code to bail out. */ case (opcode[4:3]) `INSN_cc_NZ: if (registers[`REG_F][7]) begin `EXEC_NEWCYCLE; end `INSN_cc_Z: if (~registers[`REG_F][7]) begin `EXEC_NEWCYCLE; end `INSN_cc_NC: if (registers[`REG_F][4]) begin `EXEC_NEWCYCLE; end `INSN_cc_C: if (~registers[`REG_F][4]) begin `EXEC_NEWCYCLE; end endcase end end 3: begin `EXEC_NEWCYCLE; end endcase end `endif `ifdef WRITEBACK `INSN_JP_imm,`INSN_JPCC_imm: begin case (cycle) 0: begin /* type F */ end 1: tmp <= rdata; // tmp contains newpcl 2: tmp2 <= rdata; // tmp2 contains newpch 3: {registers[`REG_PCH],registers[`REG_PCL]} <= {tmp2,tmp}; endcase end `endif