MTE - AshokBhat/notes GitHub Wiki

About

  • Memory Tagging Extension (MTE)
  • First introduced in Armv8.5-A

Features

  • 64-bit only
  • Two types of tags
    • Every aligned 16 bytes of memory have a 4-bit tag stored separately
    • Every pointer has a 4-bit tag stored in the top byte
  • LD/ST instructions check both tags, raise exception on mismatch
  • New instructions to manipulate the tags

Usage

  • Tagging heap objects
  • Tagging stack objects

Compiler support

  • LLVM - Stack tagging in LLVM 9.0
  • GNU - TBD

See also

  • [Armv8.5-A]] ](/AshokBhat/notes/wiki/[[PAC) | BTI

Resources