https://sourceware.org/bugzilla/show_bug.cgi?id=26339
--- Comment #6 from David Spickett <david.spickett at linaro dot org> --- > Is the tlbi instruction what was added in ARMv8.4 (tlb-rmi), or only certain > operands? (I'm reading this from the ARMARM for v8, "C6.2.328 TLBI") tlbi is a sys instruction alias which I think means that it's always been available in some form. Clang takes this approach, so just armv8.0-a will give you access to tlbi itself. v8.4-a added more operands (some of which take registers) to the list. These are the "outer shareable" and "range maintanence". (added to llvm in 35bd8f5d1e31c7f57ddd56b12fba302f54274548, note that since then a "tlb-rmi" sub feature was added) So if you look at the instruction description, <tlbi_op> will tell you which operands were added for FEAT_TLBIOS and FEAT_TLBIRANGE which are enabled for v8.4-a. Clang example: $ cat /tmp/test.s tlbi vmalle1os $ ./clang -target aarch64-arm-none-eabi -march=armv8.3-a -c /tmp/test.s -o /dev/null /tmp/test.s:1:6: error: TLBI VMALLE1OS requires tlb-rmi tlbi vmalle1os ^ $ ./clang -target aarch64-arm-none-eabi -march=armv8.4-a -c /tmp/test.s -o /dev/null This will also do the same thing from the assembler if you want to avoid the clang only tlb-rmi name: .arch armv8.4-a tlbi vmalle1os (if that helps at all) -- You are receiving this mail because: You are on the CC list for the bug.