144 Commits

Author SHA1 Message Date
9098a55ae3 feat(cpu): implement ARM SUB in data processing 2022-01-17 11:35:41 -04:00
c0d956ea95 feat(cpu): implement MVN 2022-01-17 11:30:59 -04:00
1025500407 chore(cpu): refactor barrel shifter 2022-01-17 11:17:04 -04:00
d05a924420 fix(cpu): use barrel shifter in data processing immediates 2022-01-17 11:02:34 -04:00
2a416fb2c6 feat(cpu): implement format 12 thumb instructions 2022-01-17 10:07:50 -04:00
ea5f0ce552 feat(cpu): implement some already decoded format 3 instructions 2022-01-17 09:29:11 -04:00
e55d2dc323 feat(cpu): implement THUMB format 5 instructions 2022-01-17 09:28:46 -04:00
1915d98bdd feat(cpu): implement like 1 THUMB instruction 2022-01-16 12:46:59 -04:00
0cf052838d chore(cpu): lay groundwork for THUMB instruction decoding and execution 2022-01-14 05:23:16 -04:00
ae37b1218b chore(cpu): refactor ARM functions to make room for THUMB 2022-01-14 04:26:09 -04:00
37bd6758fb fix(cpu): fix imm value calculation in MSR 2022-01-14 04:08:04 -04:00
7f6ab626d9 fix(cpu): resolve off-by-one error when executing LDM 2022-01-14 03:43:03 -04:00
77dba68a0b feat(cpu): implement branch and exchange
If I want to continue with armwrestler, I'll have to implement
THUMB instructions now
2022-01-12 07:20:24 -04:00
7adc7c8802 fix(cpu): make Data Processing instructions r15-aware 2022-01-12 07:20:24 -04:00
229f7c3388 fix(cpu): make LDRH and STRH aware of r15 2022-01-12 07:20:21 -04:00
5812b9713c fix(cpu): account for r15 in LDR and STR instructions 2022-01-12 06:16:59 -04:00
98c5803208 fix(cpu): flip two branches in PSR Transfer execution 2022-01-12 06:16:34 -04:00
74abd3df4d feat(cpu): implement MSR and MRS 2022-01-12 04:48:57 -04:00
7531af7f2b feat(cpu): stub PSR Transfer instructions 2022-01-12 03:40:51 -04:00
072a66cfdb fix(cpu): write results of ORR to destination register 2022-01-10 10:56:41 -04:00
ed3bdd90fb feat(cpu): implement TEQ 2022-01-10 08:09:02 -04:00
e9c1c94cae feat(cpu): Implement ORR 2022-01-10 08:06:00 -04:00
22b95b2a74 feat(cpu): refactor LDM/STM 2022-01-10 06:51:32 -04:00
7d79a0bee2 feat(cpu): implement LDM/STM 2022-01-10 06:27:36 -04:00
0d8c5e6882 fix(cpu): fix off-by-word bug in BL 2022-01-10 06:26:02 -04:00
0d4c850218 chore: remove premature inlines 2022-01-10 01:24:14 -04:00
568c374131 chore: code cleanup 2022-01-07 20:00:42 -04:00
910745f442 chore(bus): refactor bus.zig 2022-01-07 19:49:58 -04:00
f8c6af3247 chore: refactor instruction exec code 2022-01-07 19:44:48 -04:00
5037b8f0cc feat: implement S (when rd != 15) for several data processing instructions 2022-01-05 15:45:52 -05:00
28a70d0112 feat: implement dedicated Barrel Shifter SHL and SHR 2022-01-05 13:58:11 -05:00
7473ffedc7 chore: stub TST 2022-01-04 04:08:02 -06:00
28bb410dfd fix(cpu): improve LDR/STR write-back logic 2022-01-04 03:55:41 -06:00
ed9c1413b1 fix(cpu): properly implement SUB/CMP CSPSR carry bit condition 2022-01-04 03:08:08 -06:00
8cabcd8901 fix(cpu): resolve reversed if statement + write back on W = 0 2022-01-04 01:57:37 -06:00
44d52d8137 feat(cpu): properly implement STR STRH and STRB 2022-01-03 17:48:43 -06:00
1c42d1795a feat(bus): add Io Struct
Also, add more information to all panic messages
2022-01-02 14:40:49 -06:00
de9045fba3 chore: use bitfield library 2022-01-02 13:01:11 -06:00
65c3dd722c feat(bus): implement Gameboy Advance MMIO 2022-01-02 02:36:06 -06:00
c40a1af534 chore: conform to zig style guides 2022-01-01 21:08:47 -06:00
92a06e49c3 chore(cpu): iron out some false assumptions 2022-01-01 03:41:50 -06:00
c660ca8922 feat: implement LDR STR 2021-12-29 17:16:32 -06:00
7cc3f40a85 chore: run zig fmt 2021-12-29 15:13:50 -06:00
5b3b81e4dc Initial Commit 2021-12-29 15:09:00 -06:00