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: ndesaulniers at google dot com
Subject: [Bug gas/26339] [aarch64] unknown architectural extensions
Date: Fri, 07 Aug 2020 17:44:06 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=26339

--- Comment #5 from Nick Desaulniers <ndesaulniers at google dot com> ---
(In reply to David Spickett from comment #4)
> Is there existing
> code that uses it with gas perhaps.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/include/asm/tlbflush.h

In the Linux kernel header that uses tlb-rmi.  It's C, but the inline assembly
is what's tripping us up.  It's pretty well commented what the functions in the
header are for.

Specifically, it looks like the functions
flush_tlb_all/flush_tlb_mm/flush_tlb_page_nosync/flush_tlb_kernel_range/__flush_tlb_kernel_pgtable
try to use `tlbi ` vmalle1/vmalle1is/aside1is/vale1is/vaale1is/vaae1is
respectively.

For out of line assembly files using `tlbi`, see:
- arch/arm64/mm/proc.S
- arch/arm64/kernel/hibernate-asm.S
- arch/arm64/kernel/head.S
- arch/arm64/kernel/entry.S
- arch/arm64/kvm/hyp/nvhe/hyp-init.S

I can also see the use of the tlbi related macros using tlbi in inline asm in
some of the virtualization code:
- arch/arm64/kvm/hyp/nvhe/tlb.c
- arch/arm64/kvm/hyp/vhe/tlb.c
- arch/arm64/kernel/sys_compat.c

Is the tlbi instruction what was added in ARMv8.4 (tlb-rmi), or only certain
operands?

-- 
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]