b38: S21 table-walker router

This commit is contained in:
lumia-emu
2026-09-14 00:34:52 +00:00
parent d3e2efe7ba
commit 8aef555346
5 changed files with 169 additions and 6 deletions
+12
View File
@@ -190,6 +190,18 @@
`[sp+0x2C]` валиден → исходный pop; иначе r0=sl + re-run
(идемпотентная математика). Эпилог `pop.w` (4B) → `b.w S20`.
## b38: S21 table-walker router (2026-09-13)
- Голый table-walker (`0x8007916`, mid-входы без пушей) снимает
`pop.w 0x28`, читает saved-FP (`0x85FFEB0`) как pc → ARM fill-дрейф
(STM-clobbers!). S21 (32B @0x08006D5A): `[sp+0x24]` валиден →
исходный pop; иначе `b.w S19`. Эпилог `pop.w` (4B) → `b.w S21`.
## b37: S20 clock-dispatcher router (2026-09-13)
- Голый clock-диспетчер (`0x800EB80`, без пушей) снимает `pop.w 0x30`
за проход → марш sp к верху IMEM. S20 (34B @0x08006D38):
`[sp+0x2C]` валиден → исходный pop; иначе r0=sl + re-run
(идемпотентная математика). Эпилог `pop.w` (4B) → `b.w S20`.
## maze v2 (2026-09-13)
- Maze с чётным lr уходил в ARM-дрейф (STM-clobbers + IMEM fault).
Maze v2 (24B): возврат только при odd Thumb lr из DDR, иначе hang