gint-with-thread/src/core
Lephe 8148d89c88
core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE)
This change ports the TLB management system to fx9860g through %003.
This raises the size limit for add-ins to about 500k.

Because SH3 fx9860g does not have ILRAM, the GMAPPED attribute has been
made to generate content to a .gint.mapped section which is sent to the
P1 RAM section historically dubbed "real ram" in which gint's data and
VBR are installed. (Now that I think about it, gint's data should try to
go to normal RAM instead to reduce pressure on this invasion.)

Return-to-menu was also fixed on both platforms by narrowing down the
need for code to remain mapped to the chance of running it with
interrupts disabled. The natural distribution of GMAPPED under this
criterion showed that _gint_setvbr had been left under TLB control;
moving it to the proper RAM area fixed gint switches.

Finally, an omission in the bound checks for mappable TEA addresses (TEA
>= 0x00300000) prevented the appearance of a non-interactible System
ERROR popup when some unmapped addresses are accessed.

This version still does not enable interrupts in timer callbacks,
exposing any application to a crash if a timer underflows while its
callback is not mapped. It is not suitable for any stable application!
2020-06-15 20:55:18 +02:00
..
bootlog.c core: accept large add-ins and setup TLB management (UNSTABLE) 2020-06-14 11:01:27 +02:00
exch.c core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE) 2020-06-15 20:55:18 +02:00
exch.s core: answer TLB misses and remove startup mapping (UNSTABLE) 2020-06-14 18:22:20 +02:00
gint.c interrupts: save caller-saved registers in main handler 2020-05-06 20:45:35 +02:00
hardware.c periodic check of SH3 compatibility 2020-05-31 22:26:30 +02:00
inth.S interrupts: save caller-saved registers in main handler 2020-05-06 20:45:35 +02:00
mmu.c core: accept large add-ins and setup TLB management (UNSTABLE) 2020-06-14 11:01:27 +02:00
setup.c core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE) 2020-06-15 20:55:18 +02:00
start.c core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE) 2020-06-15 20:55:18 +02:00
syscalls.S core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE) 2020-06-15 20:55:18 +02:00
tlbh.S core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE) 2020-06-15 20:55:18 +02:00
vbr.s core: backport TLB handling to fx9860g, fix return-to-menu (UNSTABLE) 2020-06-15 20:55:18 +02:00