diff options
author | dim <dim@FreeBSD.org> | 2015-12-30 11:49:41 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-12-30 11:49:41 +0000 |
commit | 3176e97f130184ece0e1a21352c8124cc83ff24a (patch) | |
tree | 0a5b74c0b9ca73aded34df95c91fcaf3815230d8 /test/CodeGen/named_reg_global.c | |
parent | 1e9b8d38881c3213d1e67b0c47ab9b2c00721a5c (diff) | |
download | FreeBSD-src-3176e97f130184ece0e1a21352c8124cc83ff24a.zip FreeBSD-src-3176e97f130184ece0e1a21352c8124cc83ff24a.tar.gz |
Vendor import of clang trunk r256633:
https://llvm.org/svn/llvm-project/cfe/trunk@256633
Diffstat (limited to 'test/CodeGen/named_reg_global.c')
-rw-r--r-- | test/CodeGen/named_reg_global.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/test/CodeGen/named_reg_global.c b/test/CodeGen/named_reg_global.c index 8f9a9c6..1da6257 100644 --- a/test/CodeGen/named_reg_global.c +++ b/test/CodeGen/named_reg_global.c @@ -1,16 +1,26 @@ -// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm %s -o - | FileCheck %s -// RUN: %clang_cc1 -triple arm64-linux-gnu -S -emit-llvm %s -o - | FileCheck %s -// RUN: %clang_cc1 -triple armv7-linux-gnu -S -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-X86-64 +// RUN: %clang_cc1 -triple arm64-linux-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM +// RUN: %clang_cc1 -triple armv7-linux-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM // CHECK-NOT: @sp = common global + +#if defined(__x86_64__) +register unsigned long current_stack_pointer asm("rsp"); +#else register unsigned long current_stack_pointer asm("sp"); +#endif + struct p4_Thread { struct { int len; } word; }; // Testing pointer types as well +#if defined(__x86_64__) +register struct p4_Thread *p4TH asm("rsp"); +#else register struct p4_Thread *p4TH asm("sp"); +#endif // CHECK: define{{.*}} i[[bits:[0-9]+]] @get_stack_pointer_addr() // CHECK: [[ret:%[0-9]+]] = call i[[bits]] @llvm.read_register.i[[bits]](metadata !0) @@ -43,5 +53,7 @@ void fn2(struct p4_Thread *val) { // CHECK: %[[regw:[0-9]+]] = ptrtoint %struct.p4_Thread* %{{.*}} to i[[bits]] // CHECK: call void @llvm.write_register.i[[bits]](metadata !0, i[[bits]] %[[regw]]) -// CHECK: !llvm.named.register.sp = !{!0} -// CHECK: !0 = !{!"sp"} +// CHECK-X86-64: !llvm.named.register.rsp = !{!0} +// CHECK-X86-64: !0 = !{!"rsp"} +// CHECK-ARM: !llvm.named.register.sp = !{!0} +// CHECK-ARM: !0 = !{!"sp"} |