aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/TargetMachine/Sparc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/TargetMachine/Sparc')
-rw-r--r--lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp b/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
index ca2bca6584..ddee541ce6 100644
--- a/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
+++ b/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
@@ -540,12 +540,11 @@ ChooseFcmpInstruction(const InstructionNode* instrNode)
MachineOpCode opCode = INVALID_OPCODE;
Value* operand = ((InstrTreeNode*) instrNode->leftChild())->getValue();
- switch(operand->getType()->getPrimitiveID())
- {
- case Type::FloatTyID: opCode = FCMPS; break;
- case Type::DoubleTyID: opCode = FCMPD; break;
- default: assert(0 && "Invalid type for FCMP instruction"); break;
- }
+ switch(operand->getType()->getPrimitiveID()) {
+ case Type::FloatTyID: opCode = FCMPS; break;
+ case Type::DoubleTyID: opCode = FCMPD; break;
+ default: assert(0 && "Invalid type for FCMP instruction"); break;
+ }
return opCode;
}
@@ -1700,7 +1699,8 @@ GetInstructionsByRule(InstructionNode* subtreeRoot,
int valueToMove;
MachineOpCode movOpCode;
- if (subtreeRoot->leftChild()->getValue()->getType()->isIntegral())
+ if (subtreeRoot->leftChild()->getValue()->getType()->isIntegral() ||
+ subtreeRoot->leftChild()->getValue()->getType()->isPointerType())
{
// integer condition: destination should be %g0 or integer register
// if result must be saved but condition is not SetEQ then we need