Chromium Code Reviews| Index: src/compiler/js-typed-lowering.cc |
| diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
| index 130c5cbcbdc8de9fb23d63c9baf838f355f6cc90..8c78412a4eace180962a2dc24f02d98a1c5befa5 100644 |
| --- a/src/compiler/js-typed-lowering.cc |
| +++ b/src/compiler/js-typed-lowering.cc |
| @@ -556,6 +556,14 @@ Reduction JSTypedLowering::ReduceJSLoadProperty(Node* node) { |
| Node* value = |
| graph()->NewNode(simplified()->LoadElement(element_access), elements, |
| key, NodeProperties::GetEffectInput(node)); |
| + // TODO(titzer): Remove this hack once float32 is properly supported in |
| + // simplified lowering. |
| + if (element_access.machine_type == kRepFloat32) { |
|
titzer
2014/09/24 10:55:23
You can move this into simplified-lowering. A more
|
| + Node* change = |
| + graph()->NewNode(machine()->ChangeFloat32ToFloat64(), value); |
| + NodeProperties::ReplaceWithValue(node, change, value); |
| + return Changed(value); |
| + } |
| return ReplaceEagerly(node, value); |
| } |
| return NoChange(); |
| @@ -599,6 +607,11 @@ Reduction JSTypedLowering::ReduceJSStoreProperty(Node* node) { |
| NodeProperties::GetControlInput(node)); |
| Node* if_true = graph()->NewNode(common()->IfTrue(), branch); |
| + // TODO(titzer): Remove this hack once float32 is properly supported in |
| + // simplified lowering. |
| + if (element_access.machine_type == kRepFloat32) { |
| + value = graph()->NewNode(machine()->TruncateFloat64ToFloat32(), value); |
| + } |
| Node* store = graph()->NewNode( |
| simplified()->StoreElement(element_access), elements, key, value, |
| NodeProperties::GetEffectInput(node), if_true); |