summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2019-07-07 18:57:31 +0000
committerMartin Storsjo <martin@martin.st>2019-07-07 18:57:31 +0000
commit8d9d290d4c0752626374dc681a3417113e08c862 (patch)
tree97c8ed3653ffafd42e80afd5000388af2838e317 /llvm/test/CodeGen
parent842f55f3efe4bdc108a566ab41bfe7ce9d6be329 (diff)
downloadbcm5719-llvm-8d9d290d4c0752626374dc681a3417113e08c862.tar.gz
bcm5719-llvm-8d9d290d4c0752626374dc681a3417113e08c862.zip
[ARM] Add support for MSVC stack cookie checking
Heavily based on the same for AArch64, from SVN r346469. Differential Revision: https://reviews.llvm.org/D64292 llvm-svn: 365283
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/ARM/Windows/stack-protector-msvc.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/Windows/stack-protector-msvc.ll b/llvm/test/CodeGen/ARM/Windows/stack-protector-msvc.ll
new file mode 100644
index 00000000000..3a38aa01b2a
--- /dev/null
+++ b/llvm/test/CodeGen/ARM/Windows/stack-protector-msvc.ll
@@ -0,0 +1,20 @@
+; RUN: llc -mtriple=thumbv7-windows-msvc < %s -o - | FileCheck --check-prefix=MSVC %s
+; RUN: llc -mtriple=thumbv7-windows-msvc -O0 < %s -o - | FileCheck --check-prefix=MSVC %s
+
+define void @_Z1fv() sspreq {
+entry:
+ %x = alloca i32, align 4
+ %0 = bitcast i32* %x to i8*
+ call void @_Z7CapturePi(i32* nonnull %x)
+ ret void
+}
+
+declare void @_Z7CapturePi(i32*)
+
+; MSVC: movw r0, :lower16:__security_cookie
+; MSVC: movt r0, :upper16:__security_cookie
+; MSVC: ldr r0, [r0]
+; MSVC: str r0, [sp, #4]
+; MSVC: bl _Z7CapturePi
+; MSVC: ldr r0, [sp, #4]
+; MSVC: bl __security_check_cookie
OpenPOWER on IntegriCloud