CPU targets

pxx emits native and cross-target code from a single compiler invocation (--target=ARCH), all lowering from the shared IR — no vendor toolchain in the loop. Cross-target Linux binaries run under QEMU user-mode via tools/run_target.sh.

Target Status Notes
x86_64 Full Native Linux ELF — the default backend and the self-host host.
i386 Full 32-bit Linux ELF.
aarch64 Full 64-bit ARM Linux ELF.
arm32 Full 32-bit ARM Linux ELF.
riscv32 Full 32-bit RISC-V — Linux ELF and ESP32-C3 (RV32IMC), bare metal or ESP-IDF.
xtensa Partial ESP32-S2 / S3 (Xtensa LX7), bare metal or ESP-IDF. Some ABI corners (e.g. windowed-ABI interrupt vectors) are still limited.

64-bit integer arithmetic is available and oracle-validated on every target. Floating point on the ESP cores is opt-in soft-float (uses softfloat) — the hardware has no FPU codegen path.

See the documentation: Targets · Cross-compilation · ESP32 / microcontrollers.