]> Joshua Wise's Git repositories - fpgaboy.git/blobdiff - core/insn_pop_reg.v
Move the core to core/
[fpgaboy.git] / core / insn_pop_reg.v
diff --git a/core/insn_pop_reg.v b/core/insn_pop_reg.v
new file mode 100644 (file)
index 0000000..5a7da08
--- /dev/null
@@ -0,0 +1,37 @@
+`ifdef EXECUTE
+       `INSN_POP_reg: begin    /* POP is 12 cycles! */
+               case (cycle)
+               0:      `EXEC_READ(`_SP)
+               1:      `EXEC_READ(`_SP + 1)
+               2:      begin
+                               `EXEC_NEWCYCLE
+                               `EXEC_INC_PC
+                       end
+               endcase
+       end
+`endif
+
+`ifdef WRITEBACK
+       `INSN_POP_reg: begin    /* POP is 12 cycles! */
+               case (cycle)
+               0:      begin end
+               1:      begin
+                               case (opcode[5:4])
+                               `INSN_stack_AF: `_F <= rdata;
+                               `INSN_stack_BC: `_C <= rdata;
+                               `INSN_stack_DE: `_E <= rdata;
+                               `INSN_stack_HL: `_L <= rdata;
+                               endcase
+                       end
+               2:      begin
+                               case (opcode[5:4])
+                               `INSN_stack_AF: `_A <= rdata;
+                               `INSN_stack_BC: `_B <= rdata;
+                               `INSN_stack_DE: `_D <= rdata;
+                               `INSN_stack_HL: `_H <= rdata;
+                               endcase
+                               `_SP <= `_SP + 2;
+                       end
+               endcase
+       end
+`endif
This page took 0.023509 seconds and 4 git commands to generate.