bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/26339] [aarch64] unknown architectural extensions


From: david.spickett at linaro dot org
Subject: [Bug gas/26339] [aarch64] unknown architectural extensions
Date: Mon, 10 Aug 2020 11:25:59 +0000

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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]