1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/test/CodeGen/AArch64/win-alloca-no-stack-probe.ll
Martin Storsjo 1a347f2b7a [ARM, AArch64] Check the no-stack-arg-probe attribute for dynamic stack probes
This extends the use of this attribute on ARM and AArch64 from
SVN r325900 (where it was only checked for fixed stack
allocations on ARM/AArch64, but for all stack allocations on X86).

This also adds a testcase for the existing use of disabling the
fixed stack probe with the attribute on ARM and AArch64.

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

llvm-svn: 327897
2018-03-19 20:06:50 +00:00

18 lines
489 B
LLVM

; RUN: llc -mtriple aarch64-windows -verify-machineinstrs -filetype asm -o - %s | FileCheck %s
define void @func(i64 %a) "no-stack-arg-probe" {
entry:
%0 = alloca i8, i64 %a, align 16
call void @func2(i8* nonnull %0)
ret void
}
declare void @func2(i8*)
; CHECK: add [[REG1:x[0-9]+]], x0, #15
; CHECK-NOT: bl __chkstk
; CHECK: mov [[REG2:x[0-9]+]], sp
; CHECK: and [[REG1]], [[REG1]], #0xfffffffffffffff0
; CHECK: sub [[REG3:x[0-9]+]], [[REG2]], [[REG1]]
; CHECK: mov sp, [[REG3]]