| 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 |