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) \
453 class name##_Relocation;
|
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_aarch64
434 # include "relocInfo_aarch64.hpp"
435 #endif
436
437 protected:
438 // Derived constant, based on format_width which is PD:
439 enum {
440 offset_width = nontype_width - format_width,
441 offset_mask = (1<<offset_width) - 1,
442 format_mask = (1<<format_width) - 1
443 };
444 public:
445 enum {
446 // Conservatively large estimate of maximum length (in shorts)
447 // of any relocation record.
448 // Extended format is length prefix, data words, and tag/offset suffix.
449 length_limit = 1 + 1 + (3*BytesPerWord/BytesPerShort) + 1,
450 have_format = format_width > 0
451 };
452 };
453
454 #define FORWARD_DECLARE_EACH_CLASS(name) \
455 class name##_Relocation;
|