Commit Graph

2383 Commits

Author SHA1 Message Date
c5b035a973 SWP and SWPB use the same behavior as STR on the ARM9 2024-06-25 11:20:01 -04:00
541e1e6388 proper timings for ldr/str 2024-06-25 09:08:11 -04:00
dbe00e72dd improve stm timings
need to verify if they apply to all store instructions
2024-06-24 22:50:04 -04:00
109bbed3d0 improve ldm timings
I believe this also applies to other loads as well, but currently untested.
2024-06-24 20:22:38 -04:00
3583d8222f disable interlock emulation, needs more research 2024-06-24 16:17:04 -04:00
f1b71fe5a9 implement configurable vram bus width
not implemented for direct boot
2024-06-24 16:15:04 -04:00
e6ba4075b9 correct interlocked reg for umlal 2024-06-18 11:12:05 -04:00
c5258d6377 verify interlocks for alu and load/store
remove some checks for interlock that im pretty sure can't trigger
2024-06-17 18:07:53 -04:00
a9e2c7e047 implement two regs i missed 2024-06-16 23:24:20 -04:00
f00f1f6ca4 im smart 2024-06-16 20:50:42 -04:00
5b37ca70d1 implement correct/guess interlocks for remaining instructions 2024-06-16 20:47:01 -04:00
debaaa0425 fix performance regression for disabling interlock emulation path 2024-06-15 21:16:12 -04:00
449557624d don't do interlocks for the arm7 2024-06-15 18:37:31 -04:00
a973c0bf5b initial implementation of interlock cycles 2024-06-15 16:07:36 -04:00
aa1217af0a track interlock cycles for the ALU 2024-06-14 11:47:42 -04:00
5a174a2ce3 track interlock cycles for load instructions 2024-06-14 00:51:55 -04:00
42218106b0 verify writable msr bits 2024-06-11 10:30:30 -04:00
048b0b8878 swp/swpb jumps work on the arm 7? 2024-06-10 18:03:56 -04:00
3ddccde5b9 verified
also remove no longer needed variable
2024-06-10 13:23:18 -04:00
ca04710deb ldrd is just ldm 2024-06-09 22:31:10 -04:00
ae0824fdd3 it all makes sense now... 2024-06-09 19:10:43 -04:00
b90d5c2320 what the actual F*** is going on 2024-06-09 12:18:31 -04:00
be60c68aeb more weirdness 2024-06-09 07:25:42 -04:00
b846c6f100 remove out of date comments 2024-06-08 22:17:07 -04:00
849d4e51ac imma be real, i have no idea what is going on here 2024-06-08 22:12:44 -04:00
659763f903 clarification 2024-06-08 16:15:02 -04:00
3699768ac9 most cpsr bits can't actually be updated (or at least can't be read?) 2024-06-08 14:01:54 -04:00
5f97dfc1ab fix bits fixed to 0 for pu region sizing being set 2024-06-08 10:53:22 -04:00
8191f92bb6 mcr is also affected 2024-06-08 10:42:19 -04:00
0c887202e7 fix some more instructions? 2024-06-08 10:40:23 -04:00
73507621f5 idk why it took me two tries to get these instructions to work properly 2024-06-07 23:50:31 -04:00
2b0ed459e1 fully implement r15 stores being +12 of addr 2024-06-07 23:46:49 -04:00
bd3611b51d unaligned registers with strd/ldrd raise an exception 2024-06-07 20:43:02 -04:00
8bc7e4591c thumb ldmia/pop data aborts 2024-06-06 19:05:28 -04:00
d6cd189455 rework data abort handling for ldm/stm; implement thumb stmia+push 2024-06-06 18:58:43 -04:00
13ae96b4e3 simple thumb instructions (untested but probably right) 2024-06-05 14:32:12 -04:00
7c3108e20f handle swp instruction aborts 2024-06-05 14:31:44 -04:00
1871c48849 fix double data aborts with strd 2024-06-05 10:28:51 -04:00
317a8c61e5 data abort handling for (almost) all (arm) instructions
full list: strb, ldrb, strh, ldrd, strd, ldrh, ldrsb, ldrsh
2024-06-05 00:14:14 -04:00
1e8194e367 fix ldr and str 2024-06-04 19:06:54 -04:00
c2a57b79a0 fix stmd(a/b) writeback 2024-06-02 22:41:01 -04:00
5e760a1536 slightly cleaner code 2024-06-02 19:34:29 -04:00
b5c1ee33fb implement stm 2024-06-02 10:33:29 -04:00
63d4b78733 improve implementation 2024-06-02 10:13:50 -04:00
960f063eaa improve data aborts for ldm 2024-06-02 00:11:01 -04:00
065573f316 fix writebacks overwriting registers swapped with spsr
fixes gbarunner3
2024-05-31 18:09:45 -04:00
a72b79a55a that needs to be public actually 2024-05-15 19:43:34 +02:00
cfc49eb286 Revert slirp dynamic/static check, and make it not use dllimport/export
when building statically
2024-05-15 19:37:14 +02:00
d21bc64cb3 MinGW build portability fixes
AKA you can build melonDS for Windows on Fedora now
2024-05-15 18:57:49 +02:00
a2406e3c0e Vendored libslirp (#2045)
Add vendored libslirp into the repo with a shim to remove its dependency on glib.
2024-05-15 18:00:55 +02:00