ArmIE Release History

This page lists the Arm Instruction Emulator (ArmIE) release history.

To download and install the latest version of Arm Instruction Emulator (ArmIE), see our ArmIE downloads page and follow the installation instructions.

Details on release versions and links to the Release Notes and Documentation of Arm Instruction Emulator (ArmIE) are provided below.


Download Arm Instruction Emulator

Version 22.0

Released: March 31, 2022

  • Download Arm Instruction Emulator: 22.0 March 31, 2022

    What's new in 22.0

    Arm Instruction Emulator 22.0 covers the following releases:

    • Arm Instruction Emulator 22.0 - Release 31st March, 2022

    22.0

    Additions and changes
    • New license issued with this release that has no expiration date.
    • Updated GCC runtime support from GCC 10.2 to GCC 11.2.

    Resolved issues
    • None in this release.

    Known limitations

    There are DynamoRIO defects and issues logged at https://github.com/DynamoRIO/ dynamorio/issues which might result in instrumentation and emulation failures.

    Note: Thorough testing and validation of this release has not resulted in any bugs related to those issues.

    • https://github.com/DynamoRIO/dynamorio/issues/1698 ArmIE has a workaround for this using the --unsafe-ldstex option. This feature is enabled by default and has now been deprecated. It will be removed in a future release./li>

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 21.0 March 30, 2021

    What's new in 21.0

    Changes in Release 20.1
    =======================

    Removed Features
    ----------------

    • None

    New Features and Enhancements
    -----------------------------

    • Added support for the following v8.2 instructions, based on detection of hardware capability at startup:

    • Scalar half-precision variants of ucvtf and scvtf.
    • Half-precision fabd.

    • Updated GCC runtime support from GCC 9.2 to GCC 10.2.

    Bug Fixes
    ---------

    • Fixed some hardware feature checks for v8.2 and v8.3 emulation.

    • Fixed a v8.3 fcmla emulation error.

    Other Changes
    -------------

    • The license that is included in ArmIE 21.0 is set to expire after 31st March 2022.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 20.1 August 21, 2020

    What's new in 20.1

    Changes in Release 20.1
    =======================

    Removed Features
    ----------------
    - None

    New Features and Enhancements
    -----------------------------
    - Added support for the following v8.2 instructions based on detection of
      hardware capability at startup:
      fmov, scvtf, frecpe, fabs, fcmgtz, fcvtzs, frintn, frsqrte, frsqrts, fmax,
      fmaxp and fdiv, scvtf, ucvtf

    Bug Fixes
    ---------
    - Some SVE2 instructions that were not being emulated correctly have been
      fixed.

    - CAS-164399-V9L7T0
      Output from the -s option now shows double-quoted client parameter strings
      correctly.

    Other Changes
    -------------
    - The license that is included in ArmIE 20.1 is set to expire after 31st August
      2021.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 20.0 February 18, 2020

    What's new in 20.0

    Changes in Release 20.0
    =======================

    Removed Features
    ----------------
    - The --unsafe-ldstex has been deprecated and is enabled by default. A new
      option, --safe-ldstex, has been added in the unlikely event that
      --unsafe-ldstex needs to be disabled.

    New Features and Enhancements
    -----------------------------
    - Added command option --safe-ldstex, (see 'Removed Features' above).

    - Added support for the emulated v8.2 instructions: frsqrte, frsqrts, fmax, fmaxp
      and fdiv. Optimization of emulated v8.2 instructions: fmax and fma.

    - Adds support for the full diagnostic reporting of illegal instructions
      (SIGILL), in other words, displaying the illegal encoding and its subject
      binary PC address.

    - Added armie command line option, --arg-iclient, to enable the passing of
      arguments to instrumentation clients.

    - Consistency updates to Region-of-Interest (ROI) feature, originally extended
      from memory tracing instrumentation client to instruction counting, opcode
      counting, and instruction tracing clients.

    - Added an example of using Region-of-Interest (ROI) macros in Fortran source
      code in the samples/fortran_roi directory.

    - Updated GCC linker/loader support from GCC 8.2 to GCC 9.2.

    Bug Fixes
    ---------
    - Critical bug fix for OpenMPI applications.

    - Improved installation compatibility with Arm Compiler for Linux and Arm
      Performance Libraries. This fixes a bug which required users to load the ArmIE
      environment module before loading the Arm Compiler for Linux and Arm
      Performance Libraries environment module.

    Other Changes
    -------------
    - License is set to expire after 31st January 2021.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 19.2 August 30, 2019

    What's new in 19.2

    Changes in Release 19.2
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    - Emulation of the following v8.2 and v8.3 instructions based on detection of
      hardware capability at startup:

      v8.2 half-precision instructions:
      fadd, fsub, fmul, fmul (by element), fmla, fmla (by element), fmadd, fmsub,
      fmls, fmls (by element), fneg, fcmp.

      v8.3: fcmla, fcadd

    - Upgraded to be compatible with GCC 8.2 linker/loader, (from GCC 7.1).

    Bug Fixes
    ---------
    - None.

    Other Changes
    -------------
    - License set to expire after 31st August 2020.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 19.1 July 03, 2019

    What's new in 19.1

    Changes in Release 19.1
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    - Addition of an uninstall.sh script

    Bug Fixes
    ---------
    - None.

    Other Changes
    -------------
    - License extended to 31st March 2021.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 19.0 April 05, 2019

    What's new in 19.0

    Changes in Release 19.0
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    - The regions-of-interest feature (ROI), has been added to the following
      instrumentation clients:
      api/samples/inscount_emulated.cpp
      api/samples/instrace_emulated.c
      api/samples/memtrace_emulated.c
      api/samples/opcodes_emulated.cpp

    Bug Fixes
    ---------
    - An ELF loader bug which resulted in failures when running Fortran binaries has
      been fixed.

    Other Changes
    -------------
    - Documentation has been updated to include more information about analysing
      specific aspects of runtime performance using existing instrumentation
      clients, or developing your own. See:
      https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instruction-emulator
      https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instruction-emulator/tutorials
      https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instruction-emulator/structure-of-an-instrumentation-client
      https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instruction-emulator/building-custom-analysis-instrumentation
      https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instruction-emulator/building-an-emulation-aware-instrumentation-client

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 18.4 November 02, 2018

    What's new in 18.4

    Changes in Release 18.4
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    - None.

    Bug Fixes
    ---------
    - This version can successfully run multi-threaded subject binaries, including
      those linked with OpenMP libraries.

    Other Changes
    -------------
    - None.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 18.3 October 05, 2018

    What's new in 18.3

    Changes in Release 18.3
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    - Emulation has been separated from instrumentation based on the addition of an
      emulation interface to the DynamoRIO API allowing users to develop their own
      instrumentation clients:

      drmgr_is_emulation_start()
      drmgr_is_emulation_end()
      drmgr_get_emulation_instr_data()
      drmgr_create_emulation_start()
      drmgr_create_emulation_end()
      emulated_instr_t

      Two instruction count clients, an opcodes client and a memory trace client have
      been provided as examples. Another emulation feature to simplify iteration over
      blocks with emulated instructions is planned for a future release. If accepted
      upstream, this emulation-aware iterator will simplify instrumentation when
      running with emulation clients.

    Bug Fixes
    ---------
    - None

    Other Changes
    -------------
    - A script, enc2instr.py, which can be used to disassemble instruction encodings
      to mnemonics. Useful for disassembling the output from
      drmgr_get_emulation_instr_data(). The script is based on llvm-mc and defaults
      to disassembling SVE, but can be any legal -mattr value supported by llvm-mc.
    - All license files are now in the license_terms directory.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 18.2 August 24, 2018

    What's new in 18.2

    Changes in Release 18.2
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    This release begins the process of separating emulation clients from
    instrumentation clients. The implementation of an instruction count client and
    memory tracing clients are the first examples of such a separation.

    Bug Fixes
    ---------
    - A bug in counting non-SVE instructions has been fixed.

    Other Changes
    -------------
    - None.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 18.1 April 30, 2018

    What's new in 18.1

    Changes in Release 18.1
    =======================

    Removed Features
    ----------------
    - None.

    New Features and Enhancements
    -----------------------------
    - There are significant improvements in runtime performance principally due to
      optimisations in SVE emulation functions (mostly floating-point emulation
      including faster FCMLA) and memory copying.

    Bug Fixes
    ---------
    - Floating point corrections including:
      - Handling of inactive vector elements.
      - Floating point <-> integer conversions.
      - FPSR updates by and for modifying instructions.
      - Operand ordering for commutative operations.
      - Handling of NaNs.

    Other Changes
    -------------
    - None.

    • Release Note
    • EULA
  • Download Arm Instruction Emulator: 18.0 March 28, 2018

    What's new in 18.0

    Changes in this Release
    =======================

    Removed features:

    The functionality enabled by the following command line options is not available
    in this release. They may be added in future releases.

    -d, --debug             Enabled assertion checks in the emulator.
    -o, --output            Redirected all messages generated by armie to a file.
    -p, --profile-period    Enabled the performance profiler.
    -msve-memtrace          Enabled memory tracing.

    New features:

    - Arm Instruction Emulator 18.0 runs using DynamoRIO clients to provide SVE
      emulation and limited instrumentation for both emulated SVE instructions and
      native AArch64 instructions. Previous releases emulated SVE instructions with
      no coverage of native AArch64 instructions.

    Bug fixes:

    - None. This is the first release based on DynamoRIO.

    Other changes:

    - None.

    • Release Note
    • EULA