RFR: 8241502: C2: Migrate x86_64.ad to MacroAssembler [v9]

Vladimir Kozlov kvn at openjdk.java.net
Fri Apr 30 17:04:57 UTC 2021

On Thu, 29 Apr 2021 20:37:12 GMT, John Tortugo <github.com+2249648+JohnTortugo at openjdk.org> wrote:

>> Relates to: https://bugs.openjdk.java.net/browse/JDK-8241502
>> Tested on: Linux tier1, 2 and 3
>> Can you please take a look whether these changes are going in the direction expected or not? If it is, I'll continue working on the `JDK-8241502` but I'd like to split it in a few PRs since it's a lot of changes.
> John Tortugo has updated the pull request incrementally with one additional commit since the last revision:
>   Encode cdql/cdqq using MacroAssembler.

Preliminary result shows compiler/c2/cr6340864/TestLongVect.java test failure on linux and windows -x64 when run with not G1 gc (Serial, Parallel, ZGC) (the line could be different again due to use of latest source base):

#  Internal Error (/workspace/open/src/hotspot/cpu/x86/assembler_x86.cpp:10753), pid=9483, tid=9495
#  assert(isByte(imm8)) failed: not a byte
# JRE version: Java(TM) SE Runtime Environment (17.0) (fastdebug build 17-internal+0-LTS-2021-04-30-0438565.jdkgit)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 17-internal+0-LTS-2021-04-30-0438565.jdkgit, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x6471b4]  Assembler::sarq(RegisterImpl*, int)+0x164

V  [libjvm.so+0x6471b4]  Assembler::sarq(RegisterImpl*, int)+0x164
V  [libjvm.so+0x34d566]  sarL_rReg_immNode::emit(CodeBuffer&, PhaseRegAlloc*) const+0xb6
V  [libjvm.so+0x1588551]  PhaseOutput::scratch_emit_size(Node const*)+0x421
V  [libjvm.so+0x157f3f8]  PhaseOutput::shorten_branches(unsigned int*)+0x2b8
V  [libjvm.so+0x159165a]  PhaseOutput::Output()+0xcca
V  [libjvm.so+0xa0636b]  Compile::Code_Gen()+0x43b


PR: https://git.openjdk.java.net/jdk/pull/2420

More information about the hotspot-compiler-dev mailing list