Chromium Code Reviews| Index: src/IceTargetLoweringX8632Traits.h |
| diff --git a/src/IceTargetLoweringX8632Traits.h b/src/IceTargetLoweringX8632Traits.h |
| index 2010ee45152aae6eb4b9ad5103240c847ad5f7c8..0b33634b8275bd484554491825da61ca9571bd2a 100644 |
| --- a/src/IceTargetLoweringX8632Traits.h |
| +++ b/src/IceTargetLoweringX8632Traits.h |
| @@ -364,6 +364,17 @@ 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(Ty == IceType_i8 || Ty == IceType_i1); |
|
Jim Stichnoth
2016/01/10 03:08:56
assert(isByteSizedType(Ty));
(looks like there ar
sehr
2016/01/11 21:49:48
Done.
|
| + return RegNum; |
| + } |
| RegNum = getBaseReg(RegNum); |
| if (Ty == IceType_i8 || Ty == IceType_i1) { |
| switch (RegNum) { |