w6c: sret-wire the chained-leaf call store (o.a.b = wide())

The chained value-struct walker's N_CALL arm handled only <=24B
register returns; an sret-class rhs fell to the scalar tail and
stored ONE word (the sret dest pointer) into the leaf -- silent
truncation in BOTH stages, byteid-blind. Point the callee's hidden
RDI at the BP-relative leaf slot (the single-dot #234 arm verbatim);
a ptr-root/global chain joins the #234-tail loud-stop family.
This commit is contained in:
2026-08-08 23:51:17 +09:00
parent 62b9d20383
commit 94928470bc
4 changed files with 81 additions and 4 deletions

View File

@@ -1,13 +1,13 @@
package wwfixture;
def protocolversion: i32 = 1;
def corpuscount: i32 = 1745;
def corpuscount: i32 = 1746;
def errorcount: i32 = 346;
def compilecount: i32 = 21;
def runcount: i32 = 209;
def runexitcount: i32 = 1169;
def nativecount: i32 = 3490;
def corpushash: str = "472974a00552c6b3f5db1fc6b0c1ed128d7554e134880196c833f11f99370f21";
def runexitcount: i32 = 1170;
def nativecount: i32 = 3492;
def corpushash: str = "6afbab274e0c6d1479a2f0cb6e575b14f5e4ffd25a9cb8a3701307db97d3c489";
type directive = enum i32 {
ERROR = 0,