| 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/compiler/js-typed-lowering.h" | 5 #include "src/compiler/js-typed-lowering.h" |
| 6 | 6 |
| 7 #include "src/ast/modules.h" | 7 #include "src/ast/modules.h" |
| 8 #include "src/builtins/builtins-utils.h" | 8 #include "src/builtins/builtins-utils.h" |
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
| 10 #include "src/compilation-dependencies.h" | 10 #include "src/compilation-dependencies.h" |
| (...skipping 2139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2150 ReplaceWithValue(node, node, effect, control); | 2150 ReplaceWithValue(node, node, effect, control); |
| 2151 node->ReplaceInput(0, vtrue0); | 2151 node->ReplaceInput(0, vtrue0); |
| 2152 node->ReplaceInput(1, vfalse0); | 2152 node->ReplaceInput(1, vfalse0); |
| 2153 node->ReplaceInput(2, control); | 2153 node->ReplaceInput(2, control); |
| 2154 node->TrimInputCount(3); | 2154 node->TrimInputCount(3); |
| 2155 NodeProperties::ChangeOp(node, | 2155 NodeProperties::ChangeOp(node, |
| 2156 common()->Phi(MachineRepresentation::kTagged, 2)); | 2156 common()->Phi(MachineRepresentation::kTagged, 2)); |
| 2157 return Changed(node); | 2157 return Changed(node); |
| 2158 } | 2158 } |
| 2159 | 2159 |
| 2160 Reduction JSTypedLowering::ReduceJSLoadMessage(Node* node) { |
| 2161 DCHECK_EQ(IrOpcode::kJSLoadMessage, node->opcode()); |
| 2162 ExternalReference const ref = |
| 2163 ExternalReference::address_of_pending_message_obj(isolate()); |
| 2164 node->ReplaceInput(0, jsgraph()->ExternalConstant(ref)); |
| 2165 NodeProperties::ChangeOp( |
| 2166 node, simplified()->LoadField(AccessBuilder::ForExternalTaggedValue())); |
| 2167 return Changed(node); |
| 2168 } |
| 2169 |
| 2170 Reduction JSTypedLowering::ReduceJSStoreMessage(Node* node) { |
| 2171 DCHECK_EQ(IrOpcode::kJSStoreMessage, node->opcode()); |
| 2172 ExternalReference const ref = |
| 2173 ExternalReference::address_of_pending_message_obj(isolate()); |
| 2174 Node* value = NodeProperties::GetValueInput(node, 0); |
| 2175 node->ReplaceInput(0, jsgraph()->ExternalConstant(ref)); |
| 2176 node->ReplaceInput(1, value); |
| 2177 NodeProperties::ChangeOp( |
| 2178 node, simplified()->StoreField(AccessBuilder::ForExternalTaggedValue())); |
| 2179 return Changed(node); |
| 2180 } |
| 2181 |
| 2160 Reduction JSTypedLowering::ReduceJSGeneratorStore(Node* node) { | 2182 Reduction JSTypedLowering::ReduceJSGeneratorStore(Node* node) { |
| 2161 DCHECK_EQ(IrOpcode::kJSGeneratorStore, node->opcode()); | 2183 DCHECK_EQ(IrOpcode::kJSGeneratorStore, node->opcode()); |
| 2162 Node* generator = NodeProperties::GetValueInput(node, 0); | 2184 Node* generator = NodeProperties::GetValueInput(node, 0); |
| 2163 Node* continuation = NodeProperties::GetValueInput(node, 1); | 2185 Node* continuation = NodeProperties::GetValueInput(node, 1); |
| 2164 Node* offset = NodeProperties::GetValueInput(node, 2); | 2186 Node* offset = NodeProperties::GetValueInput(node, 2); |
| 2165 Node* context = NodeProperties::GetContextInput(node); | 2187 Node* context = NodeProperties::GetContextInput(node); |
| 2166 Node* effect = NodeProperties::GetEffectInput(node); | 2188 Node* effect = NodeProperties::GetEffectInput(node); |
| 2167 Node* control = NodeProperties::GetControlInput(node); | 2189 Node* control = NodeProperties::GetControlInput(node); |
| 2168 int register_count = OpParameter<int>(node); | 2190 int register_count = OpParameter<int>(node); |
| 2169 | 2191 |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2300 case IrOpcode::kJSStoreModule: | 2322 case IrOpcode::kJSStoreModule: |
| 2301 return ReduceJSStoreModule(node); | 2323 return ReduceJSStoreModule(node); |
| 2302 case IrOpcode::kJSConvertReceiver: | 2324 case IrOpcode::kJSConvertReceiver: |
| 2303 return ReduceJSConvertReceiver(node); | 2325 return ReduceJSConvertReceiver(node); |
| 2304 case IrOpcode::kJSCallConstruct: | 2326 case IrOpcode::kJSCallConstruct: |
| 2305 return ReduceJSCallConstruct(node); | 2327 return ReduceJSCallConstruct(node); |
| 2306 case IrOpcode::kJSCallFunction: | 2328 case IrOpcode::kJSCallFunction: |
| 2307 return ReduceJSCallFunction(node); | 2329 return ReduceJSCallFunction(node); |
| 2308 case IrOpcode::kJSForInNext: | 2330 case IrOpcode::kJSForInNext: |
| 2309 return ReduceJSForInNext(node); | 2331 return ReduceJSForInNext(node); |
| 2332 case IrOpcode::kJSLoadMessage: |
| 2333 return ReduceJSLoadMessage(node); |
| 2334 case IrOpcode::kJSStoreMessage: |
| 2335 return ReduceJSStoreMessage(node); |
| 2310 case IrOpcode::kJSGeneratorStore: | 2336 case IrOpcode::kJSGeneratorStore: |
| 2311 return ReduceJSGeneratorStore(node); | 2337 return ReduceJSGeneratorStore(node); |
| 2312 case IrOpcode::kJSGeneratorRestoreContinuation: | 2338 case IrOpcode::kJSGeneratorRestoreContinuation: |
| 2313 return ReduceJSGeneratorRestoreContinuation(node); | 2339 return ReduceJSGeneratorRestoreContinuation(node); |
| 2314 case IrOpcode::kJSGeneratorRestoreRegister: | 2340 case IrOpcode::kJSGeneratorRestoreRegister: |
| 2315 return ReduceJSGeneratorRestoreRegister(node); | 2341 return ReduceJSGeneratorRestoreRegister(node); |
| 2316 default: | 2342 default: |
| 2317 break; | 2343 break; |
| 2318 } | 2344 } |
| 2319 return NoChange(); | 2345 return NoChange(); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2343 } | 2369 } |
| 2344 | 2370 |
| 2345 | 2371 |
| 2346 CompilationDependencies* JSTypedLowering::dependencies() const { | 2372 CompilationDependencies* JSTypedLowering::dependencies() const { |
| 2347 return dependencies_; | 2373 return dependencies_; |
| 2348 } | 2374 } |
| 2349 | 2375 |
| 2350 } // namespace compiler | 2376 } // namespace compiler |
| 2351 } // namespace internal | 2377 } // namespace internal |
| 2352 } // namespace v8 | 2378 } // namespace v8 |
| OLD | NEW |