413 // Both methods takes old_type, so it is able to performe sanity checks on the information removed. 414 static void change_reloc_info_for_address(RelocIterator *itr, address pc, relocType old_type, relocType new_type); 415 static void remove_reloc_info_for_address(RelocIterator *itr, address pc, relocType old_type); 416 417 // Machine dependent stuff 418 #ifdef TARGET_ARCH_x86 419 # include "relocInfo_x86.hpp" 420 #endif 421 #ifdef TARGET_ARCH_sparc 422 # include "relocInfo_sparc.hpp" 423 #endif 424 #ifdef TARGET_ARCH_zero 425 # include "relocInfo_zero.hpp" 426 #endif 427 #ifdef TARGET_ARCH_arm 428 # include "relocInfo_arm.hpp" 429 #endif 430 #ifdef TARGET_ARCH_ppc 431 # include "relocInfo_ppc.hpp" 432 #endif 433 434 435 protected: 436 // Derived constant, based on format_width which is PD: 437 enum { 438 offset_width = nontype_width - format_width, 439 offset_mask = (1<<offset_width) - 1, 440 format_mask = (1<<format_width) - 1 441 }; 442 public: 443 enum { 444 // Conservatively large estimate of maximum length (in shorts) 445 // of any relocation record. 446 // Extended format is length prefix, data words, and tag/offset suffix. 447 length_limit = 1 + 1 + (3*BytesPerWord/BytesPerShort) + 1, 448 have_format = format_width > 0 449 }; 450 }; 451 452 #define FORWARD_DECLARE_EACH_CLASS(name) \ | 413 // Both methods takes old_type, so it is able to performe sanity checks on the information removed. 414 static void change_reloc_info_for_address(RelocIterator *itr, address pc, relocType old_type, relocType new_type); 415 static void remove_reloc_info_for_address(RelocIterator *itr, address pc, relocType old_type); 416 417 // Machine dependent stuff 418 #ifdef TARGET_ARCH_x86 419 # include "relocInfo_x86.hpp" 420 #endif 421 #ifdef TARGET_ARCH_sparc 422 # include "relocInfo_sparc.hpp" 423 #endif 424 #ifdef TARGET_ARCH_zero 425 # include "relocInfo_zero.hpp" 426 #endif 427 #ifdef TARGET_ARCH_arm 428 # include "relocInfo_arm.hpp" 429 #endif 430 #ifdef TARGET_ARCH_ppc 431 # include "relocInfo_ppc.hpp" 432 #endif 433 #ifdef TARGET_ARCH_aarch32 434 # include "relocInfo_aarch32.hpp" 435 #endif 436 437 438 protected: 439 // Derived constant, based on format_width which is PD: 440 enum { 441 offset_width = nontype_width - format_width, 442 offset_mask = (1<<offset_width) - 1, 443 format_mask = (1<<format_width) - 1 444 }; 445 public: 446 enum { 447 // Conservatively large estimate of maximum length (in shorts) 448 // of any relocation record. 449 // Extended format is length prefix, data words, and tag/offset suffix. 450 length_limit = 1 + 1 + (3*BytesPerWord/BytesPerShort) + 1, 451 have_format = format_width > 0 452 }; 453 }; 454 455 #define FORWARD_DECLARE_EACH_CLASS(name) \ |