MTE (Memory Tagging) Instructions
13 ARM instructions in this extension - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| addg | ADDG <Xd|SP>, <Xn|SP>, #<uimm6>, #<uimm4> | Data Processing | Adds an immediate to an address, modifying the Allocation Tag (MTE). |
| gmi | GMI <Xd>, <Xn|SP>, <Xm> | Data Processing | Calculates a mask of excluded tags (MTE). |
| irg | IRG <Xd|SP>, <Xn|SP>{, <Xm>} | Data Processing | Inserts a random Allocation Tag into a pointer (MTE). |
| ldg | LDG <Xt>, [<Xn|SP>, #<simm>] | Load/Store | Loads the Allocation Tag from memory. |
| st2g | ST2G <Xt|SP>, [<Xn|SP>, #<simm>] | Load/Store | Stores the Allocation Tag to two memory granules. |
| stg | STG <Xt|SP>, [<Xn|SP>, #<simm>] | Load/Store | Stores the Allocation Tag to memory. |
| stg | STG <Xt|SP>, [<Xn|SP>, #<simm>] | Load/Store | Stores the Allocation Tag to memory. |
| stgp | STGP <Xt>, <Xt2>, [<Xn|SP>, #<simm>] | Load/Store | Stores Tag and two 64-bit data values. |
| stz2g | STZ2G <Xt|SP>, [<Xn|SP>, #<simm>] | Load/Store | Stores Tag and zeros memory for two granules. |
| stzg | STZG <Xt|SP>, [<Xn|SP>, #<simm>] | Load/Store | Stores the Allocation Tag and zeros the data granule. |
| subg | SUBG <Xd|SP>, <Xn|SP>, #<uimm6>, #<uimm4> | Data Processing | Subtracts an immediate from an address, modifying the Allocation Tag (MTE). |
| subp | SUBP <Xd>, <Xn|SP>, <Xm|SP> | Data Processing | Subtracts pointers ignoring Tags. |
| subps | SUBPS <Xd>, <Xn|SP>, <Xm|SP> | Data Processing | Subtracts pointers (ignoring tags) and sets condition flags. |