← board

Full parameter/result ABI on cross targets

Motivation

The cross param-copy and call paths only handle ordinal + pointer-sized arguments and results. compiler.pas uses richer signatures — the first wall when cross-compiling it is target i386: only ordinal/pointer parameters supported yet. Needed for the cross self-host.

Scope

Acceptance

Programs exercising record-by-value, float, open-array, and >N-arg calls compile and run on i386, ARM32, AArch64 identically to x86-64. New test/test_cross_params.pas in the suites.

Log

Closure (2026-06-16)

feature-cross-bootstrap-selfhost is DONE — byte-identical self-fixedpoint on i386/aarch64/arm32 (and x86-64). This ticket existed to unblock that gate, so its blocking purpose is met: every code path compiler.pas itself exercises now works byte-identically on all cross targets. Residual gaps are only in language features the compiler does NOT self-use (e.g. classes, interfaces, some param/ ABI shapes user code hits) — those move to the language-surface hardening effort driven by the synthetic conformance harness ([[feature-synthetic-feature-matrix-test]]). Closed.