James Dansereau
1db6992e5e
Fix D203/D253: Facility SIGSEGV on Linux — callback prototype ABI mismatch
...
stanCheckLinkedSpecialTile was decompiled with an all-s32 middle-arg
prototype while its callers pass it through the standTileLocusCallback_B_t
typedef (f32 f32 f32). On x86-64 SysV the int/float class split puts the
6th arg (outFlags/record) in %rdx per the typedef but %r9 per the
definition, so the FORCECROUCH/LADDER store hit a stale scratch register.
MIPS o32 passes both through GPRs a0-a5 identically, which is why the
mismatch was invisible on N64 and in the decompilation.
ABI-class edit (AGENTS.md #2 narrow exception): body never uses the three
middle params; N64 codegen unaffected. Verified under gdb on WSL:
pre-fix SIGSEGV at stan.c:2441 with r9=0x3 and a valid record in the
caller frame; post-fix the same walk route completes clean.
2026-09-13 18:55:26 -04:00
..
2026-09-13 18:55:26 -04:00
2023-09-28 11:49:33 -04:00
2026-09-07 14:18:39 -04:00
2026-09-05 07:22:21 -04:00
2020-11-20 14:35:54 -06:00
2026-04-13 09:11:43 -04:00
2026-08-31 12:09:45 -04:00
2025-04-25 10:11:31 -04:00
2026-09-05 19:07:38 -04:00
2022-06-06 15:07:33 -05:00
2026-08-16 17:30:25 -04:00
2026-08-30 14:34:59 -04:00
2025-04-25 10:11:31 -04:00
2026-09-08 19:50:45 -04:00
2026-08-16 17:30:25 -04:00
2026-08-16 17:30:25 -04:00
2020-11-20 14:35:54 -06:00
2026-09-13 09:33:36 -04:00
2025-04-25 10:11:31 -04:00
2022-06-06 15:07:33 -05:00
2020-11-20 14:35:54 -06:00
2022-06-06 15:07:33 -05:00
2026-04-13 09:11:43 -04:00
2025-04-25 10:11:31 -04:00
2025-04-25 10:11:31 -04:00
2022-06-06 15:07:33 -05:00
2026-04-13 09:11:43 -04:00
2026-04-13 09:11:43 -04:00
2026-09-13 10:13:04 -04:00
2026-08-16 17:30:25 -04:00
2022-06-06 15:07:33 -05:00
2025-04-25 10:11:31 -04:00
2025-04-25 10:11:31 -04:00
2023-09-28 11:49:33 -04:00
2026-08-16 17:30:25 -04:00
2023-09-28 11:49:33 -04:00
2023-09-28 11:49:33 -04:00
2026-08-16 17:30:25 -04:00
2025-04-25 10:11:31 -04:00
2026-09-01 20:01:09 -04:00
2026-08-16 17:30:25 -04:00
2022-06-06 15:07:33 -05:00
2026-09-01 20:01:09 -04:00
2026-09-01 20:01:09 -04:00
2022-06-06 15:07:33 -05:00
2022-06-06 15:07:33 -05:00
2022-06-06 15:07:33 -05:00
2026-08-24 03:27:29 -04:00
2026-08-24 03:27:29 -04:00
2026-08-16 17:30:25 -04:00
2026-08-16 17:30:25 -04:00
2025-04-25 10:11:31 -04:00
2022-10-29 10:41:01 -04:00
2022-06-06 15:07:33 -05:00
2025-04-25 10:11:31 -04:00
2026-09-12 21:36:21 -04:00
2025-04-25 10:11:31 -04:00
2026-09-08 07:44:29 -04:00
2026-09-05 19:07:32 -04:00
2026-04-13 09:11:43 -04:00
2025-04-25 10:11:31 -04:00
2026-09-03 20:12:56 -04:00
2022-06-06 15:07:33 -05:00
2026-08-30 20:25:02 -04:00
2022-06-06 15:07:33 -05:00
2023-09-28 11:49:33 -04:00
2023-09-28 11:49:33 -04:00
2025-04-25 10:11:31 -04:00
2025-04-25 10:11:31 -04:00
2025-04-25 10:11:31 -04:00
2026-08-16 17:30:25 -04:00
2026-08-16 17:30:25 -04:00
2022-06-06 15:07:33 -05:00
2025-04-25 10:11:31 -04:00
2026-04-13 09:11:43 -04:00
2022-06-06 15:07:33 -05:00
2023-09-28 11:49:33 -04:00
2023-09-28 11:49:33 -04:00
2023-09-28 11:49:33 -04:00
2023-09-28 11:49:33 -04:00