From CISC to RISC: language-model guided assembly transpilation
Abstract
The transition from x86 to ARM architecture is becoming increasingly common across various domains, primarily driven by ARM's energy efficiency and improved performance across traditional sectors. However, this ISA shift poses significant challenges, mainly due to the extensive legacy ecosystem of x86 software and lack of portability across proprietary ecosystems and software stacks. This paper introduces CRT, a lightweight LLM-based transpiler that automatically converts x86 assembly to ARM assembly. Our approach bridges the fundamental architectural gap between x86's CISC-based and ARM's RISC-based computing paradigms while preserving program semantics and optimizing performance. We evaluate CRT on diverse real-world applications, achieving 79.25% translation accuracy from x86 to ARMv5 on our comprehensive test suite, and an 88.68% accuracy from x86 to RISC-V. In practical deployments on Apple M2 hardware (ARMv8), our transpiled code achieves 1.73times speedup compared to Apple's Rosetta 2 virtualization engine, while delivering 2.41times memory efficiency and 1.47times better energy consumption. Through testing and analysis, we show that CRT successfully navigates the CISC/RISC divide and generates correctly executable RISC code despite machine ``language'' barriers. We release our code, models, training datasets, and benchmarks at: https://ahmedheakl.github.io/asm2asm/.
Community
The transition from x86 to ARM architecture is becoming increasingly common across various domains, primarily driven by ARM's energy efficiency and improved performance across traditional sectors. However, this ISA shift poses significant challenges, mainly due to the extensive legacy ecosystem of x86 software, and lack of portability across proprietary ecosystems and software stacks. This paper introduces CRT, a lightweight LLM-based transpiler that automatically converts x86 assembly to ARM assembly. Our approach bridges the fundamental architectural gap between x86's CISC-based and ARM's RISC-based computing paradigms while preserving program semantics and optimizing performance.
We evaluate CRT on diverse real-world applications, achieving 79.25% translation accuracy from x86 to ARMv5 on our comprehensive test suite, and a 88.68% accuracy from x86 to RISC-V. In practical deployments on Apple M2 hardware (ARMv8), our transpiled code achieves 1.73x speedup compared to Apple's Rosetta 2 virtualization engine, while delivering 2.41x memory efficiency and 1.47x better energy consumption. Through testing and analysis, we show that CRT successfully navigates the CISC/RISC divide, and generates correctly executable RISC code despite machine ''language'' barriers. We release our code, models, training datasets, and benchmarks here
This is an automated message from the Librarian Bot. I found the following papers similar to this paper.
The following papers were recommended by the Semantic Scholar API
- Advancing Cloud Computing Capabilities on gem5 by Implementing the RISC-V Hypervisor Extension (2024)
- Web-Based Simulator of Superscalar RISC-V Processors (2024)
- Green My LLM: Studying the key factors affecting the energy consumption of code assistants (2024)
- Can Large-Language Models Help us Better Understand and Teach the Development of Energy-Efficient Software? (2024)
- Large Language Models for Energy-Efficient Code: Emerging Results and Future Directions (2024)
- A Review on Edge Large Language Models: Design, Execution, and Applications (2024)
Please give a thumbs up to this comment if you found it helpful!
If you want recommendations for any Paper on Hugging Face checkout this Space
You can directly ask Librarian Bot for paper recommendations by tagging it in a comment:
@librarian-bot
recommend
Nice job. What do you mean by 88% accuracy? Surely when re-compiling binaries it's either 100% or 0%? I.E either it compiles or it doesn't, there is no in-between. Are you saying it compiles 88% of cases or are you saying it always compiles but the control flow is only 88% accurate (i.e it may introduce bugs)
Hi @MichaelBarryUK ,
Thanks for your question. The accuracy mentioned in our paper is test cases accuracy. The code generated by our transpiler is 100% executable (i.e. it has no syntax errors). You will find a nice analysis in the paper of what type of errors our transpiler produced to fail 12% of the time.
Models citing this paper 5
Browse 5 models citing this paperDatasets citing this paper 2
Spaces citing this paper 0
No Space linking this paper