]> Joshua Wise's Git repositories - fpgaboy.git/blobdiff - core/insn_jp-jpcc.v
Move the core to core/
[fpgaboy.git] / core / insn_jp-jpcc.v
diff --git a/core/insn_jp-jpcc.v b/core/insn_jp-jpcc.v
new file mode 100644 (file)
index 0000000..7c8fb22
--- /dev/null
@@ -0,0 +1,38 @@
+`ifdef EXECUTE
+       `INSN_JP_imm,`INSN_JPCC_imm: begin
+               case (cycle)
+               0:      begin
+                               `EXEC_INC_PC
+                               `EXEC_READ(`_PC + 1)
+                       end
+               1:      begin
+                               `EXEC_INC_PC
+                               `EXEC_READ(`_PC + 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 (`_F[7]) `EXEC_NEWCYCLE
+                                       `INSN_cc_Z:     if (~`_F[7]) `EXEC_NEWCYCLE
+                                       `INSN_cc_NC:    if (`_F[4]) `EXEC_NEWCYCLE
+                                       `INSN_cc_C:     if (~`_F[4]) `EXEC_NEWCYCLE
+                                       endcase
+                               end
+                       end
+               3:      `EXEC_NEWCYCLE
+               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:      `_PC <= {tmp2,tmp};
+               endcase
+       end
+`endif
This page took 0.023405 seconds and 4 git commands to generate.