Disassemble macOS binaries to check for SME and SME2 instructions
Introduction
Prepare an arm64 Mach-O fixture
Inspect strings and symbols in a binary
Disassemble binaries and verify SME2
Automate and adapt the inspection workflow
Next Steps
Disassemble macOS binaries to check for SME and SME2 instructions
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, andllvm-objdump - Basic familiarity with C, assembly language, and the macOS terminal
Summary
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.
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.