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

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Aug 25 20:05:32 UTC 2018


http://cr.openjdk.java.net/~kvn/8209594/webrev.05/
https://bugs.openjdk.java.net/browse/JDK-8209594

All platforms are affected. Please, test.

I instrumented code to generated biggest code and find all possible incorrect short jumps. This is the result.

Changed jump instruction patching API to added jump's source location in debug build but implemented it only on x86. I 
tired to search instructions by code offsets. I used very simple macro:

#define jmpb(L) jmpb_0(L, __FILE__, __LINE__)

'do {} while(0)' does not work here because I need to replace non-static method. I will be glad if someone can give 
better suggestion how implement this macro.

Fixed incorrect avx512 code in macroAssembler_x86.cpp and x86.ad file. There were missing instructions and incorrect 
instructions (copy-paste typos).

Fixed C2 scratch buffer sizing. It did not take into account everything and as result from MAX_inst_size=1024 only 700 
bytes were available. I hit this issue when RTM locking was generated for FastLock node.

Tested tier1-3 on all our platforms. And also running these tiers on avx512 machine.

-- 
Thanks,
Vladimir


More information about the hotspot-dev mailing list