Translating AArch64 floating-point instruction set to the x86-64 platform

Yi-Ping You, Tsung Chun Lin, Wuu Yang

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Binary translation translates binary programs from one instruction set to another. It is widely used in virtual machines and emulators. We extend mc2llvm, which is an LLVM-based retargetable 32-bit binary translator developed in our lab in the past several years, to support 64-bit ARM instruction set. In this paper, we report the translation of AArch64 floating-point instructions in our mc2llvm. For floating-point instructions, due to the lack of floating-point support in LLVM [13, 14], we add support for the flush-to-zero mode, not-a-number processing, floating-point exceptions, and various rounding modes. On average, mc2llvm-translated binary can achieve 47% and 24.5% of the performance of natively compiled x86-64 binary on statically translated EEMBC benchmark and dynamically translated SPEC CINT2006 benchmarks, respectively. Compared to QEMU-translated binary, mc2llvm-translated binary runs 2.92x, 1.21x and 1.41x faster on statically translated EEMBC benchmark, dynamically translated SPEC CINT2006, and CFP2006 benchmarks, respectively. (Note that the benchmarks contain both floating-point instructions and other instructions, such as load and store instructions).

Original languageEnglish
Title of host publication48th International Conference on Parallel Processing, ICPP 2019 - Workshop Proceedings
PublisherAssociation for Computing Machinery
Pages1-7
Number of pages7
ISBN (Electronic)9781450371964
DOIs
StatePublished - Aug 2019
Event48th International Conference on Parallel Processing, ICPP 2019 - Kyoto, Japan
Duration: 5 Aug 20198 Aug 2019

Publication series

NameACM International Conference Proceeding Series

Conference

Conference48th International Conference on Parallel Processing, ICPP 2019
CountryJapan
CityKyoto
Period5/08/198/08/19

Keywords

  • AArch64
  • ARM v8
  • Binary translation
  • LLVM
  • Mc2llvm
  • x86-64

Fingerprint Dive into the research topics of 'Translating AArch64 floating-point instruction set to the x86-64 platform'. Together they form a unique fingerprint.

Cite this