diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2004-07-23 01:11:19 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2004-07-23 01:11:19 +0000 |
commit | 4c14f3384486deea8d8d5c4ce7a1b452a5a1a9a0 (patch) | |
tree | ee799771d8a3c5bd8a1a7f9edb537c31ad169656 | |
parent | c8e876470572817295362737d8fbcf460e4cbfa8 (diff) |
* Change class of BoolTy back to cInt
* Fix indentation back to 2 spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15121 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PowerPC/PPC32ISelSimple.cpp | 38 | ||||
-rw-r--r-- | lib/Target/PowerPC/PowerPCISelSimple.cpp | 38 |
2 files changed, 38 insertions, 38 deletions
diff --git a/lib/Target/PowerPC/PPC32ISelSimple.cpp b/lib/Target/PowerPC/PPC32ISelSimple.cpp index 0c88a1b4fb..89e0f10203 100644 --- a/lib/Target/PowerPC/PPC32ISelSimple.cpp +++ b/lib/Target/PowerPC/PPC32ISelSimple.cpp @@ -65,7 +65,7 @@ static inline TypeClass getClass(const Type *Ty) { // getClassB - Just like getClass, but treat boolean values as ints. static inline TypeClass getClassB(const Type *Ty) { - if (Ty == Type::BoolTy) return cByte; + if (Ty == Type::BoolTy) return cInt; return getClass(Ty); } @@ -2628,24 +2628,24 @@ void ISel::emitCastOperation(MachineBasicBlock *MBB, F->getFrameInfo()->CreateStackObject(SrcTy, TM.getTargetData()); if (DestTy->isSigned()) { - unsigned LoadOp = (DestClass == cShort) ? PPC32::LHA : PPC32::LWZ; - unsigned TempReg = makeAnotherReg(Type::DoubleTy); - - // Convert to integer in the FP reg and store it to a stack slot - BuildMI(*BB, IP, PPC32::FCTIWZ, 1, TempReg).addReg(SrcReg); - addFrameReference(BuildMI(*BB, IP, PPC32::STFD, 3) - .addReg(TempReg), ValueFrameIdx); - - // There is no load signed byte opcode, so we must emit a sign extend - if (DestClass == cByte) { - unsigned TempReg2 = makeAnotherReg(DestTy); - addFrameReference(BuildMI(*BB, IP, LoadOp, 2, TempReg2), - ValueFrameIdx, 4); - BuildMI(*MBB, IP, PPC32::EXTSB, DestReg).addReg(TempReg2); - } else { - addFrameReference(BuildMI(*BB, IP, LoadOp, 2, DestReg), - ValueFrameIdx, 4); - } + unsigned LoadOp = (DestClass == cShort) ? PPC32::LHA : PPC32::LWZ; + unsigned TempReg = makeAnotherReg(Type::DoubleTy); + + // Convert to integer in the FP reg and store it to a stack slot + BuildMI(*BB, IP, PPC32::FCTIWZ, 1, TempReg).addReg(SrcReg); + addFrameReference(BuildMI(*BB, IP, PPC32::STFD, 3) + .addReg(TempReg), ValueFrameIdx); + + // There is no load signed byte opcode, so we must emit a sign extend + if (DestClass == cByte) { + unsigned TempReg2 = makeAnotherReg(DestTy); + addFrameReference(BuildMI(*BB, IP, LoadOp, 2, TempReg2), + ValueFrameIdx, 4); + BuildMI(*MBB, IP, PPC32::EXTSB, DestReg).addReg(TempReg2); + } else { + addFrameReference(BuildMI(*BB, IP, LoadOp, 2, DestReg), + ValueFrameIdx, 4); + } } else { std::cerr << "ERROR: Cast fp-to-unsigned not implemented!\n"; abort(); diff --git a/lib/Target/PowerPC/PowerPCISelSimple.cpp b/lib/Target/PowerPC/PowerPCISelSimple.cpp index 0c88a1b4fb..89e0f10203 100644 --- a/lib/Target/PowerPC/PowerPCISelSimple.cpp +++ b/lib/Target/PowerPC/PowerPCISelSimple.cpp @@ -65,7 +65,7 @@ static inline TypeClass getClass(const Type *Ty) { // getClassB - Just like getClass, but treat boolean values as ints. static inline TypeClass getClassB(const Type *Ty) { - if (Ty == Type::BoolTy) return cByte; + if (Ty == Type::BoolTy) return cInt; return getClass(Ty); } @@ -2628,24 +2628,24 @@ void ISel::emitCastOperation(MachineBasicBlock *MBB, F->getFrameInfo()->CreateStackObject(SrcTy, TM.getTargetData()); if (DestTy->isSigned()) { - unsigned LoadOp = (DestClass == cShort) ? PPC32::LHA : PPC32::LWZ; - unsigned TempReg = makeAnotherReg(Type::DoubleTy); - - // Convert to integer in the FP reg and store it to a stack slot - BuildMI(*BB, IP, PPC32::FCTIWZ, 1, TempReg).addReg(SrcReg); - addFrameReference(BuildMI(*BB, IP, PPC32::STFD, 3) - .addReg(TempReg), ValueFrameIdx); - - // There is no load signed byte opcode, so we must emit a sign extend - if (DestClass == cByte) { - unsigned TempReg2 = makeAnotherReg(DestTy); - addFrameReference(BuildMI(*BB, IP, LoadOp, 2, TempReg2), - ValueFrameIdx, 4); - BuildMI(*MBB, IP, PPC32::EXTSB, DestReg).addReg(TempReg2); - } else { - addFrameReference(BuildMI(*BB, IP, LoadOp, 2, DestReg), - ValueFrameIdx, 4); - } + unsigned LoadOp = (DestClass == cShort) ? PPC32::LHA : PPC32::LWZ; + unsigned TempReg = makeAnotherReg(Type::DoubleTy); + + // Convert to integer in the FP reg and store it to a stack slot + BuildMI(*BB, IP, PPC32::FCTIWZ, 1, TempReg).addReg(SrcReg); + addFrameReference(BuildMI(*BB, IP, PPC32::STFD, 3) + .addReg(TempReg), ValueFrameIdx); + + // There is no load signed byte opcode, so we must emit a sign extend + if (DestClass == cByte) { + unsigned TempReg2 = makeAnotherReg(DestTy); + addFrameReference(BuildMI(*BB, IP, LoadOp, 2, TempReg2), + ValueFrameIdx, 4); + BuildMI(*MBB, IP, PPC32::EXTSB, DestReg).addReg(TempReg2); + } else { + addFrameReference(BuildMI(*BB, IP, LoadOp, 2, DestReg), + ValueFrameIdx, 4); + } } else { std::cerr << "ERROR: Cast fp-to-unsigned not implemented!\n"; abort(); |