Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index a715915f1f6d374715e902a1b9723b232ef8b06a..d5bc5e6acd8e1cf58ad9c96007a0885873feb8e9 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -5892,7 +5892,9 @@ class HLoadNamedField V8_FINAL : public HTemplateInstruction<1> { |
SetOperandAt(0, object); |
Representation representation = access.representation(); |
- if (representation.IsSmi()) { |
+ if (representation.IsByte()) { |
+ set_representation(Representation::Integer32()); |
+ } else if (representation.IsSmi()) { |
set_type(HType::Smi()); |
set_representation(representation); |
} else if (representation.IsDouble() || |
@@ -6190,11 +6192,14 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> { |
if (index == 0 && access().IsExternalMemory()) { |
// object must be external in case of external memory access |
return Representation::External(); |
- } else if (index == 1 && |
- (field_representation().IsDouble() || |
- field_representation().IsSmi() || |
- field_representation().IsInteger32())) { |
- return field_representation(); |
+ } else if (index == 1) { |
+ if (field_representation().IsByte() || |
+ field_representation().IsInteger32()) { |
+ return Representation::Integer32(); |
+ } else if (field_representation().IsDouble() || |
+ field_representation().IsSmi()) { |
+ return field_representation(); |
+ } |
} |
return Representation::Tagged(); |
} |