`ifdef EXECUTE `INSN_ADD_HL: begin case (cycle) 0: case (opcode[5:4]) `INSN_reg16_BC: {tmp,tmp2} <= `_BC; `INSN_reg16_DE: {tmp,tmp2} <= `_DE; `INSN_reg16_HL: {tmp,tmp2} <= `_HL; `INSN_reg16_SP: {tmp,tmp2} <= `_SP; endcase 1: begin `EXEC_INC_PC `EXEC_NEWCYCLE end endcase end `endif `ifdef WRITEBACK `INSN_ADD_HL: begin case (cycle) 0: {tmp,tmp2} <= `_HL + {tmp,tmp2}; 1: begin `_F <= { /* Z */ `_F[7], /* N */ 1'b0, /* H */ (({`_HL} + {tmp,tmp2}) & 16'h1000) ? 1'b1 : 1'b0, /* C */ (({1'b0,`_HL} + {1'b0,tmp,tmp2}) >> 16 == 1) ? 1'b1 : 1'b0, `_F[3:0] }; `_HL <= {tmp, tmp2}; end endcase end `endif