← board

Float + Variant codegen on cross targets

Motivation

The cross backends are integer/pointer only. No floating-point (tySingle/ tyDouble/tyExtended) and no Variant (16-byte tag+payload) codegen. This blocks compiling the full builtin unit on cross targets — FloatToStr, VariantToStr, and Str/float paths use float arithmetic and variant ops — and therefore blocks the cross self-host (uses SysUtils pulls these in).

Scope

Floats

Variants

Acceptance

Float and Variant test programs compile and run on i386, ARM32, AArch64 with output identical to x86-64. The full builtin unit compiles on every target. New test/test_cross_float.pas and test/test_cross_variant.pas in the suites.

Staging

Floats and Variants can land as two separate slices; floats first (broader value, and builtin's FloatToStr needs them).

Log