]> Joshua Wise's Git repositories - fpgaboy.git/blob - insn_jr-jrcc.v
Semi-working, but prone to anus, keyboard driver
[fpgaboy.git] / insn_jr-jrcc.v
1 `ifdef EXECUTE
2         `INSN_JR_imm,`INSN_JRCC_imm: begin
3                 case (cycle)
4                 0:      begin
5                                 `EXEC_INC_PC
6                                 `EXEC_READ(`_PC + 1)
7                         end
8                 1:      begin
9                                 `EXEC_INC_PC
10                                 if (opcode[5]) begin    // i.e., JP cc,nn
11                                         /* We need to check the condition code to bail out. */
12                                         case (opcode[4:3])
13                                         `INSN_cc_NZ:    if (`_F[7]) `EXEC_NEWCYCLE
14                                         `INSN_cc_Z:     if (~`_F[7]) `EXEC_NEWCYCLE
15                                         `INSN_cc_NC:    if (`_F[4]) `EXEC_NEWCYCLE
16                                         `INSN_cc_C:     if (~`_F[4]) `EXEC_NEWCYCLE
17                                         endcase
18                                 end
19                         end
20                 2:      `EXEC_NEWCYCLE
21                 endcase
22         end
23 `endif
24
25 `ifdef WRITEBACK
26         `INSN_JR_imm,`INSN_JRCC_imm: begin
27                 case (cycle)
28                 0:      begin /* type F */ end
29                 1:      tmp <= rdata;
30                 2:      `_PC <= `_PC + {tmp[7]?8'hFF:8'h00,tmp};
31                 endcase
32         end
33 `endif
This page took 0.029746 seconds and 4 git commands to generate.