diff options
author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-27 15:15:58 +0000 |
---|---|---|
committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-27 15:15:58 +0000 |
commit | abdf259d487163e72081a8cf4991b1617206b41e (patch) | |
tree | 9fad9a5d5dd8c4ff54af48edad9c8cc26dd5fda1 /test/FrontendC/2010-05-18-asmsched.c | |
parent | 59161dfae3225dd9151afbc76ca9074598c0c605 (diff) |
Update LLVM to r104832.vendor/llvm/llvm-r104832
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=208599
svn path=/vendor/llvm/llvm-r104832/; revision=208976; tag=vendor/llvm/llvm-r104832
Diffstat (limited to 'test/FrontendC/2010-05-18-asmsched.c')
-rw-r--r-- | test/FrontendC/2010-05-18-asmsched.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/FrontendC/2010-05-18-asmsched.c b/test/FrontendC/2010-05-18-asmsched.c new file mode 100644 index 000000000000..34abbe3e5c5c --- /dev/null +++ b/test/FrontendC/2010-05-18-asmsched.c @@ -0,0 +1,17 @@ +// RUN: %llvmgcc %s -c -O3 -m64 -emit-llvm -o - | llc -march=x86-64 -mtriple=x86_64-apple-darwin | FileCheck %s +// r9 used to be clobbered before its value was moved to r10. 7993104. + +void foo(int x, int y) { +// CHECK: bar +// CHECK: movq %r9, %r10 +// CHECK: movq %rdi, %r9 +// CHECK: bar + register int lr9 asm("r9") = x; + register int lr10 asm("r10") = y; + int foo; + asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10)); + foo = lr9; + lr9 = x; + lr10 = foo; + asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10)); +}
\ No newline at end of file |