
The fastest LoongArch sandbox
libloong é uma biblioteca emuladora LoongArch de 64 bits de alto desempenho projetada para incorporação e scripting de alta frequência. Construída sobre a arquitetura do libriscv, oferece o desempenho mais rápido de interpretador de 64 bits disponível, mantendo uma base de código compacta de aproximadamente 18 mil linhas com zero dependências.
Você também pode executar programas Linux LoongArch64 na interface de linha de comando.
Nos benchmarks do interpretador CoreMark 1.0 (dezembro de 2025), o libloong lidera a categoria de 64 bits no Ryzen 7950X, atingindo consistentemente uma pontuação de 3000+.
Modos Avançados: Embora o interpretador seja o foco principal para portabilidade, o libloong inclui um JIT leve que atinge 38% do nativo (15.5k CoreMark) e um tradutor binário embutido que atinge ~77% do nativo (31.9k CoreMark).
O scripting para motores de jogos é onde o libloong se destaca. Jogos tradicionais oferecem modding através de bibliotecas compartilhadas (acesso total ao sistema), VMs embutidas como Lua (sobrecarga de chamada de ~150ns) ou runtimes Java. O libloong tem sobrecarga de chamada de aproximadamente 4ns.

Veja o exemplo de jogo Asteroid.
Opções de configuração do CMake:
LA_DEBUG=ON/OFF - Ativar saída de depuração (padrão: OFF)LA_BINARY_TRANSLATION=ON/OFF - Ativar tradução binária (padrão: OFF)LA_THREADED=ON/OFF - Ativar despacho de bytecode em threads (padrão: ON)LA_MASKED_MEMORY_BITS=N - Definir tamanho da arena de memória mascarada como 2^N bytes (0 = desativado, padrão: 0)Exemplo com opções:
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DLA_MASKED_MEMORY_BITS=32 \
-DLA_BINARY_TRANSLATION=ON
make -j6
#include <libloong/machine.hpp>
int main() {
// Load a LoongArch ELF binary
std::vector<uint8_t> binary = load_file("program.elf");
// Create a machine with 64MB memory
loongarch::Machine machine { binary, {
.memory_max = 64 * 1024 * 1024
}};
// Setup program arguments
machine.setup_linux({"program"}, {"LC_ALL=C"});
// Run the program
machine.simulate();
}
| Interpretador | Arquitetura | Pontuação |
|---|
| libloong | 64-bit LoongArch | 3045 |
| libriscv | 64-bit RISC-V | 2865 |
| stitch | Wasm | 2743 |
| wasm3 | Wasm | 2368 |
| wasmer (WAMR) | Wasm | 2314 |
| wasmi | Wasm | 1967 |