54 Commits

Author SHA1 Message Date
61483b93e8 feat: stub mode 1 and 2 2022-10-21 05:12:40 -03:00
40f3600de2 fix: remove accidental rotation in ldrsh instructions 2022-10-21 05:12:35 -03:00
601e717850 chore: reimplement bus read/writes 2022-10-21 05:12:33 -03:00
886b9abf3d fix: force align reads/writes in memory bus rather than in CPU 2022-10-21 05:12:32 -03:00
c3ae727ed1 fix: improve perf of instructions w/ rotr 2022-10-21 05:12:28 -03:00
68b0601a42 chore: replace unnecessarily complex sign extension implementation 2022-10-21 05:12:24 -03:00
acf1a10f91 chore: don't panic on 32-bit I/O 2022-10-21 05:12:21 -03:00
37fd8dab84 chore: squash bugs preventing swi_demo.gba from working 2022-10-21 05:12:19 -03:00
05bf245b5a fix: don't mask away MSB in THUMB.5 add 2022-10-21 05:12:19 -03:00
f9e7128061 fix: properly decode format 11 instructions 2022-10-21 05:12:18 -03:00
603e4b6fdf chore: make use of scoped logging 2022-10-21 05:12:18 -03:00
599a1f2973 chore: remove TODOs and some useless imports 2022-10-21 05:12:18 -03:00
67a785cc22 fix(cpu): force align thumb and arm block data transfers 2022-10-21 05:12:18 -03:00
130310e5cc chore: improve arm ldm/stm 2022-10-21 05:12:17 -03:00
8006ca31e6 chore: remove unnecessary @as calls 2022-10-21 05:12:16 -03:00
82b92b4733 feat: pass thumb.gba 2022-10-21 05:12:15 -03:00
bf42d3ae2f chore: account for empty rlist in THUMB LDM/STM 2022-10-21 05:12:15 -03:00
f63ae76931 fix(cpu): handle edge case in LDRSH 2022-10-21 05:12:15 -03:00
d8bd6da563 fix: resolve decoding mixup in THUMB format 8 instructions 2022-10-21 05:12:14 -03:00
271f42cf0e feat: rename ARM and THUMB SWI functions 2022-10-21 05:12:13 -03:00
01e15584da chore: group THUMB and select ARM instructions together (same file) 2022-10-21 05:12:13 -03:00
c8f2db69df fix(cpu): resolve edge cases in THUMB Format 5 2022-10-21 05:12:12 -03:00
af10c1b076 feat(cpu): implement format 13
While bugs do exist, at this point all THUMB and ARMv4 instructions
have been implemented! Yay!
2022-10-21 05:12:12 -03:00
e6a0eab667 feat(cpu): implement THUMB format 17 2022-10-21 05:12:12 -03:00
523b9d2736 feat(cpu): implement THUMB format11 2022-10-21 05:12:12 -03:00
c37546d273 chore: progress towards passing ldr/str thumb in armwrestler 2022-10-21 05:12:11 -03:00
fbedebb938 fix(cpu): properly negate in NEG 2022-10-21 05:12:11 -03:00
1773a3acc8 fix(cpu): reimplement THUMB offset shifts 2022-10-21 05:12:11 -03:00
058c02150c fix(cpu): op == 0b00 decodes to add in format 5 2022-10-21 05:12:11 -03:00
8d841ead50 fix(cpu): account for overflow in THUMB alu MUL 2022-10-21 05:12:10 -03:00
7013389288 feat(cpu): implement format 18 THUMB instructions 2022-10-21 05:12:09 -03:00
443520ecae chore: more detailed panic message 2022-10-21 05:12:09 -03:00
96d7285111 feat(cpu): implement format 10 THUMB instructions 2022-10-21 05:12:08 -03:00
0778ee8dd7 feat(cpu): implement ARM multiply instructions 2022-10-21 05:12:07 -03:00
980e4ff5dd fix(cpu): properly decode THUMB PUSH and POP at comptime 2022-10-21 05:12:06 -03:00
1ac193c506 fix(cpu): don't ignore 11th bit of THUMB BL offset 2022-10-21 05:12:06 -03:00
d6ed071bc6 feat(cpu): implement thumb push / pop and stub format 13 thumb instrs 2022-10-21 05:12:06 -03:00
a3d53d40fb feat(cpu): implement THUMB format 9 loads / stores 2022-10-21 05:12:06 -03:00
a17dfbe41f fix(cpu): resolve issues with unexpected PC value in THUMB 2022-10-21 05:12:06 -03:00
b9a81baa47 feat(cpu): implement THUMB ldmia stmia 2022-10-21 05:12:06 -03:00
97b236225e chore: implement THUMB format 4 instructions 2022-10-21 05:12:05 -03:00
8113146b86 chore: dedup code in THUMB instructions 2022-10-21 05:12:05 -03:00
e6625113db chore: refactor and genericize ARM data processing calculations 2022-10-21 05:12:05 -03:00
2643504eb5 chore: relocate barrel_shifter zig file 2022-10-21 05:12:05 -03:00
f7518d1bab feat(cpu): implement format2 THUMB instructions 2022-10-21 05:12:05 -03:00
800ca798cd feat(cpu): implement format19 THUMB instructions 2022-10-21 05:12:05 -03:00
7bc186a03c feat(cpu): implement format16 THUMB instructions 2022-10-21 05:12:04 -03:00
b94b87d186 feat(cpu): implement format 1 THUMB instructions 2022-10-21 05:12:04 -03:00
93922b65e3 feat(cpu): implement format 6 THUMB instructions 2022-10-21 05:12:04 -03:00
9b867c02e0 feat(cpu): implement SUB in THUMB format 3 2022-10-21 05:11:58 -03:00