llvm-project/llvm/test/MC/AArch64
Pablo Barrio da33762de8 [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below
Summary:
The Pointer Authentication Extension (PAC) was added in Armv8.3-A. Some
instructions are implemented in the HINT space to allow compiling code
common to CPUs regardless of whether they feature PAC or not, and still
benefit from PAC protection in the PAC-enabled CPUs.

The 8.3-specific mnemonics were currently enabled in any architecture, and
LLVM was emitting them in assembly files when PAC code generation was
enabled. This was ok for compilations where both LLVM codegen and the
integrated assembler were used. However, the LLVM codegen was not
compatible with other assemblers (e.g. GAS). Given the fact that the
approach from these assemblers (i.e. to disallow Armv8.3-A mnemonics if
compiling for Armv8.2-A or lower) is entirely reasonable, this patch makes
LLVM to emit HINT when building for Armv8.2-A and below, instead of
PACIASP, AUTIASP and friends. Then, LLVM assembly should be compatible
with other assemblers.

Reviewers: samparker, chill, LukeCheeseman

Subscribers: kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71658
2020-01-13 14:14:48 +00:00
..
SVE [AArch64][SVE] Allow explicit size specifier for predicate operand 2019-07-25 13:56:04 +00:00
SVE2 [AArch64][SVE2] Rename bitperm feature to sve2-bitperm 2019-07-26 15:57:50 +00:00
CheckDataSymbol.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
adr-diagnostics.s [MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" 2019-08-19 07:59:35 +00:00
adr.s [llvm-objdump] Print relocation addends in hexadecimal 2019-11-19 12:27:18 +00:00
adrp-annotation.s AArch64: print correct annotation for ADRP addresses. 2018-05-30 09:54:59 +00:00
adrp-relocation.s
adrp-relocation2.s MC: AArch64: Add support for pg_hi21_nc relocation specifier. 2019-07-10 16:36:46 +00:00
alias-addsubimm.s [AArch64][SVE] Asm: Support for ADD (immediate) instructions. 2018-05-29 10:39:49 +00:00
alias-logicalimm.s
arm32-elf-relocs.s [llvm-objdump] Print relocation addends in hexadecimal 2019-11-19 12:27:18 +00:00
arm64-adr.s
arm64-advsimd.s [AArch64][TableGen] Skip tied result operands for InstAlias 2017-11-20 14:36:40 +00:00
arm64-aliases.s
arm64-arithmetic-encoding.s
arm64-arm64-fixup.s
arm64-basic-a64-instructions.s
arm64-be-datalayout.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
arm64-bitfield-encoding.s
arm64-branch-encoding.s
arm64-compact-unwind-fallback.s [MC] Fallback on DWARF when generating compact unwind on AArch64 2018-05-31 16:33:26 +00:00
arm64-condbr-without-dots.s
arm64-crypto.s
arm64-diagno-predicate.s [AArch64] Armv8.2-A: add the crypto extensions 2018-07-26 07:13:59 +00:00
arm64-diags.s AArch64: diagnose unpredictable store-exclusive instructions 2018-04-10 11:04:29 +00:00
arm64-directive_loh.s [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
arm64-elf-reloc-condbr.s
arm64-elf-relocs.s [llvm-objdump] Print relocation addends in hexadecimal 2019-11-19 12:27:18 +00:00
arm64-fp-encoding-error.s
arm64-fp-encoding.s
arm64-ilp32.s [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
arm64-large-relocs.s MC: AArch64: Add support for prel_g* relocation specifiers. 2019-07-18 16:54:33 +00:00
arm64-leaf-compact-unwind.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
arm64-logical-encoding.s
arm64-mapping-across-sections.s
arm64-mapping-within-section.s
arm64-memory.s AArch64: diagnose unpredictable store-exclusive instructions 2018-04-10 11:04:29 +00:00
arm64-no-section.ll Recommit r329716 "Add missing nullptr check before getSection() to AArch64MachObjectWriter::recordRelocation" 2018-04-10 19:46:43 +00:00
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] CCSIDR2 system register 2017-12-20 08:56:41 +00:00
arm64-target-specific-sysreg.s
arm64-tls-modifiers-darwin.s
arm64-tls-relocs.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
arm64-v128_lo-diagnostics.s
arm64-variable-exprs.s
arm64-vector-lists.s
arm64-verbose-vector-case.s
arm64_32-compact-unwind.s AArch64: support arm64_32, an ILP32 slice for watchOS. 2019-09-12 10:22:23 +00:00
arm64v8.1-diagno-predicate.s
armv8.1a-atomic.s
armv8.1a-lor.s
armv8.1a-lse.s [AArch64] Support HiSilicon's TSV110 processor 2018-11-09 19:32:08 +00:00
armv8.1a-pan.s
armv8.1a-rdma.s
armv8.1a-vhe.s
armv8.2a-at.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.2a-bfc.s [AArch64InstPrinter] prefer bfi to bfc for < armv8.2-a 2019-10-03 20:10:02 +00:00
armv8.2a-crypto-apple.s AArch64: support the Apple NEON syntax for v8.2 crypto instructions. 2019-11-27 10:54:38 +00:00
armv8.2a-crypto-error.s [AArch64] Armv8.2-A: add the crypto extensions 2018-07-26 07:13:59 +00:00
armv8.2a-crypto.s [AArch64] Armv8.2-A: add the crypto extensions 2018-07-26 07:13:59 +00:00
armv8.2a-dotprod-errors.s
armv8.2a-dotprod.s [ARM][AArch64] Support for Cortex-A65 & A65AE, Neoverse E1 & N1 2019-07-25 10:59:45 +00:00
armv8.2a-persistent-memory.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.2a-statistical-profiling.s [ARM][AArch64] Support for Cortex-A65 & A65AE, Neoverse E1 & N1 2019-07-25 10:59:45 +00:00
armv8.2a-uao.s
armv8.3a-ID_ISAR6_EL1.s
armv8.3a-complex.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.3a-complex_bad.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.3a-complex_missing.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.3a-complex_nofp16.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.3a-complex_nofp16_bad.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.3a-diagnostics.s
armv8.3a-js.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.3a-rcpc.s [ARM][AArch64] Support for Cortex-A65 & A65AE, Neoverse E1 & N1 2019-07-25 10:59:45 +00:00
armv8.3a-signed-pointer.s [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below 2020-01-13 14:14:48 +00:00
armv8.4a-actmon.s [AArch64] Armv8.4-A: system registers 2018-07-03 12:09:20 +00:00
armv8.4a-dit.s [AArch64] Armv8.4-A: system registers 2018-07-03 12:09:20 +00:00
armv8.4a-flag-error.s Recommit: [AArch64] Armv8.4-A: Flag manipulation instructions 2018-07-06 12:32:33 +00:00
armv8.4a-flag.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.4a-ldst-error.s Follow up of r336913: forgot to add the new test files. 2018-07-12 14:59:02 +00:00
armv8.4a-ldst.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.4a-mpam.s [AArch64] Armv8.4-A: system registers 2018-07-03 12:09:20 +00:00
armv8.4a-pmu.s [AArch64] Adding support for PMMIR_EL1 register 2019-10-18 12:40:29 +00:00
armv8.4a-ras.s [AArch64] Armv8.4-A: system registers 2018-07-03 12:09:20 +00:00
armv8.4a-tlb.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.4a-trace-error.s [AArch64][ARM] Armv8.4-A: Trace synchronization barrier instruction 2018-07-06 08:03:12 +00:00
armv8.4a-trace.s [NFC][AArch64] Split out backend features 2018-12-06 15:39:17 +00:00
armv8.4a-virt.s [AArch64] Armv8.4-A: Virtualization system registers 2018-06-29 11:03:15 +00:00
armv8.4a-vncr.s [AArch64] Armv8.4-A: system registers 2018-07-03 12:09:20 +00:00
armv8.5a-altnzcv.s [AArch64][v8.5A] Add PSTATE manipulation instructions XAFlag and AXFlag 2018-09-27 09:11:27 +00:00
armv8.5a-bti-error.s [AArch64][v8.5A] Add Branch Target Identification instructions 2018-09-27 14:54:33 +00:00
armv8.5a-bti.s [AArch64][v8.5A] Add Branch Target Identification instructions 2018-09-27 14:54:33 +00:00
armv8.5a-frint-error.s [AArch64][v8.5A] Add FRINT[32,64][Z,X] instructions 2018-09-27 13:32:06 +00:00
armv8.5a-frint.s [AArch64][v8.5A] Add FRINT[32,64][Z,X] instructions 2018-09-27 13:32:06 +00:00
armv8.5a-mte-error.s [AArch64] Update v8.5a MTE LDG/STG instructions 2019-04-03 14:12:13 +00:00
armv8.5a-mte.s [AArch64] Update MTE system register encodings 2019-08-21 09:09:56 +00:00
armv8.5a-persistent-memory.s [AArch64][v8.5A] Add Armv8.5-A "DC CVADP" instruction 2018-09-27 13:53:35 +00:00
armv8.5a-predres-error.s [AArch64] Move feature predctrl to predres 2019-01-09 11:24:15 +00:00
armv8.5a-predres.s [AArch64] Move feature predctrl to predres 2019-01-09 11:24:15 +00:00
armv8.5a-rand-error.s [AArch64][v8.5A] Add Armv8.5-A random number instructions 2018-09-27 14:01:40 +00:00
armv8.5a-rand.s [AArch64][v8.5A] Add Armv8.5-A random number instructions 2018-09-27 14:01:40 +00:00
armv8.5a-sb.s [AArch64] Add command-line option for SB 2018-12-28 17:14:58 +00:00
armv8.5a-specrestrict.s [AArch64] Add command-line option for SSBS 2018-12-03 14:00:47 +00:00
armv8.5a-ssbs-error.s [AArch64] Add command-line option for SSBS 2018-12-03 14:00:47 +00:00
armv8.5a-ssbs.s [ARM][AArch64] Support for Cortex-A65 & A65AE, Neoverse E1 & N1 2019-07-25 10:59:45 +00:00
armv8.5a-xaflag-error.s [AArch64][v8.5A] Add PSTATE manipulation instructions XAFlag and AXFlag 2018-09-27 09:11:27 +00:00
armv8a-fpmul-error.s [ARM/AArch64] Support FP16 +fp16fml instructions 2018-08-17 11:29:49 +00:00
armv8a-fpmul.s [ARM/AArch64] Support FP16 +fp16fml instructions 2018-08-17 11:29:49 +00:00
atomic-acquire-comment.s AArch64: annotate atomics with dropped acquire semantics when printing. 2019-02-06 15:07:59 +00:00
basic-a64-diagnostics.s [AArch64,Assembler] Compiler support for ID_MMFR5_EL1 2019-10-16 15:59:06 +00:00
basic-a64-instructions.s [AArch64,Assembler] Compiler support for ID_MMFR5_EL1 2019-10-16 15:59:06 +00:00
basic-pic.s [llvm-objdump] - Print relocation record in a GNU format. 2019-05-07 13:14:18 +00:00
case-insen-reg-names.s
cfi.s
coff-align.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
coff-basic.ll
coff-debug.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
coff-function-type-info.ll [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
coff-gnu.s
coff-relocations.s [COFF, ARM64] Hook up a few remaining relocations 2018-05-02 18:24:37 +00:00
cold.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
crc.s [AArch64] Support HiSilicon's TSV110 processor 2018-11-09 19:32:08 +00:00
cyclone-movi-bug.s AArch64: work around how Cyclone handles "movi.2d vD, #0". 2017-12-18 10:36:00 +00:00
darwin-reloc-addsubimm.s
directive-arch-negative.s [AArch64] Tighten up directives tests 2018-06-26 09:49:31 +00:00
directive-arch.s [AArch64] Clean up LSE directive tests 2018-06-26 09:36:13 +00:00
directive-arch_extension-negative.s [AArch64][AsmParser] Fix .arch_extension directive parsing 2019-04-04 09:11:17 +00:00
directive-arch_extension.s [AArch64][AsmParser] Fix .arch_extension directive parsing 2019-04-04 09:11:17 +00:00
directive-cpu-err.s [AArch64] Armv8.2-A: add the crypto extensions 2018-07-26 07:13:59 +00:00
directive-cpu.s [AArch64][NFC] Removed tab characters from test files. 2018-07-26 07:59:39 +00:00
dot-req-case-insensitive.s
dot-req-diagnostics.s
dot-req.s [AArch64] Asm: Fix parsing of register aliases that have a name starting with 'z' 2017-12-20 09:45:45 +00:00
elf-extern.s [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
elf-globaladdress.ll
elf-objdump.s
elf-reloc-addsubimm.s
elf-reloc-ldrlit.s
elf-reloc-ldstunsimm.s
elf-reloc-movw.s [AArch64] Attempt to parse more operands as expressions 2018-09-18 09:44:53 +00:00
elf-reloc-pcreladdressing.s [AArch64] Add support for got relocated LDR's 2018-08-02 06:24:40 +00:00
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 [MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" 2019-08-19 07:59:35 +00:00
ete-sysregs.s [AArch64] Define ETE and TRBE system registers 2019-07-26 09:19:08 +00:00
expr-bad-symbol.s [AsmParser] Return an error in the case of empty symbol ref in an expression 2018-10-08 10:28:11 +00:00
expr-shr.s
fixup-absolute-signed.s [MC] [AArch64] Support resolving signed fixups for :abs_g0_s: etc. 2019-01-08 04:48:00 +00:00
fixup-absolute.s [MC] [AArch64] Correctly resolve ":abs_g1:3" etc. 2018-12-20 19:46:14 +00:00
fixup-out-of-range.s [MC] [AArch64] Support resolving signed fixups for :abs_g0_s: etc. 2019-01-08 04:48:00 +00:00
fullfp16-diagnostics.s
fullfp16-neon-neg.s
gicv3-regs-diagnostics.s
gicv3-regs.s [AArch64] Fix spelling of ICH_ELRSR_EL2 system register 2018-02-06 09:39:04 +00:00
ilp32-diagnostics.s
inline-asm-modifiers.s [AArch64] Add support for got relocated LDR's 2018-08-02 06:24:40 +00:00
inst-directive-diagnostic.s
inst-directive-other.s [AArch64] Support the .inst directive for MachO and COFF targets 2018-07-31 09:26:52 +00:00
inst-directive.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
invalid-instructions-spellcheck.s
ir-to-imgrel.ll [MS][ARM64] Hoist __ImageBase handling into TargetLoweringObjectFileCOFF 2018-06-12 18:56:05 +00:00
jump-table.s [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
label-arithmetic-darwin.s
label-arithmetic-diags-darwin.s
label-arithmetic-diags-elf.s
label-arithmetic-elf.s [AArch64] Attempt to parse more operands as expressions 2018-09-18 09:44:53 +00:00
ldr-pseudo-diagnostics.s
ldr-pseudo-obj-errors.s Replace unused output filenames with /dev/null in tests 2018-07-02 18:16:44 +00:00
ldr-pseudo.s
lit.local.cfg
macho-adrp-missing-reloc.s
macho-adrp-page.s
macro-hex-int.s [MC] Separate masm integer literal lexer support from inline asm 2018-10-24 20:23:57 +00:00
mapping-across-sections.s
mapping-within-section.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 [AArch64][NFC] Removed tab characters from test files. 2018-07-26 07:59:39 +00:00
neon-diagnostics.s [AArch64][AsmParser] Fix segfault on illegal fpimm. 2018-05-30 09:54:19 +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 [AArch64] Armv8.2-A: add the crypto extensions 2018-07-26 07:13:59 +00:00
noneon-diagnostics.s
optional-hash.s
ras-extension.s [AArch64] Support HiSilicon's TSV110 processor 2018-11-09 19:32:08 +00:00
reloc-directive.s [AArch64] Support .reloc *, R_AARCH64_NONE, * 2019-05-17 03:05:07 +00:00
seh.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
shift_extend_op_w_symbol.s
single-slash.s
size-directive.s Add ".dword" directive 2019-05-09 21:57:44 +00:00
speculation-barriers.s [AArch64][v8.5A] Add speculation barriers SSBB and PSSBB 2018-09-27 16:09:05 +00:00
tls-add-shift.s
tls-relocs.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
tme-error.s [AArch64] Add support for Transactional Memory Extension (TME) 2019-07-31 12:52:17 +00:00
tme.s [AArch64] Add support for Transactional Memory Extension (TME) 2019-07-31 12:52:17 +00:00
trace-regs-diagnostics.s
trace-regs.s
trbe-sysreg-diag.s [AArch64] Define ETE and TRBE system registers 2019-07-26 09:19:08 +00:00
trbe-sysreg.s [AArch64] Define ETE and TRBE system registers 2019-07-26 09:19:08 +00:00
udf.s [FIX][AArch64] Add support for UDF instruction 2018-10-30 11:39:33 +00:00
udf_not.s [AArch64] Add support for UDF instruction 2018-10-30 11:06:50 +00:00