RFR: 8351256: Improve printing of runtime call stub names in disassember output

Vladimir Kozlov kvn at openjdk.org
Wed Mar 5 19:52:57 UTC 2025


On Wed, 5 Mar 2025 09:13:02 GMT, Andrew Dinn <adinn at openjdk.org> wrote:

> Fixes printing of runtime stub call targets in disassembler listings.

And one more in `nmethod.cpp` which fixes the issue in both, mainline and leyden.
`RelocInfo::none` may point to the same address as following relocation info:

         @0x000000010ec23436: 0002
relocInfo at 0x000000010ec23436 [type=0(none) addr=0x000000010ec234c8 offset=8]
         @0x000000010ec23438: 3000
relocInfo at 0x000000010ec23438 [type=6(runtime_call) addr=0x000000010ec234c8 offset=0] | [destination=0x000000010ec1f400] Blob::ExceptionBlob


As result the real relocation info for this address is not printed: 


[Exception Handler]
  0x000000010ca8c1c8:   adrp            x8, #0x10ca85000    ;   {no_reloc}



The fix:


@@ -3550,7 +3550,10 @@ const char* nmethod::reloc_string_for(u_char* begin, u_char* end) {
   while (iter.next()) {
     have_one = true;
     switch (iter.type()) {
-        case relocInfo::none:                  return "no_reloc";
+        case relocInfo::none: {
+          // Skip it and check next
+          break;
+        }
         case relocInfo::oop_type: {
           // Get a non-resizable resource-allocated stringStream.
           // Our callees make use of (nested) ResourceMarks.


After fix:


[Exception Handler]
  0x000000010ec234c8:   adrp            x8, #0x10ec1f000    ;   {runtime_call ExceptionBlob}

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23915#issuecomment-2701916728


More information about the hotspot-compiler-dev mailing list