557 _section = sindex;
558 _target = address_from_scaled_offset(offset, base);
559 }
560
561 //// miscellaneous methods
562 oop* oop_Relocation::oop_addr() {
563 int n = _oop_index;
564 if (n == 0) {
565 // oop is stored in the code stream
566 return (oop*) pd_address_in_code();
567 } else {
568 // oop is stored in table at nmethod::oops_begin
569 return code()->oop_addr_at(n);
570 }
571 }
572
573
574 oop oop_Relocation::oop_value() {
575 oop v = *oop_addr();
576 // clean inline caches store a special pseudo-null
577 if (v == (oop)Universe::non_oop_word()) v = NULL;
578 return v;
579 }
580
581
582 void oop_Relocation::fix_oop_relocation() {
583 if (!oop_is_immediate()) {
584 // get the oop from the pool, and re-insert it into the instruction:
585 set_value(value());
586 }
587 }
588
589
590 void oop_Relocation::verify_oop_relocation() {
591 if (!oop_is_immediate()) {
592 // get the oop from the pool, and re-insert it into the instruction:
593 verify_value(value());
594 }
595 }
596
597 // meta data versions
|
557 _section = sindex;
558 _target = address_from_scaled_offset(offset, base);
559 }
560
561 //// miscellaneous methods
562 oop* oop_Relocation::oop_addr() {
563 int n = _oop_index;
564 if (n == 0) {
565 // oop is stored in the code stream
566 return (oop*) pd_address_in_code();
567 } else {
568 // oop is stored in table at nmethod::oops_begin
569 return code()->oop_addr_at(n);
570 }
571 }
572
573
574 oop oop_Relocation::oop_value() {
575 oop v = *oop_addr();
576 // clean inline caches store a special pseudo-null
577 if (v == Universe::non_oop_word()) v = NULL;
578 return v;
579 }
580
581
582 void oop_Relocation::fix_oop_relocation() {
583 if (!oop_is_immediate()) {
584 // get the oop from the pool, and re-insert it into the instruction:
585 set_value(value());
586 }
587 }
588
589
590 void oop_Relocation::verify_oop_relocation() {
591 if (!oop_is_immediate()) {
592 // get the oop from the pool, and re-insert it into the instruction:
593 verify_value(value());
594 }
595 }
596
597 // meta data versions
|