# ft-jit **Repository Path**: ft-ink/ft-jit ## Basic Information - **Project Name**: ft-jit - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-18 - **Last Updated**: 2024-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README FT-JIT Compiler Purpose: A low-level, machine independent JIT compiler, which is suitable for translating interpreted byte code into machine code. The ft_jit_Lir.h describes the LIR (low-level intermediate representation) of FT_JIT. Key features: - Supports several target architectures: x86 32/64, ARM 32/64, RiscV 32/64, s390x 64, PowerPC 32/64, LoongArch 64, MIPS 32/64 - Supports a large number of operations - Supports self-modifying code - Supports tail calls - Support fast calls (non-ABI compatible) - Supports byte order reverse (endianness switching) - Supports unaligned memory accesses - Supports SIMD / atomic operations on certain CPUs - Direct register access, both integer and floating point - Stack space allocated for function local variables can be accessed as a linear memory area - All-in-one compilation is supported - When ft_jit_Lir.c is directly included by a C source file, the jit compiler API can be completely hidden from external use (see FT_JIT_CONFIG_STATIC macro) - Code can be generated for multiple target cpus by including ft_jit_Lir.c in different C files, where each compiler instance is configured to target a different architecture - The compiler can be serialized into a byte buffer - Useful for ahead-of-time compiling - Code generation can be resumed after deserialization (partial ahead-of-time compiling) Compatible: C99 (C++) compilers. Using sljit: Copy the content of ft_jit_src directory into your project source directory. Add ft_jit_Lir.c source file to your build environment. All other files are included by ft_jit_Lir.c (if required). Define the machine by FT_JIT_CONFIG_* selector. See ft_jit_ConfigCPU.h for all possible values. For C++ compilers, rename ft_jit_Lir.c to ft_jit_Lir.cpp. More info: https://gitee.com/ft-ink/ft-jit Contact: Almpazel@163.com Special thanks: Hzmester Alexander Nasonov Carlo Marcelo Arenas Belón Christian Persch Daniel Richard G. Giuseppe D'Angelo H.J. Lu James Cowgill Jason Hood Jiong Wang (TileGX support) Marc Mutz Martin Storsjö Michael McConville Mingtao Zhou (LoongArch support) Walter Lee Wen Xichang YunQiang Su