Chromium Code Reviews| Index: src/IceTargetLoweringX86BaseImpl.h |
| diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h |
| index a6bc892ffe1b1f352accf80f243963f09aaade75..b056ea4dbf0f89e0d8c4f652370e811248af217f 100644 |
| --- a/src/IceTargetLoweringX86BaseImpl.h |
| +++ b/src/IceTargetLoweringX86BaseImpl.h |
| @@ -5853,7 +5853,12 @@ void TargetX86Base<TraitsType>::lowerCaseCluster(const CaseCluster &Case, |
| const Type PointerType = getPointerType(); |
| if (RangeIndex->getType() != PointerType) { |
| Index = makeReg(PointerType); |
| - _movzx(Index, RangeIndex); |
| + if (RangeIndex->getType() == IceType_i64) { |
|
John
2016/02/29 15:34:09
How do you feel about:
if (typeSizeInByes(Pointer
|
| + assert(Traits::Is64Bit); |
| + _mov(Index, RangeIndex); // trunc |
| + } else { |
| + _movzx(Index, RangeIndex); |
| + } |
| } else { |
| Index = legalizeToReg(RangeIndex); |
| } |