691 _section = sindex;
692 _target = address_from_scaled_offset(offset, base);
693 }
694
695 //// miscellaneous methods
696 oop* oop_Relocation::oop_addr() {
697 int n = _oop_index;
698 if (n == 0) {
699 // oop is stored in the code stream
700 return (oop*) pd_address_in_code();
701 } else {
702 // oop is stored in table at nmethod::oops_begin
703 return code()->oop_addr_at(n);
704 }
705 }
706
707
708 oop oop_Relocation::oop_value() {
709 oop v = *oop_addr();
710 // clean inline caches store a special pseudo-null
711 if (v == (oop)Universe::non_oop_word()) v = NULL;
712 return v;
713 }
714
715
716 void oop_Relocation::fix_oop_relocation() {
717 if (!oop_is_immediate()) {
718 // get the oop from the pool, and re-insert it into the instruction:
719 set_value(value());
720 }
721 }
722
723
724 void oop_Relocation::verify_oop_relocation() {
725 if (!oop_is_immediate()) {
726 // get the oop from the pool, and re-insert it into the instruction:
727 verify_value(value());
728 }
729 }
730
731 // meta data versions
|
691 _section = sindex;
692 _target = address_from_scaled_offset(offset, base);
693 }
694
695 //// miscellaneous methods
696 oop* oop_Relocation::oop_addr() {
697 int n = _oop_index;
698 if (n == 0) {
699 // oop is stored in the code stream
700 return (oop*) pd_address_in_code();
701 } else {
702 // oop is stored in table at nmethod::oops_begin
703 return code()->oop_addr_at(n);
704 }
705 }
706
707
708 oop oop_Relocation::oop_value() {
709 oop v = *oop_addr();
710 // clean inline caches store a special pseudo-null
711 if (v == Universe::non_oop_word()) v = NULL;
712 return v;
713 }
714
715
716 void oop_Relocation::fix_oop_relocation() {
717 if (!oop_is_immediate()) {
718 // get the oop from the pool, and re-insert it into the instruction:
719 set_value(value());
720 }
721 }
722
723
724 void oop_Relocation::verify_oop_relocation() {
725 if (!oop_is_immediate()) {
726 // get the oop from the pool, and re-insert it into the instruction:
727 verify_value(value());
728 }
729 }
730
731 // meta data versions
|