RFR: JDK-8223244: Fix usage of ARRAYCOPY_DISJOINT decorator

Aleksey Shipilev shade at redhat.com
Tue May 7 13:59:39 UTC 2019


On 5/3/19 4:40 PM, Roman Kennke wrote:
> Right. Added a comment there, and also checked and fixed x86_32:
> http://cr.openjdk.java.net/~rkennke/JDK-8223244/webrev.02/

Um. Old code:

  39     if (!checkcast && !obj_int) {
  40       // Save count for barrier
  41       __ movptr(r11, count);
  42     } else if (disjoint && obj_int) {
  43       // Save dst in r11 in the disjoint case
  44       __ movq(r11, dst);
  45     }

New code:

  39     if (!checkcast) {
  40       if (!obj_int) {
  41         // Save count for barrier
  42         __ movptr(r11, count);
  43       } else if (disjoint) {
  44         // Save dst in r11 in the disjoint case
  45         __ movq(r11, dst);
  46       }
  47     }

(Scribbles down truth tables). With checkcast=T, obj_int=T, disjoint=T old code saves "dst". New
code does not save anything. Is that the fix for new Shenandoah code?

-Aleksey



More information about the hotspot-runtime-dev mailing list