606 extern "C" nmethod* findnm(intptr_t addr) { |
606 extern "C" nmethod* findnm(intptr_t addr) { |
607 Command c("findnm"); |
607 Command c("findnm"); |
608 return CodeCache::find_nmethod((address)addr); |
608 return CodeCache::find_nmethod((address)addr); |
609 } |
609 } |
610 |
610 |
611 static address same_page(address x, address y) { |
|
612 intptr_t page_bits = -os::vm_page_size(); |
|
613 if ((intptr_t(x) & page_bits) == (intptr_t(y) & page_bits)) { |
|
614 return x; |
|
615 } else if (x > y) { |
|
616 return (address)(intptr_t(y) | ~page_bits) + 1; |
|
617 } else { |
|
618 return (address)(intptr_t(y) & page_bits); |
|
619 } |
|
620 } |
|
621 |
|
622 |
|
623 // Another interface that isn't ambiguous in dbx. |
611 // Another interface that isn't ambiguous in dbx. |
624 // Can we someday rename the other find to hsfind? |
612 // Can we someday rename the other find to hsfind? |
625 extern "C" void hsfind(intptr_t x) { |
613 extern "C" void hsfind(intptr_t x) { |
626 Command c("hsfind"); |
614 Command c("hsfind"); |
627 os::print_location(tty, x, false); |
615 os::print_location(tty, x, false); |