Commit Graph

43 Commits

Author SHA1 Message Date
Rekai Nyangadzayi Musuka 0010029783 fix: LDR(S)H behaviour differs between ARMv4/ARMv5TE 2024-03-11 10:52:28 -05:00
Rekai Nyangadzayi Musuka 6f0e271360 fix: update to 0.12.0-dev.2063+804cee3b9 2024-02-08 23:09:04 -06:00
Rekai Nyangadzayi Musuka bdc4bfc642 dbg: add dbgRead and dbgWrite fns to cpu struct 2024-01-13 16:10:05 -06:00
Rekai Nyangadzayi Musuka 580e7baca9 fix: make Bank.spsrIndex public 2023-12-27 18:52:28 -06:00
Rekai Nyangadzayi Musuka aad3bdc9ea feat: pass nds arm7wrestler
- impl behaviour of running v5te instrs on v4t cpu
- impl undefined instruction exception handler
- panic on what I think are still unimplemented v5te opcodes
2023-12-27 00:13:06 -06:00
Rekai Nyangadzayi Musuka dcff3fd588 fix(v5te): account for high vectors in swi 2023-10-09 19:28:04 -05:00
Rekai Nyangadzayi Musuka 8d2a3f1b67 feat(v5te): let cp15 affect more tcm behaviours
cp15 can now enable/disable ITCM/DTCM. cp15 can also now enable/disable load mode.
TODO: load mode doesn't effect SWP/SWPB for some reason?
2023-09-29 23:34:46 -05:00
Rekai Nyangadzayi Musuka 1bd96304ba fix: off-by-one when handling TCM addresses 2023-09-29 02:35:21 -05:00
Rekai Nyangadzayi Musuka 481271ba2a fix(v4t/v5te): resolve critical error in ldm/stm obscure behaviour 2023-09-26 20:46:30 -05:00
Rekai Nyangadzayi Musuka 2c5d474c56 fix(v5te): fix off by one in DTCM handler 2023-09-20 00:29:49 -05:00
Rekai Nyangadzayi Musuka 4d3814db36 fix(v5te): set T on select load instrs when rd == 15 2023-09-20 00:29:47 -05:00
Rekai Nyangadzayi Musuka 502647806c feat(v5te): stub THUMB BKPT 2023-09-20 00:29:44 -05:00
Rekai Nyangadzayi Musuka 3c5d4acc5f feat(v5te): implement THUMB BLX(1), BLX(2), and ARM BLX 2023-09-20 00:29:42 -05:00
Rekai Nyangadzayi Musuka 37b3fe3d10 fix(v5te): properly implement SMLAL<x><y> 2023-09-20 00:29:38 -05:00
Rekai Nyangadzayi Musuka 106820b444 fix(v5te): properly implement qadd/qsub qdadd/qdsub 2023-09-19 21:24:31 -05:00
Rekai Nyangadzayi Musuka a3eefa6432 chore: panic TODO on Unconditional address space 2023-09-15 14:50:29 -05:00
Rekai Nyangadzayi Musuka 30cf951d2a feat: integrate cp15 and TCM code 2023-09-15 14:20:24 -05:00
Rekai Nyangadzayi Musuka 71541c312c chore: semi-pass more rockwrestler tests 2023-09-15 14:20:21 -05:00
Rekai Nyangadzayi Musuka 514e4d6014 feat: implement Coprocessor Interface 2023-09-15 14:20:17 -05:00
Rekai Nyangadzayi Musuka 5d70e4bd1d chore(v4t,v5te): don't give SWP/SWPB its own separate handler 2023-09-09 03:39:21 -05:00
Rekai Nyangadzayi Musuka 253cbbcdff feat(v5te): impl BLX, QDADD/QDSUB, SMLAL<x><y>, SMLAW<y>, SMULW<y>, SMUL<x><y> 2023-09-09 03:04:44 -05:00
Rekai Nyangadzayi Musuka c94912887e feat(v5te): implement SMLA<x><y> 2023-09-07 20:00:19 -05:00
Rekai Nyangadzayi Musuka 819eace2a7 feat: implement QADD/QSUB 2023-09-07 03:39:51 -05:00
Rekai Nyangadzayi Musuka 177f9b55a9 fix(v5te): rework MSR/MRS handling to account for v5TE extension space 2023-09-07 01:26:51 -05:00
Rekai Nyangadzayi Musuka 6dde25bd0f fix(arm): group multiply instructions together
- implement clz in ARMv5TE
2023-09-07 01:26:51 -05:00
Rekai Nyangadzayi Musuka 44b59512c0 feat(v5te): implement clz 2023-09-07 01:26:51 -05:00
Rekai Nyangadzayi Musuka ea3db88bec feat(v5te): stub LDRD / STRD 2023-09-07 01:26:51 -05:00
Rekai Nyangadzayi Musuka 67bae5dcb4 fix: ensure order of operations to prevent regression in arm.gba 2023-09-06 20:04:00 -05:00
Rekai Nyangadzayi Musuka e6863e7a9b fix(armv5te): implement obscure behaviour on invalid LDM writeback
All I have to do is implement ARMv5TE specific instructions, and then
we're finished with ARMWRESTLER!
2023-09-06 01:29:08 -05:00
Rekai Nyangadzayi Musuka 591352a65b fix: `Arm32` should represent generic, not pointer to generic 2023-09-05 21:38:22 -05:00
Rekai Nyangadzayi Musuka ada2a08516 feat(v5te): implement basic DTCM + ITCM 2023-07-26 00:14:32 -05:00
Rekai Nyangadzayi Musuka ba22b856ec chore: drop *Bus argument from the InstrFn LUT 2023-07-25 22:00:17 -05:00
Rekai Nyangadzayi Musuka f31c4bdb65 feat: stub coprocessor instructions 2023-07-25 22:00:17 -05:00
Rekai Nyangadzayi Musuka 96a3a45d9b feat: add v5te arm and thumb namespaces
also, drop the comptime parameter from arm and thumb namespaces
2023-07-25 22:00:17 -05:00
Rekai Nyangadzayi Musuka 2af9c351bc feat: allow lib use as git-submodule 2023-07-25 22:00:17 -05:00
Rekai Nyangadzayi Musuka 6c81608c59 fix: remove redundant casts from zig fmt 2023-07-11 00:39:14 -05:00
Rekai Nyangadzayi Musuka a831ab22fe chore: update dependencies 2023-07-10 22:16:24 -05:00
Rekai Nyangadzayi Musuka f8c2479ed9 chore: update to latest builtin syntax 2023-07-10 22:00:59 -05:00
Rekai Nyangadzayi Musuka 90d5c19e01 feat: implement debug i/o in Bus Interface 2023-06-29 23:27:24 -05:00
Rekai Nyangadzayi Musuka 3c8a87c14d chore: expose arm namespace 2023-06-25 18:54:57 -05:00
Rekai Nyangadzayi Musuka fa54f194a1 feat: expose module for zig build system 2023-06-25 18:54:57 -05:00
Rekai Nyangadzayi Musuka d2db52e495 feat: implement ARM7TDMI (and stub ARM946E-S) 2023-06-25 18:54:57 -05:00
Rekai Nyangadzayi Musuka c8e78c42ec feat: initial commit 2023-06-25 01:04:02 -05:00