| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/code-factory.h" | 5 #include "src/code-factory.h" | 
| 6 #include "src/compiler/access-builder.h" | 6 #include "src/compiler/access-builder.h" | 
| 7 #include "src/compiler/js-graph.h" | 7 #include "src/compiler/js-graph.h" | 
| 8 #include "src/compiler/js-typed-lowering.h" | 8 #include "src/compiler/js-typed-lowering.h" | 
| 9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" | 
| 10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" | 
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 282 | 282 | 
| 283     // Here, we smash the result of the conversion into the slot just below | 283     // Here, we smash the result of the conversion into the slot just below | 
| 284     // the stack top. This is the slot that full code uses to store the | 284     // the stack top. This is the slot that full code uses to store the | 
| 285     // left operand. | 285     // left operand. | 
| 286     const Operator* op = jsgraph()->common()->FrameState( | 286     const Operator* op = jsgraph()->common()->FrameState( | 
| 287         state_info.type(), state_info.bailout_id(), | 287         state_info.type(), state_info.bailout_id(), | 
| 288         OutputFrameStateCombine::PokeAt(1)); | 288         OutputFrameStateCombine::PokeAt(1)); | 
| 289 | 289 | 
| 290     return graph()->NewNode(op, frame_state->InputAt(0), | 290     return graph()->NewNode(op, frame_state->InputAt(0), | 
| 291                             frame_state->InputAt(1), frame_state->InputAt(2), | 291                             frame_state->InputAt(1), frame_state->InputAt(2), | 
| 292                             frame_state->InputAt(3), frame_state->InputAt(4)); | 292                             frame_state->InputAt(3), frame_state->InputAt(4), | 
|  | 293                             frame_state->InputAt(5)); | 
| 293   } | 294   } | 
| 294 | 295 | 
| 295   Node* CreateFrameStateForRightInput(Node* frame_state, Node* converted_left) { | 296   Node* CreateFrameStateForRightInput(Node* frame_state, Node* converted_left) { | 
| 296     FrameStateCallInfo state_info = | 297     FrameStateCallInfo state_info = | 
| 297         OpParameter<FrameStateCallInfo>(frame_state); | 298         OpParameter<FrameStateCallInfo>(frame_state); | 
| 298 | 299 | 
| 299     if (state_info.bailout_id() == BailoutId::None()) { | 300     if (state_info.bailout_id() == BailoutId::None()) { | 
| 300       // Dummy frame state => just leave it as is. | 301       // Dummy frame state => just leave it as is. | 
| 301       return frame_state; | 302       return frame_state; | 
| 302     } | 303     } | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 319         new_values[i] = converted_left; | 320         new_values[i] = converted_left; | 
| 320       } else { | 321       } else { | 
| 321         new_values[i] = stack->InputAt(i); | 322         new_values[i] = stack->InputAt(i); | 
| 322       } | 323       } | 
| 323     } | 324     } | 
| 324     Node* new_stack = | 325     Node* new_stack = | 
| 325         graph()->NewNode(stack->op(), stack->InputCount(), &new_values.front()); | 326         graph()->NewNode(stack->op(), stack->InputCount(), &new_values.front()); | 
| 326 | 327 | 
| 327     return graph()->NewNode(op, frame_state->InputAt(0), | 328     return graph()->NewNode(op, frame_state->InputAt(0), | 
| 328                             frame_state->InputAt(1), new_stack, | 329                             frame_state->InputAt(1), new_stack, | 
| 329                             frame_state->InputAt(3), frame_state->InputAt(4)); | 330                             frame_state->InputAt(3), frame_state->InputAt(4), | 
|  | 331                             frame_state->InputAt(5)); | 
| 330   } | 332   } | 
| 331 | 333 | 
| 332   Node* ConvertPlainPrimitiveToNumber(Node* node) { | 334   Node* ConvertPlainPrimitiveToNumber(Node* node) { | 
| 333     DCHECK(NodeProperties::GetBounds(node).upper->Is(Type::PlainPrimitive())); | 335     DCHECK(NodeProperties::GetBounds(node).upper->Is(Type::PlainPrimitive())); | 
| 334     // Avoid inserting too many eager ToNumber() operations. | 336     // Avoid inserting too many eager ToNumber() operations. | 
| 335     Reduction const reduction = lowering_->ReduceJSToNumberInput(node); | 337     Reduction const reduction = lowering_->ReduceJSToNumberInput(node); | 
| 336     if (reduction.Changed()) return reduction.replacement(); | 338     if (reduction.Changed()) return reduction.replacement(); | 
| 337     // TODO(jarin) Use PlainPrimitiveToNumber once we have it. | 339     // TODO(jarin) Use PlainPrimitiveToNumber once we have it. | 
| 338     return graph()->NewNode( | 340     return graph()->NewNode( | 
| 339         javascript()->ToNumber(), node, jsgraph()->NoContextConstant(), | 341         javascript()->ToNumber(), node, jsgraph()->NoContextConstant(), | 
| (...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1213 } | 1215 } | 
| 1214 | 1216 | 
| 1215 | 1217 | 
| 1216 MachineOperatorBuilder* JSTypedLowering::machine() const { | 1218 MachineOperatorBuilder* JSTypedLowering::machine() const { | 
| 1217   return jsgraph()->machine(); | 1219   return jsgraph()->machine(); | 
| 1218 } | 1220 } | 
| 1219 | 1221 | 
| 1220 }  // namespace compiler | 1222 }  // namespace compiler | 
| 1221 }  // namespace internal | 1223 }  // namespace internal | 
| 1222 }  // namespace v8 | 1224 }  // namespace v8 | 
| OLD | NEW | 
|---|