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

Side by Side Diff: src/x87/code-stubs-x87.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_X87 5 #if V8_TARGET_ARCH_X87
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 1088 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 1099
1100 { 1100 {
1101 FrameScope scope(masm, StackFrame::INTERNAL); 1101 FrameScope scope(masm, StackFrame::INTERNAL);
1102 1102
1103 // Number-of-arguments register must be smi-tagged to call out. 1103 // Number-of-arguments register must be smi-tagged to call out.
1104 __ SmiTag(eax); 1104 __ SmiTag(eax);
1105 __ push(eax); 1105 __ push(eax);
1106 __ push(edi); 1106 __ push(edi);
1107 __ push(edx); 1107 __ push(edx);
1108 __ push(ebx); 1108 __ push(ebx);
1109 __ push(esi);
1109 1110
1110 __ CallStub(stub); 1111 __ CallStub(stub);
1111 1112
1113 __ pop(esi);
1112 __ pop(ebx); 1114 __ pop(ebx);
1113 __ pop(edx); 1115 __ pop(edx);
1114 __ pop(edi); 1116 __ pop(edi);
1115 __ pop(eax); 1117 __ pop(eax);
1116 __ SmiUntag(eax); 1118 __ SmiUntag(eax);
1117 } 1119 }
1118 } 1120 }
1119 1121
1120 1122
1121 static void GenerateRecordCallTarget(MacroAssembler* masm) { 1123 static void GenerateRecordCallTarget(MacroAssembler* masm) {
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
1397 Immediate(Smi::FromInt(1))); 1399 Immediate(Smi::FromInt(1)));
1398 1400
1399 // Store the function. Use a stub since we need a frame for allocation. 1401 // Store the function. Use a stub since we need a frame for allocation.
1400 // ebx - vector 1402 // ebx - vector
1401 // edx - slot 1403 // edx - slot
1402 // edi - function 1404 // edi - function
1403 { 1405 {
1404 FrameScope scope(masm, StackFrame::INTERNAL); 1406 FrameScope scope(masm, StackFrame::INTERNAL);
1405 CreateWeakCellStub create_stub(isolate); 1407 CreateWeakCellStub create_stub(isolate);
1406 __ push(edi); 1408 __ push(edi);
1409 __ push(esi);
1407 __ CallStub(&create_stub); 1410 __ CallStub(&create_stub);
1411 __ pop(esi);
1408 __ pop(edi); 1412 __ pop(edi);
1409 } 1413 }
1410 1414
1411 __ jmp(&call_function); 1415 __ jmp(&call_function);
1412 1416
1413 // We are here because tracing is on or we encountered a MISS case we can't 1417 // We are here because tracing is on or we encountered a MISS case we can't
1414 // handle here. 1418 // handle here.
1415 __ bind(&miss); 1419 __ bind(&miss);
1416 GenerateMiss(masm); 1420 GenerateMiss(masm);
1417 1421
(...skipping 3860 matching lines...) Expand 10 before | Expand all | Expand 10 after
5278 kStackUnwindSpace, nullptr, return_value_operand, 5282 kStackUnwindSpace, nullptr, return_value_operand,
5279 NULL); 5283 NULL);
5280 } 5284 }
5281 5285
5282 #undef __ 5286 #undef __
5283 5287
5284 } // namespace internal 5288 } // namespace internal
5285 } // namespace v8 5289 } // namespace v8
5286 5290
5287 #endif // V8_TARGET_ARCH_X87 5291 #endif // V8_TARGET_ARCH_X87
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698