docs: b41 desert retarget, b42 hang+revert, b43 PBL contract
This commit is contained in:
@@ -241,3 +241,21 @@
|
||||
пропускал): IMEM-стек, чтение за верхом IMEM. Uni не мапил DDRHI,
|
||||
QEMU мапит: добавлен паритет (0x08610000, 16M-64K). b40 на 2M чист,
|
||||
sp живет в DDRHI, unmapped 0. Дефолт run-sbl теперь b40.
|
||||
|
||||
## b41: desert retarget EB90->EB0A (2026-09-14)
|
||||
- Вызов пустыни шел в середину функции (мимо push.w 48B пролога),
|
||||
эпилог pop.w снимал чужое (+48B), S20-rerun возвращал в середину:
|
||||
ловушка +100B/Kinsn. b41 зовет пролог, фрейм балансируется,
|
||||
пустыня возвращается к вызывающему. sbl_main дошел до 0x802F652
|
||||
(SMEM write), пошли фазы строк SBL1, lr в sbl_main.
|
||||
- Creep остался (~320B/K, равномерный): --sphist показал хвост
|
||||
враппера S12 (+8B x27/K) и дерево mid-pop. QEMU b41 чист 120с.
|
||||
|
||||
## b42/b43: frameless откачен (2026-09-14)
|
||||
- b42 убрал push+pop враппера: creep исчез в ноль на 2M, но хвост
|
||||
bx lr зациклился сам на себя (lr=0x8007B65): push хранит возврат
|
||||
вызывающего, убирать нельзя. Откат.
|
||||
- PBL-контракт вместо этого: S12-keep (валидный pushed lr) идет
|
||||
в хвост (парный pop, баланс), S12-default (мусор) дивертит в
|
||||
poll-resumption без визита в хвост (блоб 100->132B, uni+QEMU).
|
||||
Диагностика: --sphist (дельты sp по pc), --tpop (куда уходит pop).
|
||||
|
||||
Reference in New Issue
Block a user