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 |