llvm-project/llvm/test/MC/AArch64
Mitch Phillips 850defb861 Add assembler plumbing for sanitize_memtag
Extends the Asm reader/writer to support reading and writing the
'.memtag' directive (including allowing it on internal global
variables). Also add some extra tooling support, including objdump and
yaml2obj/obj2yaml.

Test that the sanitize_memtag IR attribute produces the expected asm
directive.

Uses the new Aarch64 MemtagABI specification
(https://github.com/ARM-software/abi-aa/blob/main/memtagabielf64/memtagabielf64.rst)
to identify symbols as tagged in object files. This is done using a
R_AARCH64_NONE relocation that identifies each tagged symbol, and these
relocations are tagged in a special SHT_AARCH64_MEMTAG_GLOBALS_STATIC
section. This signals to the linker that the global variable should be
tagged.

Reviewed By: fmayer, MaskRay, peter.smith

Differential Revision: https://reviews.llvm.org/D128958
2022-12-01 10:50:34 -08:00
..
CSSC [AArch64][clang] implement 2022 General Data-Processing instructions 2022-11-22 14:23:12 +00:00
SME [AArch64][AsmParser] SME: Allow h/v suffix to be upper-case. 2022-11-28 11:42:43 +00:00
SME2 [AArch64][NFC] SME2 Add missing tests for usvdot and sumlall instructions 2022-11-21 17:36:53 +00:00
SME2p1 [AArch64] Add all SME2.1 instructions Assembly/Disassembly 2022-11-14 14:56:16 +00:00
SVE [AArch64]SME2 Multi vector Sel Load and Store instructions 2022-11-10 16:04:57 +00:00
SVE2 [AArch64]SME2 Multi vector Sel Load and Store instructions 2022-11-10 16:04:57 +00:00
SVE2p1 [AArch64]SME2 Multi vector Sel Load and Store instructions 2022-11-10 16:04:57 +00:00
CheckDataSymbol.s
ELF_ARM64_large-relocations.s Fix unwind info relocation with large code model on AArch64 2020-11-06 14:41:30 -05:00
adr-diagnostics.s
adr.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
adrp-annotation.s
adrp-relocation.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
adrp-relocation2.s
alias-addsubimm.s [AArch64] Add target feature "all" 2022-06-30 10:37:58 -07:00
alias-logicalimm.s
align.s [llvm-objdump,ARM] Fix a lot more tests. 2022-07-26 10:22:02 +01:00
arm32-elf-relocs.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
arm64-adr.s
arm64-advsimd.s
arm64-aliases.s
arm64-arithmetic-encoding.s
arm64-arm64-fixup.s
arm64-basic-a64-instructions.s
arm64-be-datalayout.s
arm64-bitfield-encoding.s
arm64-branch-encoding.s [MC][AArch64] Enable '+v8a' when nothing specified for MCSubtargetInfo 2022-04-29 04:53:22 +08:00
arm64-compact-unwind-fallback.s AArch64: fall back to DWARF instead of crashing on weird .cfi directives 2022-05-18 11:42:42 +01:00
arm64-condbr-without-dots.s
arm64-crypto.s
arm64-diagno-predicate.s
arm64-diags.s
arm64-directive_loh.s [AArch64][MC] Change "unexpected tokens in .xxx directive " to "expected newline" 2022-06-05 14:32:31 -07:00
arm64-elf-reloc-condbr.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
arm64-elf-relocs.s MC: AArch64: Add support for gotpage_lo15 2021-01-21 08:29:49 -03:00
arm64-fp-encoding-error.s
arm64-fp-encoding.s
arm64-ilp32.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
arm64-large-relocs.s
arm64-leaf-compact-unwind.s [MC][test] Update arm64-leaf-compact-unwind.s to use llvm-objdump 2022-10-03 22:16:40 -04:00
arm64-logical-encoding.s
arm64-memory.s [AArch64] Assembly support for FEAT_LRCPC3 2022-11-25 18:59:07 +00:00
arm64-no-section.ll
arm64-nv-cond.s
arm64-optional-hash.s
arm64-separator.s
arm64-simd-ldst.s
arm64-small-data-fixups.s
arm64-spsel-sysreg.s
arm64-system-encoding.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
arm64-target-specific-sysreg.s
arm64-tls-modifiers-darwin.s [aarch64/mac] Correctly disassemble @TLVPPAGE(OFF) relocs 2021-11-10 10:41:18 -05:00
arm64-v128_lo-diagnostics.s
arm64-variable-exprs.s
arm64-vector-lists.s
arm64-verbose-vector-case.s
arm64_32-compact-unwind.s
arm64e-subtype.s [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth. 2020-12-03 07:53:59 -08:00
arm64e.s [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth. 2020-12-03 07:53:59 -08:00
arm64ec.s [ARM64EC 2/?] Add target triple, and allow targeting it. 2022-09-05 12:27:10 -07:00
arm64v8.1-diagno-predicate.s
armv8.1a-atomic.s
armv8.1a-lor.s
armv8.1a-lse.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.1a-pan.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.1a-rdma.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.1a-vhe.s
armv8.2a-at.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.2a-bfc.s
armv8.2a-crypto-apple.s
armv8.2a-crypto-error.s
armv8.2a-crypto.s [AArch64] Exclude optional features from HasV8_0rOps. 2022-01-25 10:54:59 +00:00
armv8.2a-dotprod-errors.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.2a-dotprod.s [AArch64] Support for Ampere1 core 2022-05-03 15:54:02 +01:00
armv8.2a-persistent-memory.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.2a-statistical-profiling.s
armv8.2a-uao.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.3a-ID_ISAR6_EL1.s
armv8.3a-complex.s
armv8.3a-complex_bad.s
armv8.3a-complex_missing.s
armv8.3a-complex_nofp16.s
armv8.3a-complex_nofp16_bad.s
armv8.3a-diagnostics.s
armv8.3a-js.s
armv8.3a-pauth.s [AArch64] Add missing "pauth" feature to the .arch_extension directive. 2021-01-20 11:57:39 +00:00
armv8.3a-rcpc.s [AArch64] Support for Ampere1 core 2022-05-03 15:54:02 +01:00
armv8.3a-signed-pointer.s
armv8.4a-actmon.s
armv8.4a-dit.s
armv8.4a-flag-error.s
armv8.4a-flag.s [AArch64] Add +flagm archictecture option, allowing the v8.4a flag modification extension. 2021-01-08 13:21:12 +00:00
armv8.4a-flagm.s [AArch64] Add missing "flagm" feature to the .arch_extension directive. 2021-01-20 11:57:39 +00:00
armv8.4a-ldst-error.s
armv8.4a-ldst.s
armv8.4a-mpam.s
armv8.4a-ras.s [AArch64] Enable RAS 1.1 system registers in all AArch64 2020-11-10 12:13:33 +00:00
armv8.4a-tlb.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.4a-trace-error.s
armv8.4a-trace.s [AArch64][MC] Remove unused prefix in v8.4-a trace test 2020-11-06 11:17:18 +00:00
armv8.4a-virt.s
armv8.4a-vncr.s
armv8.5a-altnzcv.s
armv8.5a-bti-error.s
armv8.5a-bti.s
armv8.5a-frint-error.s
armv8.5a-frint.s
armv8.5a-mte-error.s
armv8.5a-mte.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.5a-persistent-memory.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.5a-predres-error.s
armv8.5a-predres.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.5a-rand-error.s
armv8.5a-rand.s
armv8.5a-sb.s
armv8.5a-specrestrict.s
armv8.5a-ssbs-error.s
armv8.5a-ssbs.s [ARM][AArch64] Adding Neoverse N2 CPU support 2020-11-25 11:42:54 +00:00
armv8.5a-xaflag-error.s
armv8.6a-amvs.s [AArch64] Add Missing System Registers 2022-11-24 17:47:48 +00:00
armv8.6a-bf16.s [AArch64] Add target feature "all" 2022-06-30 10:37:58 -07:00
armv8.6a-ecv.s
armv8.6a-fgt.s [AArch64] Add Missing System Registers 2022-11-24 17:47:48 +00:00
armv8.6a-simd-matmul-error.s
armv8.6a-simd-matmul.s
armv8.7a-hcx.s [ARM][AArch64] Adding basic support for the v8.7-A architecture 2020-12-17 13:45:08 +00:00
armv8.7a-ls64.s [NFC] Disallow unused prefixes under MC/AArch64 2021-01-14 09:46:13 -08:00
armv8.7a-wfxt.s [ARM][AArch64] Adding basic support for the v8.7-A architecture 2020-12-17 13:45:08 +00:00
armv8.7a-xs.s [NFC] Disallow unused prefixes under MC/AArch64 2021-01-14 09:46:13 -08:00
armv8.8a-hbc.s [AArch64] Adding "armv8.8-a" BC instruction. 2022-01-03 12:33:51 +00:00
armv8.8a-mops.s [AArch64] Adding "armv8.8-a" memcpy/memset support. 2022-01-05 14:44:24 +00:00
armv8.9a-cssc.s [AArch64][clang] implement 2022 General Data-Processing instructions 2022-11-22 14:23:12 +00:00
armv8.9a-debug-pmu-error.s [AArch64] Add support for v8.9-A/v9.4-A Debug and PMU extensions 2022-11-24 16:15:11 +00:00
armv8.9a-debug-pmu.s [AArch64] Add support for v8.9-A/v9.4-A Debug and PMU extensions 2022-11-24 16:15:11 +00:00
armv8.9a-lrcpc3.s [AArch64] Assembly support for FEAT_LRCPC3 2022-11-25 18:59:07 +00:00
armv8.9a-the.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
armv8a-fpmul-error.s
armv8a-fpmul.s
armv8r-inst.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8r-sysreg.s [AArch64] Remove PRBAR0_ELn and PRLAR0_ELn sysregs. 2022-01-20 13:37:58 +00:00
armv8r-unsupported-inst.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8r-unsupported-sysreg.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv9-mrrs.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
armv9-msrr.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
armv9-sysp.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
armv9.4-lse128.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
armv9a-mec.s [AArch64] RME MEC instructions and system registers 2022-11-10 14:05:12 +00:00
armv9a-rme.s [Aarch64] Adding support for Armv9-A Realm Management Extension 2021-06-28 13:45:22 +01:00
atomic-acquire-comment.s
basic-a64-diagnostics.s [AArch64] Add Missing System Registers 2022-11-24 17:47:48 +00:00
basic-a64-instructions.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
basic-pic.s
brbe.s [AArch64] Add BRB IALL and BRB INJ instructions 2021-01-06 12:10:22 +00:00
case-insen-reg-names.s
cfi.s [MC] Parse end-of-line for .cfi_* directives 2021-03-06 16:20:55 -08:00
coff-align.s
coff-basic.ll
coff-debug.ll MC: Convert tests to opaque pointers 2022-11-27 20:10:29 -08:00
coff-function-type-info.ll
coff-relocations-diags.s [AArch64] [COFF] Properly produce cross-section relative relocations 2021-04-14 12:31:26 +03:00
coff-relocations-offset.s [llvm-objdump,ARM] Fix a lot more tests. 2022-07-26 10:22:02 +01:00
coff-relocations.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
coff-separator.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
cold.s
crc.s
cyclone-movi-bug.s
darwin-reloc-addsubimm.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
directive-arch-negative.s
directive-arch.s [AArch64] Parse "rng" feature flag in .arch directive 2021-03-16 14:10:19 -07:00
directive-arch_extension-negative.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
directive-arch_extension.s [AArch64] Assembly support for VMSA 2022-11-30 13:37:02 +00:00
directive-cpu-err.s
directive-cpu.s
directive-variant_pcs-err.s [AArch64] Allow .variant_pcs before the symbol is registered 2022-03-28 17:52:27 -07:00
directive-variant_pcs.s [AArch64] Allow .variant_pcs before the symbol is registered 2022-03-28 17:52:27 -07:00
directives-case_insensitive.s
dot-req-case-insensitive.s
dot-req-diagnostics.s [AArch64][MC] Change "unexpected tokens in .xxx directive " to "expected newline" 2022-06-05 14:32:31 -07:00
dot-req.s
elf-extern.s
elf-globaladdress.ll MC: Convert tests to opaque pointers 2022-11-27 20:10:29 -08:00
elf-objdump.s
elf-reloc-addsubimm.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
elf-reloc-ldrlit.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf-reloc-ldstunsimm.s
elf-reloc-movw.s
elf-reloc-pcreladdressing.s
elf-reloc-plt32.s
elf-reloc-tstb.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf-reloc-uncondbrimm.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf_osabi_flags.s
error-location-during-layout.s
error-location-ldr-pseudo.s
error-location-post-layout.s
error-location.s
ete-sysregs.s
expr-bad-symbol.s
expr-shr.s
fixup-absolute-signed.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
fixup-absolute.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
fixup-out-of-range.s [AArch64] Diagnose large adrp offset on Windows. 2021-11-02 15:11:22 -07:00
fullfp16-diagnostics.s
fullfp16-neon-neg.s
gicv3-regs-diagnostics.s
gicv3-regs.s
global-tagging.ll Add assembler plumbing for sanitize_memtag 2022-12-01 10:50:34 -08:00
ilp32-diagnostics.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
inline-asm-modifiers.s
inst-directive-diagnostic.s
inst-directive-other.s [llvm-objdump,ARM] Fix a lot more tests. 2022-07-26 10:22:02 +01:00
inst-directive.s
invalid-instructions-spellcheck.s
ir-to-imgrel.ll MC: Convert tests to opaque pointers 2022-11-27 20:10:29 -08:00
jump-table.s
label-arithmetic-darwin.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
label-arithmetic-diags-darwin.s
label-arithmetic-diags-elf.s
label-arithmetic-elf.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
ldr-pseudo-diagnostics.s
ldr-pseudo-obj-errors.s
ldr-pseudo.s
lit.local.cfg [NFC] Disallow unused prefixes under llvm/test 2021-01-21 20:31:52 -08:00
macho-addend-range.s
macho-adrp-missing-reloc.s
macho-adrp-page.s
macro-hex-int.s
mapping-across-sections.s ELFObjectWriter: Don't sort local symbols 2021-02-07 15:47:10 -08:00
mapping-within-section.s
mov-expr-as-immediate.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
mov-expression-as-immediate.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
mov-unsupported-expr-as-immediate.s
neon-2velem.s
neon-3vdiff.s
neon-aba-abd.s
neon-across.s
neon-add-pairwise.s
neon-add-sub-instructions.s
neon-bitwise-instructions.s
neon-compare-instructions.s
neon-crypto.s
neon-diagnostics.s [AArch64]SME2 Multi vector Sel Load and Store instructions 2022-11-10 16:04:57 +00:00
neon-extract.s
neon-facge-facgt.s
neon-frsqrt-frecp.s
neon-halving-add-sub.s
neon-max-min-pairwise.s
neon-max-min.s
neon-mla-mls-instructions.s
neon-mov.s
neon-mul-div-instructions.s
neon-perm.s
neon-rounding-halving-add.s
neon-rounding-shift.s
neon-saturating-add-sub.s
neon-saturating-rounding-shift.s
neon-saturating-shift.s
neon-scalar-abs.s
neon-scalar-add-sub.s
neon-scalar-by-elem-mla.s
neon-scalar-by-elem-mul.s
neon-scalar-by-elem-saturating-mla.s
neon-scalar-by-elem-saturating-mul.s
neon-scalar-compare.s
neon-scalar-cvt.s
neon-scalar-dup.s
neon-scalar-extract-narrow.s
neon-scalar-fp-compare.s
neon-scalar-mul.s
neon-scalar-neg.s
neon-scalar-recip.s
neon-scalar-reduce-pairwise.s
neon-scalar-rounding-shift.s
neon-scalar-saturating-add-sub.s
neon-scalar-saturating-rounding-shift.s
neon-scalar-saturating-shift.s
neon-scalar-shift-imm.s
neon-scalar-shift.s
neon-shift-left-long.s
neon-shift.s
neon-simd-copy.s
neon-simd-ldst-multi-elem.s
neon-simd-ldst-one-elem.s
neon-simd-misc.s
neon-simd-post-ldst-multi-elem.s
neon-simd-shift.s
neon-sxtl.s
neon-tbl.s
neon-uxtl.s
nofp-crypto-diagnostic.s
noneon-diagnostics.s
optional-hash.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
ras-extension.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
reloc-directive-err.s
reloc-directive.s [MC][AArch64] Support .reloc *, BFD_RELOC_{NONE,16,32,64}, * 2021-03-05 21:31:08 -08:00
rprfm.s [AArch64][clang] implement 2022 General Data-Processing instructions 2022-11-22 14:23:12 +00:00
seh-large-func-multi-epilog.s [WinEH][ARM64] Split Unwind Info for Fucntions Larger than 1MB 2022-08-05 11:46:41 -07:00
seh-large-func.s [WinEH][ARM64] Split Unwind Info for Fucntions Larger than 1MB 2022-08-05 11:46:41 -07:00
seh-multi-epilog.s [MC] [Win64EH] Fix the calculation of the end of epilogs 2022-08-08 23:03:17 +03:00
seh-optimize.s [MC] [Win64EH] Try writing an ARM64 "packed epilog" even if the epilog doesn't share opcodes with the prolog 2022-05-17 00:41:39 +03:00
seh-packed-epilog.s [MC] [Win64EH] Try writing an ARM64 "packed epilog" even if the epilog doesn't share opcodes with the prolog 2022-05-17 00:41:39 +03:00
seh-packed-unwind.s [AArch64] Make sure we don't emit packed unwind for .seh_save_any_reg_p 2022-11-30 13:47:35 -08:00
seh.s [AArch64][Windows] Add MC support for save_any_reg. 2022-10-18 11:45:27 -07:00
shift_extend_op_w_symbol.s [AArch64][AsmParser] NFC: Parser.getTok().getLoc() -> getLoc() 2021-07-26 09:36:34 +00:00
single-slash.s
size-directive.s ELFObjectWriter: Don't sort non-local symbols 2021-02-13 10:32:27 -08:00
spe.s [AArch64] Add support for the SPE-EEF feature 2020-12-18 11:11:56 +00:00
speculation-barriers.s
tls-add-shift.s [llvm-objdump] Add --no-print-imm-hex to tests depending on it. 2022-10-29 15:40:26 -07:00
tls-relocs.s [AArch64] Replace fixup_aarch64_tlsdesc_call with FirstLiteralRelocationKind + R_AARCH64_{,P32_}TLSDESC_CALL 2021-05-05 17:41:56 -07:00
tme-error.s
tme.s
trace-regs-diagnostics.s
trace-regs.s
trbe-sysreg-diag.s
trbe-sysreg.s
udf.s
udf_not.s