Index: src/compiler/machine-operator-reducer.cc |
diff --git a/src/compiler/machine-operator-reducer.cc b/src/compiler/machine-operator-reducer.cc |
index fd402ee1c7fecbea37ff222c6d57d9d188eb343a..3a723c3196942b425bfb64f50c3db3eb32133e81 100644 |
--- a/src/compiler/machine-operator-reducer.cc |
+++ b/src/compiler/machine-operator-reducer.cc |
@@ -583,6 +583,7 @@ Reduction MachineOperatorReducer::Reduce(Node* node) { |
case IrOpcode::kFloat64InsertHighWord32: |
return ReduceFloat64InsertHighWord32(node); |
case IrOpcode::kStore: |
+ case IrOpcode::kUnalignedStore: |
case IrOpcode::kCheckedStore: |
return ReduceStore(node); |
case IrOpcode::kFloat64Equal: |
@@ -797,9 +798,13 @@ Reduction MachineOperatorReducer::ReduceStore(Node* node) { |
if (nm.IsCheckedStore()) { |
rep = CheckedStoreRepresentationOf(node->op()); |
value_input = 3; |
- } else { |
+ } else if (nm.IsStore()) { |
rep = StoreRepresentationOf(node->op()).representation(); |
value_input = 2; |
+ } else { |
+ DCHECK(nm.IsUnalignedStore()); |
+ rep = UnalignedStoreRepresentationOf(node->op()); |
+ value_input = 2; |
} |
Node* const value = node->InputAt(value_input); |