Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: src/ia32/code-stubs-ia32.cc

Issue 2188993003: [stubs] Port CreateWeakCellStub to turbofan (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix stack overflow Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #if V8_TARGET_ARCH_IA32 5 #if V8_TARGET_ARCH_IA32
6 6
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 #include "src/api-arguments.h" 8 #include "src/api-arguments.h"
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 1270
1271 { 1271 {
1272 FrameScope scope(masm, StackFrame::INTERNAL); 1272 FrameScope scope(masm, StackFrame::INTERNAL);
1273 1273
1274 // Number-of-arguments register must be smi-tagged to call out. 1274 // Number-of-arguments register must be smi-tagged to call out.
1275 __ SmiTag(eax); 1275 __ SmiTag(eax);
1276 __ push(eax); 1276 __ push(eax);
1277 __ push(edi); 1277 __ push(edi);
1278 __ push(edx); 1278 __ push(edx);
1279 __ push(ebx); 1279 __ push(ebx);
1280 __ push(esi);
1280 1281
1281 __ CallStub(stub); 1282 __ CallStub(stub);
1282 1283
1284 __ pop(esi);
1283 __ pop(ebx); 1285 __ pop(ebx);
1284 __ pop(edx); 1286 __ pop(edx);
1285 __ pop(edi); 1287 __ pop(edi);
1286 __ pop(eax); 1288 __ pop(eax);
1287 __ SmiUntag(eax); 1289 __ SmiUntag(eax);
1288 } 1290 }
1289 } 1291 }
1290 1292
1291 1293
1292 static void GenerateRecordCallTarget(MacroAssembler* masm) { 1294 static void GenerateRecordCallTarget(MacroAssembler* masm) {
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
1568 Immediate(Smi::FromInt(1))); 1570 Immediate(Smi::FromInt(1)));
1569 1571
1570 // Store the function. Use a stub since we need a frame for allocation. 1572 // Store the function. Use a stub since we need a frame for allocation.
1571 // ebx - vector 1573 // ebx - vector
1572 // edx - slot 1574 // edx - slot
1573 // edi - function 1575 // edi - function
1574 { 1576 {
1575 FrameScope scope(masm, StackFrame::INTERNAL); 1577 FrameScope scope(masm, StackFrame::INTERNAL);
1576 CreateWeakCellStub create_stub(isolate); 1578 CreateWeakCellStub create_stub(isolate);
1577 __ push(edi); 1579 __ push(edi);
1580 __ push(esi);
1578 __ CallStub(&create_stub); 1581 __ CallStub(&create_stub);
1582 __ pop(esi);
1579 __ pop(edi); 1583 __ pop(edi);
1580 } 1584 }
1581 1585
1582 __ jmp(&call_function); 1586 __ jmp(&call_function);
1583 1587
1584 // We are here because tracing is on or we encountered a MISS case we can't 1588 // We are here because tracing is on or we encountered a MISS case we can't
1585 // handle here. 1589 // handle here.
1586 __ bind(&miss); 1590 __ bind(&miss);
1587 GenerateMiss(masm); 1591 GenerateMiss(masm);
1588 1592
(...skipping 3898 matching lines...) Expand 10 before | Expand all | Expand 10 after
5487 kStackUnwindSpace, nullptr, return_value_operand, 5491 kStackUnwindSpace, nullptr, return_value_operand,
5488 NULL); 5492 NULL);
5489 } 5493 }
5490 5494
5491 #undef __ 5495 #undef __
5492 5496
5493 } // namespace internal 5497 } // namespace internal
5494 } // namespace v8 5498 } // namespace v8
5495 5499
5496 #endif // V8_TARGET_ARCH_IA32 5500 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698