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-stubs.h" | 5 #include "src/code-stubs.h" |
6 #include "src/compiler.h" | 6 #include "src/compiler.h" |
7 #include "src/compiler/common-operator.h" | 7 #include "src/compiler/common-operator.h" |
8 #include "src/compiler/frame.h" | 8 #include "src/compiler/frame.h" |
9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" |
10 #include "src/compiler/node.h" | 10 #include "src/compiler/node.h" |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 case Runtime::kPushCatchContext: | 235 case Runtime::kPushCatchContext: |
236 case Runtime::kReThrow: | 236 case Runtime::kReThrow: |
237 case Runtime::kStringCompare: | 237 case Runtime::kStringCompare: |
238 case Runtime::kStringEquals: | 238 case Runtime::kStringEquals: |
239 case Runtime::kToFastProperties: // TODO(jarin): Is it safe? | 239 case Runtime::kToFastProperties: // TODO(jarin): Is it safe? |
240 case Runtime::kTraceEnter: | 240 case Runtime::kTraceEnter: |
241 case Runtime::kTraceExit: | 241 case Runtime::kTraceExit: |
242 return 0; | 242 return 0; |
243 case Runtime::kInlineArguments: | 243 case Runtime::kInlineArguments: |
244 case Runtime::kInlineArgumentsLength: | 244 case Runtime::kInlineArgumentsLength: |
245 case Runtime::kInlineCall: | |
246 case Runtime::kInlineCallFunction: | |
247 case Runtime::kInlineDefaultConstructorCallSuper: | 245 case Runtime::kInlineDefaultConstructorCallSuper: |
248 case Runtime::kInlineGetCallerJSFunction: | 246 case Runtime::kInlineGetCallerJSFunction: |
249 case Runtime::kInlineGetPrototype: | 247 case Runtime::kInlineGetPrototype: |
250 case Runtime::kInlineRegExpExec: | 248 case Runtime::kInlineRegExpExec: |
251 case Runtime::kInlineSubString: | 249 case Runtime::kInlineSubString: |
252 case Runtime::kInlineToInteger: | 250 case Runtime::kInlineToInteger: |
253 case Runtime::kInlineToLength: | 251 case Runtime::kInlineToLength: |
254 case Runtime::kInlineToName: | 252 case Runtime::kInlineToName: |
255 case Runtime::kInlineToNumber: | 253 case Runtime::kInlineToNumber: |
256 case Runtime::kInlineToObject: | 254 case Runtime::kInlineToObject: |
257 case Runtime::kInlineToPrimitive_Number: | 255 case Runtime::kInlineToPrimitive_Number: |
258 case Runtime::kInlineToPrimitive_String: | 256 case Runtime::kInlineToPrimitive_String: |
259 case Runtime::kInlineToPrimitive: | 257 case Runtime::kInlineToPrimitive: |
260 case Runtime::kInlineToString: | 258 case Runtime::kInlineToString: |
261 return 1; | 259 return 1; |
| 260 case Runtime::kInlineCall: |
| 261 case Runtime::kInlineCallFunction: |
262 case Runtime::kInlineDeoptimizeNow: | 262 case Runtime::kInlineDeoptimizeNow: |
263 case Runtime::kInlineThrowNotDateError: | 263 case Runtime::kInlineThrowNotDateError: |
264 return 2; | 264 return 2; |
265 default: | 265 default: |
266 break; | 266 break; |
267 } | 267 } |
268 | 268 |
269 // Most inlined runtime functions (except the ones listed above) can be called | 269 // Most inlined runtime functions (except the ones listed above) can be called |
270 // without a FrameState or will be lowered by JSIntrinsicLowering internally. | 270 // without a FrameState or will be lowered by JSIntrinsicLowering internally. |
271 const Runtime::Function* const f = Runtime::FunctionForId(function); | 271 const Runtime::Function* const f = Runtime::FunctionForId(function); |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 return LinkageLocation::ForCalleeFrameSlot(spill_index); | 555 return LinkageLocation::ForCalleeFrameSlot(spill_index); |
556 } else { | 556 } else { |
557 // Parameter. Use the assigned location from the incoming call descriptor. | 557 // Parameter. Use the assigned location from the incoming call descriptor. |
558 int parameter_index = 1 + index; // skip index 0, which is the target. | 558 int parameter_index = 1 + index; // skip index 0, which is the target. |
559 return incoming_->GetInputLocation(parameter_index); | 559 return incoming_->GetInputLocation(parameter_index); |
560 } | 560 } |
561 } | 561 } |
562 } // namespace compiler | 562 } // namespace compiler |
563 } // namespace internal | 563 } // namespace internal |
564 } // namespace v8 | 564 } // namespace v8 |
OLD | NEW |