OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |