diff options
author | Tom Stellard <[email protected]> | 2012-05-31 20:35:18 -0400 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2012-06-01 11:28:11 -0400 |
commit | d6c2d3722d795381d3cdf11fe00f63780ad0725a (patch) | |
tree | 05b75b2f5a1ac26b476d1851cc62b27fbcc5640a /src/gallium/drivers/radeon/R600InstrInfo.cpp | |
parent | 65917004d99ccb79f709e621f8f6cf66715ffdca (diff) |
radeon/llvm: Eliminate CFGStructurizer dependency on AMDIL instructions
Add some hooks to the R600,SI InstrInfo and RegisterInfo classes, so
that the CFGStructurizer pass can run without any relying on AMDIL
instructions.
Diffstat (limited to 'src/gallium/drivers/radeon/R600InstrInfo.cpp')
-rw-r--r-- | src/gallium/drivers/radeon/R600InstrInfo.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/R600InstrInfo.cpp b/src/gallium/drivers/radeon/R600InstrInfo.cpp index 99153574675..05c291f1b89 100644 --- a/src/gallium/drivers/radeon/R600InstrInfo.cpp +++ b/src/gallium/drivers/radeon/R600InstrInfo.cpp @@ -100,3 +100,19 @@ unsigned R600InstrInfo::getLSHRop() const return AMDIL::LSHR_eg; } } + +MachineInstr * R600InstrInfo::getMovImmInstr(MachineFunction *MF, + unsigned DstReg, int64_t Imm) const +{ + MachineInstr * MI = MF->CreateMachineInstr(get(AMDIL::MOV), DebugLoc()); + MachineInstrBuilder(MI).addReg(DstReg, RegState::Define); + MachineInstrBuilder(MI).addReg(AMDIL::ALU_LITERAL_X); + MachineInstrBuilder(MI).addImm(Imm); + + return MI; +} + +unsigned R600InstrInfo::getIEQOpcode() const +{ + return AMDIL::SETE_INT; +} |