diff options
| author | Richard Osborne <richard@xmos.com> | 2014-03-06 16:37:48 +0000 |
|---|---|---|
| committer | Richard Osborne <richard@xmos.com> | 2014-03-06 16:37:48 +0000 |
| commit | 47155af5eba79a0b23f46fb8da20fd34fd678723 (patch) | |
| tree | a377d1a89b3d3c0dd2029e5d27c1debe42c9e79e /llvm/test/CodeGen/XCore | |
| parent | 28bfb48fd09218420242f72fc9998adebefb70e2 (diff) | |
| download | bcm5719-llvm-47155af5eba79a0b23f46fb8da20fd34fd678723.tar.gz bcm5719-llvm-47155af5eba79a0b23f46fb8da20fd34fd678723.zip | |
[XCore] Add support for the "m" inline asm constraint.
Summary:
This provides support for CP and DP relative global accesses in inline
asm.
Reviewers: robertlytton
Reviewed By: robertlytton
Differential Revision: http://llvm-reviews.chandlerc.com/D2943
llvm-svn: 203129
Diffstat (limited to 'llvm/test/CodeGen/XCore')
| -rw-r--r-- | llvm/test/CodeGen/XCore/inline-asm.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/XCore/inline-asm.ll b/llvm/test/CodeGen/XCore/inline-asm.ll index af3edd1544a..e9f5b576999 100644 --- a/llvm/test/CodeGen/XCore/inline-asm.ll +++ b/llvm/test/CodeGen/XCore/inline-asm.ll @@ -30,3 +30,24 @@ entry: tail call void asm sideeffect "foo ${0:n}", "i"(i32 99) nounwind ret void } + +@x = external global i32 +@y = external global i32, section ".cp.rodata" + +; CHECK-LABEL: f5: +; CHECK: ldw r0, dp[x] +; CHECK: retsp 0 +define i32 @f5() nounwind { +entry: + %asmtmp = call i32 asm "ldw $0, $1", "=r,*m"(i32* @x) nounwind + ret i32 %asmtmp +} + +; CHECK-LABEL: f6: +; CHECK: ldw r0, cp[y] +; CHECK: retsp 0 +define i32 @f6() nounwind { +entry: + %asmtmp = call i32 asm "ldw $0, $1", "=r,*m"(i32* @y) nounwind + ret i32 %asmtmp +} |

