HomePhabricator

[x86][CET] Introduce _get_ssp, _inc_ssp intrinsics

Description

[x86][CET] Introduce _get_ssp, _inc_ssp intrinsics

Summary:
The _get_ssp intrinsic can be used to retrieve the
shadow stack pointer, independent of the current arch -- in
contract with the rdsspd and the rdsspq intrinsics.
Also, this intrinsic returns zero on CPUs which don't
support CET. The rdssp[d|q] instruction is decoded as nop,
essentially just returning the input operand, which is zero.
Example result of compilation:

xorl    %eax, %eax
movl    %eax, %ecx
rdsspq  %rcx         # NOP when CET is not supported
movq    %rcx, %rax   # return zero

Reviewers: craig.topper

Subscribers: cfe-commits

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

Details

Committed
aivchenkMar 5 2018, 3:30 AM
Differential Revision
D43814: [x86][CET] Introduce _get_ssp, _inc_ssp intrinsics
Branches
Unknown
Tags
Unknown