| Index: src/compiler/js-graph.cc
|
| diff --git a/src/compiler/js-graph.cc b/src/compiler/js-graph.cc
|
| index 8626cd1821473a58283789368de722030a8ff06d..0dfb6a61decd8314b0e65a564ecf95da34a9d4ef 100644
|
| --- a/src/compiler/js-graph.cc
|
| +++ b/src/compiler/js-graph.cc
|
| @@ -31,11 +31,26 @@ Node* JSGraph::ToNumberBuiltinConstant() {
|
|
|
| Node* JSGraph::CEntryStubConstant(int result_size, SaveFPRegsMode save_doubles,
|
| ArgvMode argv_mode, bool builtin_exit_frame) {
|
| - if (save_doubles == kDontSaveFPRegs && argv_mode == kArgvOnStack &&
|
| - result_size == 1) {
|
| + if (save_doubles == kDontSaveFPRegs && argv_mode == kArgvOnStack) {
|
| + DCHECK(result_size >= 1 && result_size <= 3);
|
| + if (!builtin_exit_frame) {
|
| + CachedNode key;
|
| + if (result_size == 1) {
|
| + key = kCEntryStub1Constant;
|
| + } else if (result_size == 2) {
|
| + key = kCEntryStub2Constant;
|
| + } else {
|
| + DCHECK(result_size == 3);
|
| + key = kCEntryStub3Constant;
|
| + }
|
| + return CACHED(
|
| + key, HeapConstant(CEntryStub(isolate(), result_size, save_doubles,
|
| + argv_mode, builtin_exit_frame)
|
| + .GetCode()));
|
| + }
|
| CachedNode key = builtin_exit_frame
|
| - ? kCEntryStubWithBuiltinExitFrameConstant
|
| - : kCEntryStubConstant;
|
| + ? kCEntryStub1WithBuiltinExitFrameConstant
|
| + : kCEntryStub1Constant;
|
| return CACHED(key,
|
| HeapConstant(CEntryStub(isolate(), result_size, save_doubles,
|
| argv_mode, builtin_exit_frame)
|
|
|