From 3c0f521cbfb551bf69cc14c606dcdd20c0529589 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 19 Apr 2012 11:47:08 -0400 Subject: [PATCH] r600g/llvm: Only emit an instruction's explicit operands --- src/gallium/drivers/radeon/R600CodeEmitter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeon/R600CodeEmitter.cpp b/src/gallium/drivers/radeon/R600CodeEmitter.cpp index 4d9ca4f..2367713 100644 --- a/src/gallium/drivers/radeon/R600CodeEmitter.cpp +++ b/src/gallium/drivers/radeon/R600CodeEmitter.cpp @@ -285,7 +285,7 @@ bool R600CodeEmitter::runOnMachineFunction(MachineFunction &MF) { void R600CodeEmitter::emitALUInstr(MachineInstr &MI) { - unsigned numOperands = MI.getNumOperands(); + unsigned numOperands = MI.getNumExplicitOperands(); /* Some instructions are just place holder instructions that represent * operations that the GPU does automatically. They should be ignored. */ @@ -351,7 +351,7 @@ void R600CodeEmitter::emitSrc(const MachineOperand & MO) emitTwoBytes(getHWReg(reg)); if (reg == AMDIL::ALU_LITERAL_X) { const MachineInstr * parent = MO.getParent(); - unsigned immOpIndex = parent->getNumOperands() - 1; + unsigned immOpIndex = parent->getNumExplicitOperands() - 1; MachineOperand immOp = parent->getOperand(immOpIndex); if (immOp.isFPImm()) { value = immOp.getFPImm()->getValueAPF().bitcastToAPInt().getZExtValue(); -- 2.7.4