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
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
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
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
arm64-elf-relocs.s
arm64-fp-encoding-error.s
arm64-fp-encoding.s
arm64-ilp32.s
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
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
arm64e.s
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
armv8.1a-pan.s
armv8.1a-rdma.s
armv8.1a-vhe.s
armv8.2a-at.s
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
armv8.2a-dotprod.s [AArch64] Support for Ampere1 core 2022-05-03 15:54:02 +01:00
armv8.2a-persistent-memory.s
armv8.2a-statistical-profiling.s
armv8.2a-uao.s
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
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
armv8.4a-flagm.s
armv8.4a-ldst-error.s
armv8.4a-ldst.s
armv8.4a-mpam.s
armv8.4a-ras.s
armv8.4a-tlb.s
armv8.4a-trace-error.s
armv8.4a-trace.s
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
armv8.5a-persistent-memory.s
armv8.5a-predres-error.s
armv8.5a-predres.s
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
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
armv8.7a-ls64.s
armv8.7a-wfxt.s
armv8.7a-xs.s
armv8.8a-hbc.s
armv8.8a-mops.s
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
armv8r-sysreg.s [AArch64] Remove PRBAR0_ELn and PRLAR0_ELn sysregs. 2022-01-20 13:37:58 +00:00
armv8r-unsupported-inst.s
armv8r-unsupported-sysreg.s
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
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
case-insen-reg-names.s
cfi.s
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
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
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
elf-reloc-ldstunsimm.s
elf-reloc-movw.s
elf-reloc-pcreladdressing.s
elf-reloc-plt32.s
elf-reloc-tstb.s
elf-reloc-uncondbrimm.s
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
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
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
macho-addend-range.s
macho-adrp-missing-reloc.s
macho-adrp-page.s
macro-hex-int.s
mapping-across-sections.s
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
reloc-directive-err.s
reloc-directive.s
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
single-slash.s
size-directive.s
spe.s
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
tme-error.s
tme.s
trace-regs-diagnostics.s
trace-regs.s
trbe-sysreg-diag.s
trbe-sysreg.s
udf.s
udf_not.s