| Index: src/IceTargetLoweringX8632Traits.h
|
| diff --git a/src/IceTargetLoweringX8632Traits.h b/src/IceTargetLoweringX8632Traits.h
|
| index 00ea2d91cce1de6df2b2c935b27d5e3c9af07b77..ab22bfdbe16c36b364a88897bbe26df600625b4f 100644
|
| --- a/src/IceTargetLoweringX8632Traits.h
|
| +++ b/src/IceTargetLoweringX8632Traits.h
|
| @@ -364,8 +364,19 @@ struct TargetX8632Traits {
|
| assert(RegNum != Variable::NoRegister);
|
| // TODO(stichnot): Rewrite this as a table lookup from a table computed in a
|
| // TargetLowering static initializer.
|
| + // [abcd]h registers are not convertible to their ?l, ?x, and e?x versions.
|
| + switch (RegNum) {
|
| + default:
|
| + break;
|
| + case RegisterSet::Reg_ah:
|
| + case RegisterSet::Reg_bh:
|
| + case RegisterSet::Reg_ch:
|
| + case RegisterSet::Reg_dh:
|
| + assert(isByteSizedType(Ty));
|
| + return RegNum;
|
| + }
|
| RegNum = getBaseReg(RegNum);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedType(Ty)) {
|
| switch (RegNum) {
|
| default:
|
| assert(0);
|
|
|