From 62a033ecd7058f4a4354ebdcd667b3d7991e1f3d Mon Sep 17 00:00:00 2001 From: Kim Barrett Date: Thu, 22 Dec 2022 17:30:09 +0000 Subject: [PATCH] 8299191: Unnecessarily global friend functions for relocInfo Reviewed-by: chagedorn, kvn --- src/hotspot/share/asm/codeBuffer.cpp | 6 +++--- src/hotspot/share/code/relocInfo.cpp | 2 +- src/hotspot/share/code/relocInfo.hpp | 21 +++++++-------------- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/hotspot/share/asm/codeBuffer.cpp b/src/hotspot/share/asm/codeBuffer.cpp index 485fa53face..f9ffd169e38 100644 --- a/src/hotspot/share/asm/codeBuffer.cpp +++ b/src/hotspot/share/asm/codeBuffer.cpp @@ -348,8 +348,8 @@ void CodeSection::relocate(address at, RelocationHolder const& spec, int format) // each carrying the largest possible offset, to advance the locs_point. while (offset >= relocInfo::offset_limit()) { assert(end < locs_limit(), "adjust previous paragraph of code"); - *end++ = filler_relocInfo(); - offset -= filler_relocInfo().addr_offset(); + *end++ = relocInfo::filler_info(); + offset -= relocInfo::filler_info().addr_offset(); } // If it's a simple reloc with no data, we'll just write (rtype | offset). @@ -634,7 +634,7 @@ csize_t CodeBuffer::copy_relocations_to(address buf, csize_t buf_limit, bool onl code_point_so_far < new_code_point; code_point_so_far += jump) { jump = new_code_point - code_point_so_far; - relocInfo filler = filler_relocInfo(); + relocInfo filler = relocInfo::filler_info(); if (jump >= filler.addr_offset()) { jump = filler.addr_offset(); } else { // else shrink the filler to fit diff --git a/src/hotspot/share/code/relocInfo.cpp b/src/hotspot/share/code/relocInfo.cpp index 3c2f0277114..97f3ebd6055 100644 --- a/src/hotspot/share/code/relocInfo.cpp +++ b/src/hotspot/share/code/relocInfo.cpp @@ -86,7 +86,7 @@ relocInfo* relocInfo::finish_prefix(short* prefix_limit) { return this+1; } // cannot compact, so just update the count and return the limit pointer - (*this) = prefix_relocInfo(plen); // write new datalen + (*this) = prefix_info(plen); // write new datalen assert(data() + datalen() == prefix_limit, "pointers must line up"); return (relocInfo*)prefix_limit; } diff --git a/src/hotspot/share/code/relocInfo.hpp b/src/hotspot/share/code/relocInfo.hpp index 0266f171bf0..56a10731dcd 100644 --- a/src/hotspot/share/code/relocInfo.hpp +++ b/src/hotspot/share/code/relocInfo.hpp @@ -368,7 +368,9 @@ class relocInfo { // - to pad out the relocInfo array to the required oop alignment // - to disable old relocation information which is no longer applicable - inline friend relocInfo filler_relocInfo(); + static relocInfo filler_info() { + return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit); + } // Every non-prefix relocation may be preceded by at most one prefix, // which supplies 1 or more halfwords of associated data. Conventionally, @@ -378,7 +380,10 @@ class relocInfo { // "immediate" in the prefix header word itself. This optimization // is invisible outside this module.) - inline friend relocInfo prefix_relocInfo(int datalen); + static relocInfo prefix_info(int datalen = 0) { + assert(relocInfo::fits_into_immediate(datalen), "datalen in limits"); + return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); + } private: // an immediate relocInfo optimizes a prefix with one 10-bit unsigned value @@ -456,18 +461,6 @@ class name##_Relocation; APPLY_TO_RELOCATIONS(FORWARD_DECLARE_EACH_CLASS) #undef FORWARD_DECLARE_EACH_CLASS - - -inline relocInfo filler_relocInfo() { - return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit); -} - -inline relocInfo prefix_relocInfo(int datalen = 0) { - assert(relocInfo::fits_into_immediate(datalen), "datalen in limits"); - return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); -} - - // Holder for flyweight relocation objects. // Although the flyweight subclasses are of varying sizes, // the holder is "one size fits all".