Arm Instruction Emulator Tutorials

Browse our tutorials to learn about how to use Arm Instruction Emulator.

  • Human head showing understanding.
  • Get started with Arm Instruction Emulator

    A series of simple examples to demonstrate how to compile SVE code, run the resulting executable and analyze runtime behavior with Arm Instruction Emulator.

    Get started
  • A line drawing representing full value procurement.
  • Analyze SVE applications

    Use a basic instrumentation client to perform runtime analysis on your high-performance application. This enables you to gain insights into your application's execution behavior and identify heavily-used loops and instruction sequences.

    Learn more

Instrumentation guides

Instrumentation client structure

The basic structure of an instrumentation client, including the main events that occur during execution and what happens in each event. 

Learn more

Build Custom Analysis Instrumentation

How to modify the instrumentation of an existing client, then build and execute the modified client with Arm Instruction Emulator.

Learn more

View the DynamoRIO command

Use the -s or --show-drrun-cmd option when running ArmIE on a binary, to output the full DynamoRIO drrun command that ArmIE uses.

Learn more

Build an emulation-aware client

Learn how to modify the existing native-only clients to also handle emulated instructions, and to write emulation aware clients of your own.

Learn more

Related information

  • For more advanced analysis examples of a real-world application, see Emulating SVE on existing Armv8-A hardware using DynamoRIO and ArmIE.
  • Source code for the instrumentation clients is provided with the Arm Instruction Emulator build, in the samples directory:
    The files in this directory are inscount_emulated.cppopcodes_emulated.cpp and memtrace_simple.c. You can modify and enhance these for your specific analysis. See Building Custom Analysis Instrumentation for instructions on how to do this.
  • Further resources are available to help you learn about ArmIE. Refer to the SVE Hackathon SC18 page.