diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-18 03:35:24 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-18 03:35:24 +0000 |
commit | 307916c00812461d1f9b975c0421395b3867aac3 (patch) | |
tree | 1bfa2ea8b36034e249a7243889c74946a5cd9922 /llvm/lib/CodeGen | |
parent | e5842b527d2cfd83a2deec78b52bd16ce2b8d865 (diff) | |
download | bcm5719-llvm-307916c00812461d1f9b975c0421395b3867aac3.tar.gz bcm5719-llvm-307916c00812461d1f9b975c0421395b3867aac3.zip |
Bug fix in setting CC register.
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.
llvm-svn: 1904
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/MachineInstr.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp index bb22008f952..1d6bfb8033f 100644 --- a/llvm/lib/CodeGen/MachineInstr.cpp +++ b/llvm/lib/CodeGen/MachineInstr.cpp @@ -41,7 +41,7 @@ MachineInstr::MachineInstr(MachineOpCode _opCode, } void -MachineInstr::SetMachineOperand(unsigned int i, +MachineInstr::SetMachineOperandVal(unsigned int i, MachineOperand::MachineOperandType operandType, Value* _val, bool isdef=false) { @@ -52,22 +52,25 @@ MachineInstr::SetMachineOperand(unsigned int i, } void -MachineInstr::SetMachineOperand(unsigned int i, +MachineInstr::SetMachineOperandConst(unsigned int i, MachineOperand::MachineOperandType operandType, - int64_t intValue, bool isdef=false) + int64_t intValue) { assert(i < operands.size()); + assert(TargetInstrDescriptors[opCode].resultPos != (int) i && + "immed. constant cannot be defined"); operands[i].InitializeConst(operandType, intValue); - operands[i].isDef = isdef || - TargetInstrDescriptors[opCode].resultPos == (int) i; + operands[i].isDef = false; } void -MachineInstr::SetMachineOperand(unsigned int i, - int regNum, bool isdef=false) +MachineInstr::SetMachineOperandReg(unsigned int i, + int regNum, + bool isdef=false, + bool isCCReg=false) { assert(i < operands.size()); - operands[i].InitializeReg(regNum); + operands[i].InitializeReg(regNum, isCCReg); operands[i].isDef = isdef || TargetInstrDescriptors[opCode].resultPos == (int) i; } |