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 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 void ResetRoundingMode(); | 544 void ResetRoundingMode(); |
545 | 545 |
546 // These exist to provide portability between 32 and 64bit | 546 // These exist to provide portability between 32 and 64bit |
547 void LoadP(Register dst, const MemOperand& mem, Register scratch = no_reg); | 547 void LoadP(Register dst, const MemOperand& mem, Register scratch = no_reg); |
548 void StoreP(Register src, const MemOperand& mem, Register scratch = no_reg); | 548 void StoreP(Register src, const MemOperand& mem, Register scratch = no_reg); |
549 | 549 |
550 // --------------------------------------------------------------------------- | 550 // --------------------------------------------------------------------------- |
551 // JavaScript invokes | 551 // JavaScript invokes |
552 | 552 |
553 // Invoke the JavaScript function code by either calling or jumping. | 553 // Invoke the JavaScript function code by either calling or jumping. |
554 void InvokeCode(Register code, Register new_target, | 554 void InvokeFunctionCode(Register function, Register new_target, |
555 const ParameterCount& expected, const ParameterCount& actual, | 555 const ParameterCount& expected, |
556 InvokeFlag flag, const CallWrapper& call_wrapper); | 556 const ParameterCount& actual, InvokeFlag flag, |
| 557 const CallWrapper& call_wrapper); |
557 | 558 |
558 // Invoke the JavaScript function in the given register. Changes the | 559 // Invoke the JavaScript function in the given register. Changes the |
559 // current context to the context in the function before invoking. | 560 // current context to the context in the function before invoking. |
560 void InvokeFunction(Register function, Register new_target, | 561 void InvokeFunction(Register function, Register new_target, |
561 const ParameterCount& actual, InvokeFlag flag, | 562 const ParameterCount& actual, InvokeFlag flag, |
562 const CallWrapper& call_wrapper); | 563 const CallWrapper& call_wrapper); |
563 | 564 |
564 void InvokeFunction(Register function, const ParameterCount& expected, | 565 void InvokeFunction(Register function, const ParameterCount& expected, |
565 const ParameterCount& actual, InvokeFlag flag, | 566 const ParameterCount& actual, InvokeFlag flag, |
566 const CallWrapper& call_wrapper); | 567 const CallWrapper& call_wrapper); |
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1487 | 1488 |
1488 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al, | 1489 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al, |
1489 CRegister cr = cr7); | 1490 CRegister cr = cr7); |
1490 | 1491 |
1491 // Helper functions for generating invokes. | 1492 // Helper functions for generating invokes. |
1492 void InvokePrologue(const ParameterCount& expected, | 1493 void InvokePrologue(const ParameterCount& expected, |
1493 const ParameterCount& actual, Label* done, | 1494 const ParameterCount& actual, Label* done, |
1494 bool* definitely_mismatches, InvokeFlag flag, | 1495 bool* definitely_mismatches, InvokeFlag flag, |
1495 const CallWrapper& call_wrapper); | 1496 const CallWrapper& call_wrapper); |
1496 | 1497 |
| 1498 void FloodFunctionIfStepping(Register fun, Register new_target, |
| 1499 const ParameterCount& expected, |
| 1500 const ParameterCount& actual); |
| 1501 |
1497 void InitializeNewString(Register string, Register length, | 1502 void InitializeNewString(Register string, Register length, |
1498 Heap::RootListIndex map_index, Register scratch1, | 1503 Heap::RootListIndex map_index, Register scratch1, |
1499 Register scratch2); | 1504 Register scratch2); |
1500 | 1505 |
1501 // Helper for implementing JumpIfNotInNewSpace and JumpIfInNewSpace. | 1506 // Helper for implementing JumpIfNotInNewSpace and JumpIfInNewSpace. |
1502 void InNewSpace(Register object, Register scratch, | 1507 void InNewSpace(Register object, Register scratch, |
1503 Condition cond, // eq for new space, ne otherwise. | 1508 Condition cond, // eq for new space, ne otherwise. |
1504 Label* branch); | 1509 Label* branch); |
1505 | 1510 |
1506 // Helper for finding the mark bits for an address. Afterwards, the | 1511 // Helper for finding the mark bits for an address. Afterwards, the |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1579 #define ACCESS_MASM(masm) \ | 1584 #define ACCESS_MASM(masm) \ |
1580 masm->stop(__FILE_LINE__); \ | 1585 masm->stop(__FILE_LINE__); \ |
1581 masm-> | 1586 masm-> |
1582 #else | 1587 #else |
1583 #define ACCESS_MASM(masm) masm-> | 1588 #define ACCESS_MASM(masm) masm-> |
1584 #endif | 1589 #endif |
1585 } // namespace internal | 1590 } // namespace internal |
1586 } // namespace v8 | 1591 } // namespace v8 |
1587 | 1592 |
1588 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 1593 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
OLD | NEW |