| 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 #ifndef V8_X87_MACRO_ASSEMBLER_X87_H_ | 5 #ifndef V8_X87_MACRO_ASSEMBLER_X87_H_ |
| 6 #define V8_X87_MACRO_ASSEMBLER_X87_H_ | 6 #define V8_X87_MACRO_ASSEMBLER_X87_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 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 | 534 |
| 535 // --------------------------------------------------------------------------- | 535 // --------------------------------------------------------------------------- |
| 536 // Exception handling | 536 // Exception handling |
| 537 | 537 |
| 538 // Push a new try handler and link it into try handler chain. | 538 // Push a new try handler and link it into try handler chain. |
| 539 void PushTryHandler(StackHandler::Kind kind, int handler_index); | 539 void PushTryHandler(StackHandler::Kind kind, int handler_index); |
| 540 | 540 |
| 541 // Unlink the stack handler on top of the stack from the try handler chain. | 541 // Unlink the stack handler on top of the stack from the try handler chain. |
| 542 void PopTryHandler(); | 542 void PopTryHandler(); |
| 543 | 543 |
| 544 // Throw to the top handler in the try hander chain. | |
| 545 void Throw(Register value); | |
| 546 | |
| 547 // Throw past all JS frames to the top JS entry frame. | |
| 548 void ThrowUncatchable(Register value); | |
| 549 | |
| 550 // --------------------------------------------------------------------------- | 544 // --------------------------------------------------------------------------- |
| 551 // Inline caching support | 545 // Inline caching support |
| 552 | 546 |
| 553 // Generate code for checking access rights - used for security checks | 547 // Generate code for checking access rights - used for security checks |
| 554 // on access to global objects across environments. The holder register | 548 // on access to global objects across environments. The holder register |
| 555 // is left untouched, but the scratch register is clobbered. | 549 // is left untouched, but the scratch register is clobbered. |
| 556 void CheckAccessGlobalProxy(Register holder_reg, | 550 void CheckAccessGlobalProxy(Register holder_reg, |
| 557 Register scratch1, | 551 Register scratch1, |
| 558 Register scratch2, | 552 Register scratch2, |
| 559 Label* miss); | 553 Label* miss); |
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 Label::Distance condition_met_distance = Label::kFar); | 957 Label::Distance condition_met_distance = Label::kFar); |
| 964 | 958 |
| 965 // Helper for finding the mark bits for an address. Afterwards, the | 959 // Helper for finding the mark bits for an address. Afterwards, the |
| 966 // bitmap register points at the word with the mark bits and the mask | 960 // bitmap register points at the word with the mark bits and the mask |
| 967 // the position of the first bit. Uses ecx as scratch and leaves addr_reg | 961 // the position of the first bit. Uses ecx as scratch and leaves addr_reg |
| 968 // unchanged. | 962 // unchanged. |
| 969 inline void GetMarkBits(Register addr_reg, | 963 inline void GetMarkBits(Register addr_reg, |
| 970 Register bitmap_reg, | 964 Register bitmap_reg, |
| 971 Register mask_reg); | 965 Register mask_reg); |
| 972 | 966 |
| 973 // Helper for throwing exceptions. Compute a handler address and jump to | |
| 974 // it. See the implementation for register usage. | |
| 975 void JumpToHandlerEntry(); | |
| 976 | |
| 977 // Compute memory operands for safepoint stack slots. | 967 // Compute memory operands for safepoint stack slots. |
| 978 Operand SafepointRegisterSlot(Register reg); | 968 Operand SafepointRegisterSlot(Register reg); |
| 979 static int SafepointRegisterStackIndex(int reg_code); | 969 static int SafepointRegisterStackIndex(int reg_code); |
| 980 | 970 |
| 981 // Needs access to SafepointRegisterStackIndex for compiled frame | 971 // Needs access to SafepointRegisterStackIndex for compiled frame |
| 982 // traversal. | 972 // traversal. |
| 983 friend class StandardFrame; | 973 friend class StandardFrame; |
| 984 }; | 974 }; |
| 985 | 975 |
| 986 | 976 |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1058 } \ | 1048 } \ |
| 1059 masm-> | 1049 masm-> |
| 1060 #else | 1050 #else |
| 1061 #define ACCESS_MASM(masm) masm-> | 1051 #define ACCESS_MASM(masm) masm-> |
| 1062 #endif | 1052 #endif |
| 1063 | 1053 |
| 1064 | 1054 |
| 1065 } } // namespace v8::internal | 1055 } } // namespace v8::internal |
| 1066 | 1056 |
| 1067 #endif // V8_X87_MACRO_ASSEMBLER_X87_H_ | 1057 #endif // V8_X87_MACRO_ASSEMBLER_X87_H_ |
| OLD | NEW |