Skip to content

Code Structure

Hanlu Li edited this page Aug 7, 2026 · 1 revision

Source tree guide

This page provides starting points for developers changing LATX. The project is built on QEMU, so common QEMU modules retain the upstream layout. LATX-specific code is primarily under target/i386/latx/.

Top-level entry points

lat/
├── configs/                 # LATX configuration file templates
├── docs/user/               # User configuration reference
├── latxbuild/               # Release, 32-bit, 64-bit, and debug build scripts
├── linux-user/              # ELF loading, syscalls, signals, and main entry point
├── runtime/                 # Installation status tool
├── target/i386/latx/        # LATX translator core
├── tests/latx/              # LATX unit and regression tests
└── tests/runtime/           # Runtime-tool and installation tests

LATX core directories

target/i386/latx/
├── context/                 # Library pass-through and guest/host library boundary
├── include/                 # Internal interfaces and optimization configuration
├── ir1/                     # IR1 representation of x86 instructions
├── ir2/                     # LoongArch IR2, assembly, and relocation
├── optimization/            # Flag, TU, immediate-value, and instruction-pattern work
├── sbt/                     # AOT files, recovery, merging, and SMC handling
├── translator/              # x86 instruction translation and register allocation
├── wrapper/                 # Library pass-through wrapper entry points
├── convert.py               # Generates LoongArch instruction append functions
└── latx-options.c           # Runtime defaults and configuration-file loading

Find an entry point by task

Task Start with
Add or fix x86 instruction translation translator/, ir1/, ir2/
Change translation optimization optimization/, include/optimize-config.h
Change AOT sbt/
Change library pass-through context/, wrapper/
Change runtime options arg_table in linux-user/main.c, latx-options.c
Change guest-runtime selection or source reporting linux-user/main.c, target/i386/latx/latx-runtime.c, target/i386/latx/latx-options.c
Change dynamic-loader handling or failure diagnostics linux-user/elfload.c
Change syscall or signal compatibility linux-user/syscall.c, linux-user/signal.c
Change the build latxbuild/, configure, meson.build

Before submitting changes, read the repository's contribution guide and commit convention.

Clone this wiki locally