cpu/decoder - Implement ADD SP, e8
This commit is contained in:
parent
41c4038d0a
commit
b6f0f4416f
1 changed files with 12 additions and 0 deletions
|
@ -455,6 +455,18 @@ void Cpu::executeInstruction()
|
|||
state.IME = IME_SCHEDULED;
|
||||
break;
|
||||
|
||||
case 0xE8: // ADD SP, e8
|
||||
u32 lhs = state.SP;
|
||||
s32 rhs = (s8)readPC8();
|
||||
u32 low_add = (lhs & 0x0FFF) + (rhs & 0x0FFF);
|
||||
state.halfcarry = (low_add & 0x1000);
|
||||
u32 res32 = lhs + rhs;
|
||||
state.carry = (res32 & 0x10000);
|
||||
state.SP = (u16)res32;
|
||||
state.subtract = false;
|
||||
state.zero = false;
|
||||
mcycles = 4;
|
||||
|
||||
default:
|
||||
panic("Unknown opcode 0x%x\n",op);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue