OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 20 matching lines...) Expand all Loading... |
31 // The original source code covered by the above license above has been | 31 // The original source code covered by the above license above has been |
32 // modified significantly by Google Inc. | 32 // modified significantly by Google Inc. |
33 // Copyright 2012 the V8 project authors. All rights reserved. | 33 // Copyright 2012 the V8 project authors. All rights reserved. |
34 | 34 |
35 #ifndef V8_ASSEMBLER_H_ | 35 #ifndef V8_ASSEMBLER_H_ |
36 #define V8_ASSEMBLER_H_ | 36 #define V8_ASSEMBLER_H_ |
37 | 37 |
38 #include "src/allocation.h" | 38 #include "src/allocation.h" |
39 #include "src/builtins/builtins.h" | 39 #include "src/builtins/builtins.h" |
40 #include "src/deoptimize-reason.h" | 40 #include "src/deoptimize-reason.h" |
| 41 #include "src/globals.h" |
41 #include "src/isolate.h" | 42 #include "src/isolate.h" |
42 #include "src/log.h" | 43 #include "src/log.h" |
43 #include "src/register-configuration.h" | 44 #include "src/register-configuration.h" |
44 #include "src/runtime/runtime.h" | 45 #include "src/runtime/runtime.h" |
45 | 46 |
46 namespace v8 { | 47 namespace v8 { |
47 | 48 |
48 // Forward declarations. | 49 // Forward declarations. |
49 class ApiFunction; | 50 class ApiFunction; |
50 | 51 |
(...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
954 static ExternalReference keyed_lookup_cache_keys(Isolate* isolate); | 955 static ExternalReference keyed_lookup_cache_keys(Isolate* isolate); |
955 static ExternalReference keyed_lookup_cache_field_offsets(Isolate* isolate); | 956 static ExternalReference keyed_lookup_cache_field_offsets(Isolate* isolate); |
956 | 957 |
957 // Static variable Heap::roots_array_start() | 958 // Static variable Heap::roots_array_start() |
958 static ExternalReference roots_array_start(Isolate* isolate); | 959 static ExternalReference roots_array_start(Isolate* isolate); |
959 | 960 |
960 // Static variable Heap::allocation_sites_list_address() | 961 // Static variable Heap::allocation_sites_list_address() |
961 static ExternalReference allocation_sites_list_address(Isolate* isolate); | 962 static ExternalReference allocation_sites_list_address(Isolate* isolate); |
962 | 963 |
963 // Static variable StackGuard::address_of_jslimit() | 964 // Static variable StackGuard::address_of_jslimit() |
964 static ExternalReference address_of_stack_limit(Isolate* isolate); | 965 V8_EXPORT_PRIVATE static ExternalReference address_of_stack_limit( |
| 966 Isolate* isolate); |
965 | 967 |
966 // Static variable StackGuard::address_of_real_jslimit() | 968 // Static variable StackGuard::address_of_real_jslimit() |
967 static ExternalReference address_of_real_stack_limit(Isolate* isolate); | 969 static ExternalReference address_of_real_stack_limit(Isolate* isolate); |
968 | 970 |
969 // Static variable RegExpStack::limit_address() | 971 // Static variable RegExpStack::limit_address() |
970 static ExternalReference address_of_regexp_stack_limit(Isolate* isolate); | 972 static ExternalReference address_of_regexp_stack_limit(Isolate* isolate); |
971 | 973 |
972 // Static variables for RegExp. | 974 // Static variables for RegExp. |
973 static ExternalReference address_of_static_offsets_vector(Isolate* isolate); | 975 static ExternalReference address_of_static_offsets_vector(Isolate* isolate); |
974 static ExternalReference address_of_regexp_stack_memory_address( | 976 static ExternalReference address_of_regexp_stack_memory_address( |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1040 static ExternalReference is_tail_call_elimination_enabled_address( | 1042 static ExternalReference is_tail_call_elimination_enabled_address( |
1041 Isolate* isolate); | 1043 Isolate* isolate); |
1042 | 1044 |
1043 static ExternalReference debug_is_active_address(Isolate* isolate); | 1045 static ExternalReference debug_is_active_address(Isolate* isolate); |
1044 static ExternalReference debug_after_break_target_address(Isolate* isolate); | 1046 static ExternalReference debug_after_break_target_address(Isolate* isolate); |
1045 | 1047 |
1046 static ExternalReference is_profiling_address(Isolate* isolate); | 1048 static ExternalReference is_profiling_address(Isolate* isolate); |
1047 static ExternalReference invoke_function_callback(Isolate* isolate); | 1049 static ExternalReference invoke_function_callback(Isolate* isolate); |
1048 static ExternalReference invoke_accessor_getter_callback(Isolate* isolate); | 1050 static ExternalReference invoke_accessor_getter_callback(Isolate* isolate); |
1049 | 1051 |
1050 static ExternalReference runtime_function_table_address(Isolate* isolate); | 1052 V8_EXPORT_PRIVATE static ExternalReference runtime_function_table_address( |
| 1053 Isolate* isolate); |
1051 | 1054 |
1052 Address address() const { return reinterpret_cast<Address>(address_); } | 1055 Address address() const { return reinterpret_cast<Address>(address_); } |
1053 | 1056 |
1054 // Used to read out the last step action of the debugger. | 1057 // Used to read out the last step action of the debugger. |
1055 static ExternalReference debug_last_step_action_address(Isolate* isolate); | 1058 static ExternalReference debug_last_step_action_address(Isolate* isolate); |
1056 | 1059 |
1057 // Used to check for suspended generator, used for stepping across await call. | 1060 // Used to check for suspended generator, used for stepping across await call. |
1058 static ExternalReference debug_suspended_generator_address(Isolate* isolate); | 1061 static ExternalReference debug_suspended_generator_address(Isolate* isolate); |
1059 | 1062 |
1060 #ifndef V8_INTERPRETED_REGEXP | 1063 #ifndef V8_INTERPRETED_REGEXP |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 isolate->external_reference_redirector()); | 1103 isolate->external_reference_redirector()); |
1101 void* address = reinterpret_cast<void*>(address_arg); | 1104 void* address = reinterpret_cast<void*>(address_arg); |
1102 void* answer = | 1105 void* answer = |
1103 (redirector == NULL) ? address : (*redirector)(isolate, address, type); | 1106 (redirector == NULL) ? address : (*redirector)(isolate, address, type); |
1104 return answer; | 1107 return answer; |
1105 } | 1108 } |
1106 | 1109 |
1107 void* address_; | 1110 void* address_; |
1108 }; | 1111 }; |
1109 | 1112 |
1110 bool operator==(ExternalReference, ExternalReference); | 1113 V8_EXPORT_PRIVATE bool operator==(ExternalReference, ExternalReference); |
1111 bool operator!=(ExternalReference, ExternalReference); | 1114 bool operator!=(ExternalReference, ExternalReference); |
1112 | 1115 |
1113 size_t hash_value(ExternalReference); | 1116 size_t hash_value(ExternalReference); |
1114 | 1117 |
1115 std::ostream& operator<<(std::ostream&, ExternalReference); | 1118 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream&, ExternalReference); |
1116 | 1119 |
1117 // ----------------------------------------------------------------------------- | 1120 // ----------------------------------------------------------------------------- |
1118 // Utility functions | 1121 // Utility functions |
1119 | 1122 |
1120 inline int NumberOfBitsSet(uint32_t x) { | 1123 inline int NumberOfBitsSet(uint32_t x) { |
1121 unsigned int num_bits_set; | 1124 unsigned int num_bits_set; |
1122 for (num_bits_set = 0; x; x >>= 1) { | 1125 for (num_bits_set = 0; x; x >>= 1) { |
1123 num_bits_set += x & 1; | 1126 num_bits_set += x & 1; |
1124 } | 1127 } |
1125 return num_bits_set; | 1128 return num_bits_set; |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1281 std::vector<ConstantPoolEntry> shared_entries; | 1284 std::vector<ConstantPoolEntry> shared_entries; |
1282 }; | 1285 }; |
1283 | 1286 |
1284 Label emitted_label_; // Records pc_offset of emitted pool | 1287 Label emitted_label_; // Records pc_offset of emitted pool |
1285 PerTypeEntryInfo info_[ConstantPoolEntry::NUMBER_OF_TYPES]; | 1288 PerTypeEntryInfo info_[ConstantPoolEntry::NUMBER_OF_TYPES]; |
1286 }; | 1289 }; |
1287 | 1290 |
1288 } // namespace internal | 1291 } // namespace internal |
1289 } // namespace v8 | 1292 } // namespace v8 |
1290 #endif // V8_ASSEMBLER_H_ | 1293 #endif // V8_ASSEMBLER_H_ |
OLD | NEW |