RFR (M): guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset

Chuck Rasbold rasbold at google.com
Wed Mar 20 10:02:16 PDT 2013


http://cr.openjdk.java.net/~rasbold/XXXXXXX/webrev.00/

We occasionally get this guarantee failure from an older JVM (HotSpot
22):

#  Internal Error (assembler_x86.inline.hpp:46)
#  guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds
#  8-bit offset

I'm encountering a case in C2 where a branch is incorrectly
converted to a short branch under very specific conditions. The root
cause occurs when a call and safepoint are adjacent in
consecutive blocks.  In shorten_branches(), an off-by-one
error exists in calculating the size of the trailing (safepoint) block when
it
potentially requires loop padding.

This bug still exists in the current HotSpot 25, although I don't have
a testcase that reproduces there.

However, with the improved guarantee from my webrev, but without the
actual fix, a hs25 CTW run on rt.jar fails.

Can a bug be opened? Can I get an Oracle engineer to sponsor and
review my change?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130320/a62e8d45/attachment.html 


More information about the hotspot-compiler-dev mailing list