]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - opencl/llvm.git/commitdiff
R600/SI: Enable inline assembly
authorTom Stellard <thomas.stellard@amd.com>
Wed, 3 Dec 2014 04:08:00 +0000 (04:08 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 3 Dec 2014 04:08:00 +0000 (04:08 +0000)
We just needed to remove the assertion in
AMDGPURegisterInfo::getFrameRegister(), which is called when
initializing the parser for inline assembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223197 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/AMDGPURegisterInfo.cpp
test/CodeGen/R600/inline-asm.ll [new file with mode: 0644]

index 34332808f865c099ef8945e6c1b5698776383a22..57b054bc2a610e421dad287e6bc715cc9a0a5911 100644 (file)
@@ -42,8 +42,7 @@ void AMDGPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
 }
 
 unsigned AMDGPURegisterInfo::getFrameRegister(const MachineFunction &MF) const {
-  assert(!"Subroutines not supported yet");
-  return 0;
+  return AMDGPU::NoRegister;
 }
 
 unsigned AMDGPURegisterInfo::getSubRegFromChannel(unsigned Channel) const {
diff --git a/test/CodeGen/R600/inline-asm.ll b/test/CodeGen/R600/inline-asm.ll
new file mode 100644 (file)
index 0000000..6f1f977
--- /dev/null
@@ -0,0 +1,11 @@
+; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck %s
+
+; CHECK: {{^}}inline_asm:
+; CHECK: s_endpgm
+; CHECK: s_endpgm
+define void @inline_asm(i32 addrspace(1)* %out) {
+entry:
+  store i32 5, i32 addrspace(1)* %out
+  call void asm sideeffect "s_endpgm", ""()
+  ret void
+}