← board

Bodied Pascal cdecl procs: genuine SysV prologue (float params, >6 args)

Follow-up to bug-cdecl-indirect-over-6-integer-args. State after that fix:

Wanted: emit a real SysV prologue (and matching direct-call marshalling) for bodied cdecl procs: int/sse classes counted independently (an int param AFTER a float param shifts register!), xmm0..7 reception, >6/>8 stack reception at [rbp+16+...], Single narrowing at the right site (see the LANDMINE note in parser.inc's param homing about per-target narrow points). Then delete the AN_ASSIGN reject. Float RETURNS already work both ways (EmitLoadVar leaves xmm0 and rax both set).

Gate: cd8/cd11/cd12-style tests (8 int args, mixed float/int order, C-side callback via crtl calling a @PascalProc with double params) + make test + self-host byte-identical.

Triage 2026-08-19 (Track D re-triage pass, pin v363)

Genuine feature, still wanted — unchanged, verified by compiling.

Not a bug under the mandate's test: nothing produces a wrong value and the unsupported shape is refused at compile time with a reason.

Log