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.