RFR: 8256215: Shenandoah: re-organize saving/restoring machine state in assembler code

Aleksey Shipilev shade at openjdk.java.net
Wed Jan 27 12:54:46 UTC 2021


$ CONF=linux-x86-server-fastdebug make images run-test TEST=compiler/c1/Test6855215.java TEST_VM_OPTS="-XX:+UseShenandoahGC"

# Internal Error (/home/shade/trunks/jdk/src/hotspot/cpu/x86/assembler_x86.cpp:3047), pid=1427307, tid=1427311
# Error: assert(VM_Version::supports_sse2()) failed

V [libjvm.so+0x53f9e8] Assembler::movsd(Address, XMMRegisterImpl*)+0x168
V [libjvm.so+0x14647bd] save_xmm_registers(MacroAssembler*)+0x9d
V [libjvm.so+0x1465d8f] ShenandoahBarrierSetAssembler::load_reference_barrier(MacroAssembler*, RegisterImpl*, Address, ShenandoahBarrierSet::AccessKind)+0x91f

This only affects x86_32, as x86_64 uses at least UseSSE >= 2 at all times.

Additional testing:
 - [ ] `tier1`, Linux x86_64 `-XX:+UseShenandoahGC`
 - [ ] `tier1`, Linux x86_32 `-XX:+UseShenandoahGC`
 - [ ] `tier1`, Linux x86_32 `-XX:+UseShenandoahGC -XX:UseSSE=0`
 - [ ] `tier1`, Linux x86_32 `-XX:+UseShenandoahGC -XX:UseSSE=1`

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

Commit messages:
 - Merge branch 'master' into JDK-8256215-shenandoah-no-sse2-fail
 - Simplify
 - Merge branch 'master' into JDK-8256215-shenandoah-no-sse2-fail
 - Merge branch 'master' into JDK-8256215-shenandoah-no-sse2-fail
 - Merge branch 'master' into JDK-8256215-shenandoah-no-sse2-fail
 - 8256215: Some x86_32 Shenandoah tests fail due to using unsupported SSE2 instructions

Changes: https://git.openjdk.java.net/jdk/pull/1172/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1172&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8256215
  Stats: 118 lines in 2 files changed: 69 ins; 13 del; 36 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1172.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1172/head:pull/1172

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


More information about the shenandoah-dev mailing list