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 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 | 377 |
378 void RelocInfoWriter::WriteExtraTaggedIntData(int data_delta, int top_tag) { | 378 void RelocInfoWriter::WriteExtraTaggedIntData(int data_delta, int top_tag) { |
379 WriteExtraTag(kDataJumpExtraTag, top_tag); | 379 WriteExtraTag(kDataJumpExtraTag, top_tag); |
380 for (int i = 0; i < kIntSize; i++) { | 380 for (int i = 0; i < kIntSize; i++) { |
381 *--pos_ = static_cast<byte>(data_delta); | 381 *--pos_ = static_cast<byte>(data_delta); |
382 // Signed right shift is arithmetic shift. Tested in test-utils.cc. | 382 // Signed right shift is arithmetic shift. Tested in test-utils.cc. |
383 data_delta = data_delta >> kBitsPerByte; | 383 data_delta = data_delta >> kBitsPerByte; |
384 } | 384 } |
385 } | 385 } |
386 | 386 |
| 387 |
387 void RelocInfoWriter::WriteExtraTaggedConstPoolData(int data) { | 388 void RelocInfoWriter::WriteExtraTaggedConstPoolData(int data) { |
388 WriteExtraTag(kConstPoolExtraTag, kConstPoolTag); | 389 WriteExtraTag(kConstPoolExtraTag, kConstPoolTag); |
389 for (int i = 0; i < kIntSize; i++) { | 390 for (int i = 0; i < kIntSize; i++) { |
390 *--pos_ = static_cast<byte>(data); | 391 *--pos_ = static_cast<byte>(data); |
391 // Signed right shift is arithmetic shift. Tested in test-utils.cc. | 392 // Signed right shift is arithmetic shift. Tested in test-utils.cc. |
392 data = data >> kBitsPerByte; | 393 data = data >> kBitsPerByte; |
393 } | 394 } |
394 } | 395 } |
395 | 396 |
| 397 |
396 void RelocInfoWriter::WriteExtraTaggedData(intptr_t data_delta, int top_tag) { | 398 void RelocInfoWriter::WriteExtraTaggedData(intptr_t data_delta, int top_tag) { |
397 WriteExtraTag(kDataJumpExtraTag, top_tag); | 399 WriteExtraTag(kDataJumpExtraTag, top_tag); |
398 for (int i = 0; i < kIntptrSize; i++) { | 400 for (int i = 0; i < kIntptrSize; i++) { |
399 *--pos_ = static_cast<byte>(data_delta); | 401 *--pos_ = static_cast<byte>(data_delta); |
400 // Signed right shift is arithmetic shift. Tested in test-utils.cc. | 402 // Signed right shift is arithmetic shift. Tested in test-utils.cc. |
401 data_delta = data_delta >> kBitsPerByte; | 403 data_delta = data_delta >> kBitsPerByte; |
402 } | 404 } |
403 } | 405 } |
404 | 406 |
405 | 407 |
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1304 return ExternalReference( | 1306 return ExternalReference( |
1305 reinterpret_cast<void*>(&double_constants.the_hole_nan)); | 1307 reinterpret_cast<void*>(&double_constants.the_hole_nan)); |
1306 } | 1308 } |
1307 | 1309 |
1308 | 1310 |
1309 #ifndef V8_INTERPRETED_REGEXP | 1311 #ifndef V8_INTERPRETED_REGEXP |
1310 | 1312 |
1311 ExternalReference ExternalReference::re_check_stack_guard_state( | 1313 ExternalReference ExternalReference::re_check_stack_guard_state( |
1312 Isolate* isolate) { | 1314 Isolate* isolate) { |
1313 Address function; | 1315 Address function; |
1314 #ifdef V8_TARGET_ARCH_X64 | 1316 #if V8_TARGET_ARCH_X64 |
1315 function = FUNCTION_ADDR(RegExpMacroAssemblerX64::CheckStackGuardState); | 1317 function = FUNCTION_ADDR(RegExpMacroAssemblerX64::CheckStackGuardState); |
1316 #elif V8_TARGET_ARCH_IA32 | 1318 #elif V8_TARGET_ARCH_IA32 |
1317 function = FUNCTION_ADDR(RegExpMacroAssemblerIA32::CheckStackGuardState); | 1319 function = FUNCTION_ADDR(RegExpMacroAssemblerIA32::CheckStackGuardState); |
1318 #elif V8_TARGET_ARCH_A64 | 1320 #elif V8_TARGET_ARCH_A64 |
1319 function = FUNCTION_ADDR(RegExpMacroAssemblerA64::CheckStackGuardState); | 1321 function = FUNCTION_ADDR(RegExpMacroAssemblerA64::CheckStackGuardState); |
1320 #elif V8_TARGET_ARCH_ARM | 1322 #elif V8_TARGET_ARCH_ARM |
1321 function = FUNCTION_ADDR(RegExpMacroAssemblerARM::CheckStackGuardState); | 1323 function = FUNCTION_ADDR(RegExpMacroAssemblerARM::CheckStackGuardState); |
1322 #elif V8_TARGET_ARCH_MIPS | 1324 #elif V8_TARGET_ARCH_MIPS |
1323 function = FUNCTION_ADDR(RegExpMacroAssemblerMIPS::CheckStackGuardState); | 1325 function = FUNCTION_ADDR(RegExpMacroAssemblerMIPS::CheckStackGuardState); |
1324 #else | 1326 #else |
1325 UNREACHABLE(); | 1327 UNREACHABLE(); |
1326 #endif | 1328 #endif |
1327 return ExternalReference(Redirect(isolate, function)); | 1329 return ExternalReference(Redirect(isolate, function)); |
1328 } | 1330 } |
1329 | 1331 |
| 1332 |
1330 ExternalReference ExternalReference::re_grow_stack(Isolate* isolate) { | 1333 ExternalReference ExternalReference::re_grow_stack(Isolate* isolate) { |
1331 return ExternalReference( | 1334 return ExternalReference( |
1332 Redirect(isolate, FUNCTION_ADDR(NativeRegExpMacroAssembler::GrowStack))); | 1335 Redirect(isolate, FUNCTION_ADDR(NativeRegExpMacroAssembler::GrowStack))); |
1333 } | 1336 } |
1334 | 1337 |
1335 ExternalReference ExternalReference::re_case_insensitive_compare_uc16( | 1338 ExternalReference ExternalReference::re_case_insensitive_compare_uc16( |
1336 Isolate* isolate) { | 1339 Isolate* isolate) { |
1337 return ExternalReference(Redirect( | 1340 return ExternalReference(Redirect( |
1338 isolate, | 1341 isolate, |
1339 FUNCTION_ADDR(NativeRegExpMacroAssembler::CaseInsensitiveCompareUC16))); | 1342 FUNCTION_ADDR(NativeRegExpMacroAssembler::CaseInsensitiveCompareUC16))); |
1340 } | 1343 } |
1341 | 1344 |
| 1345 |
1342 ExternalReference ExternalReference::re_word_character_map() { | 1346 ExternalReference ExternalReference::re_word_character_map() { |
1343 return ExternalReference( | 1347 return ExternalReference( |
1344 NativeRegExpMacroAssembler::word_character_map_address()); | 1348 NativeRegExpMacroAssembler::word_character_map_address()); |
1345 } | 1349 } |
1346 | 1350 |
1347 ExternalReference ExternalReference::address_of_static_offsets_vector( | 1351 ExternalReference ExternalReference::address_of_static_offsets_vector( |
1348 Isolate* isolate) { | 1352 Isolate* isolate) { |
1349 return ExternalReference( | 1353 return ExternalReference( |
1350 reinterpret_cast<Address>(isolate->jsregexp_static_offsets_vector())); | 1354 reinterpret_cast<Address>(isolate->jsregexp_static_offsets_vector())); |
1351 } | 1355 } |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1667 assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position); | 1671 assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position); |
1668 state_.written_position = state_.current_position; | 1672 state_.written_position = state_.current_position; |
1669 written = true; | 1673 written = true; |
1670 } | 1674 } |
1671 | 1675 |
1672 // Return whether something was written. | 1676 // Return whether something was written. |
1673 return written; | 1677 return written; |
1674 } | 1678 } |
1675 | 1679 |
1676 } } // namespace v8::internal | 1680 } } // namespace v8::internal |
OLD | NEW |