OLD | NEW |
---|---|
1 // | 1 // |
2 // The Subzero Code Generator | 2 // The Subzero Code Generator |
3 // | 3 // |
4 // This file is distributed under the University of Illinois Open Source | 4 // This file is distributed under the University of Illinois Open Source |
5 // License. See LICENSE.TXT for details. | 5 // License. See LICENSE.TXT for details. |
6 // | 6 // |
7 //===----------------------------------------------------------------------===// | 7 //===----------------------------------------------------------------------===// |
8 /// | 8 /// |
9 /// \file | 9 /// \file |
10 /// \brief Implements the TargetLoweringMIPS32 class, which consists almost | 10 /// \brief Implements the TargetLoweringMIPS32 class, which consists almost |
(...skipping 2791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2802 } | 2802 } |
2803 case Intrinsics::Bswap: { | 2803 case Intrinsics::Bswap: { |
2804 UnimplementedLoweringError(this, Instr); | 2804 UnimplementedLoweringError(this, Instr); |
2805 return; | 2805 return; |
2806 } | 2806 } |
2807 case Intrinsics::Ctpop: { | 2807 case Intrinsics::Ctpop: { |
2808 UnimplementedLoweringError(this, Instr); | 2808 UnimplementedLoweringError(this, Instr); |
2809 return; | 2809 return; |
2810 } | 2810 } |
2811 case Intrinsics::Ctlz: { | 2811 case Intrinsics::Ctlz: { |
2812 UnimplementedLoweringError(this, Instr); | 2812 auto *Src = Instr->getArg(0); |
2813 Type SrcTy = Src->getType(); | |
Jim Stichnoth
2016/09/22 13:48:27
const Type
obucinac
2016/09/22 15:42:07
Done.
| |
2814 if (isScalarIntegerType(SrcTy)) { | |
Jim Stichnoth
2016/09/22 13:48:27
This code seems a bit unbalanced - it appears to d
obucinac
2016/09/22 15:42:07
Done.
| |
2815 if (SrcTy == IceType_i64) { | |
2816 UnimplementedLoweringError(this, Instr); | |
2817 } else { | |
2818 auto *DestR = legalizeToReg(Dest); | |
Jim Stichnoth
2016/09/22 13:48:27
This doesn't seem right to me. Dest shouldn't act
obucinac
2016/09/22 15:42:07
Done.
| |
2819 auto *SrcR = legalizeToReg(Src); | |
2820 _clz(DestR, SrcR); | |
2821 _mov(Dest, DestR); | |
2822 } | |
2823 } | |
2813 return; | 2824 return; |
2814 } | 2825 } |
2815 case Intrinsics::Cttz: { | 2826 case Intrinsics::Cttz: { |
2816 UnimplementedLoweringError(this, Instr); | 2827 UnimplementedLoweringError(this, Instr); |
2817 return; | 2828 return; |
2818 } | 2829 } |
2819 case Intrinsics::Fabs: { | 2830 case Intrinsics::Fabs: { |
2820 if (isScalarFloatingType(DestTy)) { | 2831 if (isScalarFloatingType(DestTy)) { |
2821 Variable *T = makeReg(DestTy); | 2832 Variable *T = makeReg(DestTy); |
2822 if (DestTy == IceType_f32) { | 2833 if (DestTy == IceType_f32) { |
(...skipping 907 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3730 Str << "\t.set\t" | 3741 Str << "\t.set\t" |
3731 << "nomips16\n"; | 3742 << "nomips16\n"; |
3732 } | 3743 } |
3733 | 3744 |
3734 SmallBitVector TargetMIPS32::TypeToRegisterSet[RCMIPS32_NUM]; | 3745 SmallBitVector TargetMIPS32::TypeToRegisterSet[RCMIPS32_NUM]; |
3735 SmallBitVector TargetMIPS32::TypeToRegisterSetUnfiltered[RCMIPS32_NUM]; | 3746 SmallBitVector TargetMIPS32::TypeToRegisterSetUnfiltered[RCMIPS32_NUM]; |
3736 SmallBitVector TargetMIPS32::RegisterAliases[RegMIPS32::Reg_NUM]; | 3747 SmallBitVector TargetMIPS32::RegisterAliases[RegMIPS32::Reg_NUM]; |
3737 | 3748 |
3738 } // end of namespace MIPS32 | 3749 } // end of namespace MIPS32 |
3739 } // end of namespace Ice | 3750 } // end of namespace Ice |
OLD | NEW |