summaryrefslogtreecommitdiff
path: root/lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp
diff options
context:
space:
mode:
authorVincent Lejeune <vljn@ovi.com>2013-04-01 21:47:42 +0000
committerVincent Lejeune <vljn@ovi.com>2013-04-01 21:47:42 +0000
commit8e59191eb8033133f5b2923d2056d4362af913ce (patch)
treeb760dfa6e2741b3920a824c8e599c4b2079f8bf4 /lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp
parent19801a6481292c6d27ced557730f8a2f58f6f6a0 (diff)
downloadllvm-8e59191eb8033133f5b2923d2056d4362af913ce.tar.gz
llvm-8e59191eb8033133f5b2923d2056d4362af913ce.tar.bz2
llvm-8e59191eb8033133f5b2923d2056d4362af913ce.tar.xz
R600: Emit CF_ALU and use true kcache register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178503 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp')
-rw-r--r--lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp b/lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp
index a945fe9ef8..1bf87fc096 100644
--- a/lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp
+++ b/lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp
@@ -101,7 +101,8 @@ enum InstrTypes {
INSTR_FC,
INSTR_NATIVE,
INSTR_VTX,
- INSTR_EXPORT
+ INSTR_EXPORT,
+ INSTR_CFALU
};
enum FCInstr {
@@ -251,6 +252,13 @@ void R600MCCodeEmitter::EncodeInstruction(const MCInst &MI, raw_ostream &OS,
Emit(Inst, OS);
break;
}
+ case AMDGPU::CF_ALU:
+ case AMDGPU::CF_ALU_PUSH_BEFORE: {
+ uint64_t Inst = getBinaryCodeForInstr(MI, Fixups);
+ EmitByte(INSTR_CFALU, OS);
+ Emit(Inst, OS);
+ break;
+ }
default:
EmitALUInstr(MI, Fixups, OS);