Who is this for?

This is an introductory topic for software developers who want to disassemble binaries on macOS and check for Scalable Matrix Extension (SME) and SME2 instructions.

What will you learn?

After completing this Learning Path, you'll be able to perform the following tasks:

  • Identify the architecture, executable code, symbols, and supporting strings in a macOS binary.
  • Use two disassemblers to inspect instruction bytes, names, operands, and addresses.
  • Identify what disassembly can and can't tell you about SME and SME2 instructions.

Prerequisites

Before starting, you'll need the following prerequisites:

  • An Apple silicon Mac
  • Xcode 26.6 or newer, which includes clang, otool, nm, and llvm-objdump
  • Basic familiarity with C, assembly language, and the macOS terminal

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll build a small arm64 Mach-O fixture on macOS. Then, you’ll use otool and llvm-objdump to inspect it for SME and SME2 instructions. You’ll compare strings and symbols with decoded executable code, checking instruction bytes, operands, addresses, and surrounding context. You’ll also test comparison binaries, then combine the llvm-objdump and awk checks in a reusable script.
Next