1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/test/MC/X86
Oren Ben Simhon 78031089be Control-Flow Enforcement Technology - Shadow Stack support (LLVM side)
Shadow stack solution introduces a new stack for return addresses only.
The HW has a Shadow Stack Pointer (SSP) that points to the next return address.
If we return to a different address, an exception is triggered.
The shadow stack is managed using a series of intrinsics that are introduced in this patch as well as the new register (SSP).
The intrinsics are mapped to new instruction set that implements CET mechanism.

The patch also includes initial infrastructure support for IBT.

For more information, please see the following:
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf

Differential Revision: https://reviews.llvm.org/D40223

Change-Id: I4daa1f27e88176be79a4ac3b4cd26a459e88fed4
llvm-svn: 318996
2017-11-26 13:02:45 +00:00
..
AlignedBundling Revert r265817 2016-04-08 18:15:37 +00:00
Inputs Try to make crlf portable to other printf implementations 2017-10-17 00:27:31 +00:00
3DNow.s
2011-09-06-NoNewline.s
abs8.s MC: Introduce the ABS8 symbol modifier. 2017-01-31 18:28:44 +00:00
address-size.s
avx512-encodings.s [AVX-512] Add more gather/scatter encoding test cases. 2017-01-16 00:58:20 +00:00
avx512-err.s [X86][AsmParser][AVX512] Error appropriately when K0 is tried as a write-mask 2017-08-13 12:03:00 +00:00
avx512bitalg-encoding.s [x86][icelake]BITALG 2017-11-23 11:15:50 +00:00
avx512bw-encoding.s [x86][inline-asm][avx512] allow swapping of '{k<num>}' & '{z}' marks 2016-10-18 13:52:39 +00:00
avx512gfni-encoding.s [x86][icelake]GFNI 2017-11-26 09:36:41 +00:00
avx512ifma-encoding.s [X86] Change FeatureIFMA string to 'avx512ifma'. Matches gcc and fixes PR26461. 2016-02-08 01:23:15 +00:00
avx512ifmavl-encoding.s [X86] Change FeatureIFMA string to 'avx512ifma'. Matches gcc and fixes PR26461. 2016-02-08 01:23:15 +00:00
avx512vaes-encoding.s [x86][icelake]VAES introduction 2017-11-21 09:11:41 +00:00
avx512vbmi2-encoding.s [x86][icelake]vbmi2 2017-11-21 09:48:44 +00:00
avx512vbmi2vl-encoding.s [x86][icelake]vbmi2 2017-11-21 09:48:44 +00:00
avx512vbmi-encoding.s [X86][AVX512VBMI] add encoding and intrinsics for Multishift 2016-02-01 15:48:21 +00:00
avx512vl_bitalg-encoding.s [x86][icelake]BITALG 2017-11-23 11:15:50 +00:00
avx512vl_gfni-encoding.s [x86][icelake]GFNI 2017-11-26 09:36:41 +00:00
avx512vl_vaes-encoding.s [x86][icelake]VAES introduction 2017-11-21 09:11:41 +00:00
avx512vl_vnni-encoding.s [x86][icelake]VNNI 2017-11-21 10:04:28 +00:00
avx512vl-encoding.s [AVX-512] Add more gather/scatter encoding test cases. 2017-01-16 00:58:20 +00:00
avx512vlvpclmul.s [x86][icelake]vpclmulqdq introduction 2017-11-21 09:30:33 +00:00
avx512vnni-encoding.s [x86][icelake]VNNI 2017-11-21 10:04:28 +00:00
avx512vpclmul.s [x86][icelake]vpclmulqdq introduction 2017-11-21 09:30:33 +00:00
avx_vaes-encoding.s [x86][icelake]VAES introduction 2017-11-21 09:11:41 +00:00
cet-encoding.s Control-Flow Enforcement Technology - Shadow Stack support (LLVM side) 2017-11-26 13:02:45 +00:00
cfi_def_cfa-crash.s
cfi-scope-errors.s [MC] Properly diagnose badly scoped .cfi_ directives 2017-10-10 01:49:21 +00:00
code16gcc.s Add support for Code16GCC 2016-09-26 19:33:36 +00:00
compact-unwind.s
crlf.test Try to make crlf portable to other printf implementations 2017-10-17 00:27:31 +00:00
data-prefix16.s [X86] Fix for bugzilla 31576 - add support for "data32" instruction prefix 2017-01-18 08:07:51 +00:00
data-prefix32.s [X86] Fix for bugzilla 31576 - add support for "data32" instruction prefix 2017-01-18 08:07:51 +00:00
data-prefix64.s [X86] Fix for bugzilla 31576 - add support for "data32" instruction prefix 2017-01-18 08:07:51 +00:00
data-prefix-fail.s [X86] Fix for bugzilla 31576 - add support for "data32" instruction prefix 2017-01-18 08:07:51 +00:00
encoder-fail.s
error-reloc.s
expand-var.s
faultmap-section-parsing.s
fde-reloc.s
fixup-cpu-mode.s Revert r265817 2016-04-08 18:15:37 +00:00
fp-setup-macho.s X86: loosen an overly aggressive MachO assertion 2016-09-20 17:05:04 +00:00
gather.s [X86] Teach the assembly parser to warn on duplicate registers in gather instructions. 2017-10-26 21:03:54 +00:00
gfni-encoding.s [x86][icelake]GFNI 2017-11-26 09:36:41 +00:00
gnux32-dwarf-gen.s llvm-dwarfdump: Replace -debug-dump=sect option with individual options. 2017-09-11 22:59:45 +00:00
hex-immediates.s Revert r265817 2016-04-08 18:15:37 +00:00
i386-darwin-frame-register.ll [dwarfdump] Make .eh_frame an alias for .debug_frame 2017-09-18 14:15:57 +00:00
imm-comments.s [x86] avoid printing unnecessary sign bits of hex immediates in asm comments (PR20347) 2016-05-28 14:58:37 +00:00
index-operations.s
inline-asm-obj.ll
intel-syntax-2.s
intel-syntax-ambiguous.s
intel-syntax-avx512-error.s [X86][AsmParser][AVX512] Error appropriately when K0 is tried as a write-mask 2017-08-13 12:03:00 +00:00
intel-syntax-avx512.s [AVX-512] Correct memory operand size for VPGATHERQPS and VPGATHERQD 2017-01-16 00:55:58 +00:00
intel-syntax-bitwise-ops.s [X86][AsmParser] Treat '%' as the modulo operator under Intel syntax 2017-10-31 16:47:38 +00:00
intel-syntax-directional-label.s
intel-syntax-encoding.s This patch is a result of D37262: The issues with X86 prefixes. It closes PR7709, PR17697, PR19251, PR32809 and PR21640. There could be other bugs closed by this patch. 2017-10-16 11:14:29 +00:00
intel-syntax-error.s [X86AsmParser] Refactoring, (almost) NFC. 2017-08-24 08:46:25 +00:00
intel-syntax-hex.s
intel-syntax-invalid-basereg.s
intel-syntax-invalid-scale.s X86 Asm uses assertions instead of proper diagnostic. This patch fixes that. 2017-07-25 13:05:12 +00:00
intel-syntax-print.ll
intel-syntax-ptr-sized.s
intel-syntax-unsized-memory.s
intel-syntax-var-offset.ll [X86] [ASM INTEL SYNTAX] fix for incorrect assembler code generation when x86-asm-syntax=intel (PR34617). 2017-09-25 19:26:48 +00:00
intel-syntax-x86-64-avx512f_vl.s Some instructions were missing, other implemented falsely. this patch aims at amending those issues. full list: 2016-11-20 17:09:56 +00:00
intel-syntax-x86-64-avx.s [X86][AVX2] Passing the appropriate memory operand class to VPMADDWD instruction. 2016-12-22 08:42:46 +00:00
intel-syntax-x86-avx512dq_vl.s Some instructions were missing, other implemented falsely. this patch aims at amending those issues. full list: 2016-11-20 17:09:56 +00:00
intel-syntax-x86-avx512vbmi_vl.s The 'vpmultishiftqb' instruction was implemented falsely, this patch amend it. 2016-11-20 17:19:55 +00:00
intel-syntax.s [X86] Change register&memory TEST instructions from MRMSrcMem to MRMDstMem 2017-10-01 23:53:53 +00:00
invalid_opcode.s [llvm-objdump] Print <unknown> in place of instruction text if it couldn't be disassembled. 2016-03-18 16:26:48 +00:00
invalid-sleb.s
large-bss.s
line-table-sections.s Check that line table entries don't spill over between sections even if they're empty at the end of a section 2017-03-16 00:52:18 +00:00
lit.local.cfg
lwp-x86_64.s [X86][LWP] Add llvm support for LWP instructions (reapplied). 2017-05-03 15:51:39 +00:00
lwp.s [X86][LWP] Add llvm support for LWP instructions (reapplied). 2017-05-03 15:51:39 +00:00
macho-reloc-errors-x86_64.s Add a common error checking for some invalid expressions. 2017-06-22 17:25:35 +00:00
macho-reloc-errors-x86.s
macho-uleb.s
mpx-encodings.s [X86] Decode MPX BND registers. 2016-07-14 14:53:21 +00:00
no-elf-compact-unwind.s
padlock.s
pr22004.s The fix for PR22004: X86AsmParser.cpp asserts: OperandStack.size() > 1 && "Too few operands." 2017-05-26 13:23:34 +00:00
pr22028.s [llvm] Remove redundant check-prefix=CHECK from tests. NFC. 2017-07-17 17:32:45 +00:00
pr27884.s 2 tests that were lost in rL301390 2017-04-27 10:20:35 +00:00
pr28547.s [X86][MC] Fix bracket expression parsing in intel-style assembly. 2016-07-14 17:37:05 +00:00
relax-insn.s
reloc-bss.s [MC] Don't crash when trying to emit a relocation against .bss. 2016-07-26 18:16:33 +00:00
reloc-directive.s [MC] Add support for encoding CodeView variable definition ranges 2016-02-05 01:55:49 +00:00
reloc-macho.s
reloc-undef-global.s
ret.s [x86] Accept 'retn' as an alias to 'ret[lqw]'\'ret' (At&t\Intel) 2016-09-28 15:52:56 +00:00
sgx-encoding.s
shuffle-comments.s
signed-coff-pcrel.s Fix PR33625. 2017-06-28 17:56:07 +00:00
stackmap-nops.ll
validate-inst-att.s
validate-inst-intel.s
variant-diagnostics.s
vpclmulqdq.s [x86][icelake]vpclmulqdq introduction 2017-11-21 09:30:33 +00:00
x86_64-avx-clmul-encoding.s
x86_64-avx-encoding.s [X86][AVX2] Passing the appropriate memory operand class to VPMADDWD instruction. 2016-12-22 08:42:46 +00:00
x86_64-bmi-encoding.s
x86_64-encoding.s [X86] [MC] fixed non optimal encoding of instruction memory operand (PR24038). 2017-09-22 23:37:48 +00:00
x86_64-fma3-encoding.s
x86_64-fma4-encoding.s
x86_64-hle-encoding.s
x86_64-imm-widths.s
x86_64-rand-encoding.s
x86_64-rtm-encoding.s
x86_64-signed-reloc.s
x86_64-sse4a.s
x86_64-tbm-encoding.s
x86_64-xop-encoding.s
x86_directives.s
x86_errors.s [X86] Don't randomly encode %rip where illegal 2016-10-05 15:23:35 +00:00
x86_long_nop.s [X86] Limit NOPs to 7 bytes when 'slm' is spelled 'silvermont'. 2017-11-13 08:17:30 +00:00
x86_nop.s Revert r253557 "Alternative to long nops for X86 CPUs, by Andrey Turetsky" 2016-02-19 21:26:31 +00:00
x86_operands.s
x86-16.s Avoid unecessary opsize byte in segment move to memory 2017-11-21 19:28:13 +00:00
x86-32-avx.s [X86] Cleanup 'x' and 'y' mnemonic suffixes for vcvtpd2dq/vcvttpd2dq/vcvtpd2ps and similar instructions. 2016-11-14 01:53:29 +00:00
x86-32-coverage.s [X86] Add nopq instruction which is a rex encoded version of nopl for gas compatibility. 2017-07-22 01:30:53 +00:00
x86-32-fma3.s
x86-32-ms-inline-asm.s
x86-32.s Avoid unecessary opsize byte in segment move to memory 2017-11-21 19:28:13 +00:00
x86-64-avx512bw_vl.s [AVX512] VPACKUSWB/VPACKSSWB should not be encoded with EVEX.W=1. While there fix the execution domain for VPACKSSDW/VPACKUSDW. 2016-05-01 17:38:32 +00:00
x86-64-avx512bw.s [AVX512] VPACKUSWB/VPACKSSWB should not be encoded with EVEX.W=1. While there fix the execution domain for VPACKSSDW/VPACKUSDW. 2016-05-01 17:38:32 +00:00
x86-64-avx512cd_vl.s
x86-64-avx512cd.s
x86-64-avx512dq_vl.s
x86-64-avx512dq.s
x86-64-avx512f_vl.s
x86-64-avx512vpopcntdq.s [X86] Adding vpopcntd and vpopcntq instructions 2017-05-25 13:45:23 +00:00
x86-64.s Avoid unecessary opsize byte in segment move to memory 2017-11-21 19:28:13 +00:00
x86-branch-relaxation.s Fix branch relaxation in 16-bit mode. 2016-07-11 14:23:53 +00:00
x86-evenDirective.s
x86-GCC-inline-asm-Y-constraints.ll [LLVM][x86][Inline Asm] support for GCC style inline asm - Y<x> constraints 2017-08-24 09:08:33 +00:00
x86-itanium.ll
x86-target-directives.s
x86-windows-itanium-libcalls.ll
X86_64-pku.s