Z flag value will not be set by 'repne' if RCX == 0 since 'repne' does not change flags.
Setting Z = 1 before repne_scanl() in check_klass_subtype_slow_path():
     // pointer were to sneak in here.  Note that we have already loaded the
     // Klass::super_check_offset from the super_klass in the fast path,
     // so if there is a null in that register, we are already in the afterlife.
+    push(rax);
+    xorq(rax,rax); // Set Z = 1
+    pop(rax);
     repne_scanl();
will cause next exception:
% java -Xmx128M -jar GCBasher.jar -time:300
Exception in thread "main" java.lang.IncompatibleClassChangeError
        at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:153)
        at java.lang.StringCoding.decode(StringCoding.java:193)
        at java.lang.String.<init>(String.java:452)
        at java.util.jar.Attributes.read(Attributes.java:418)
        at java.util.jar.Manifest.read(Manifest.java:199)
        at java.util.jar.Manifest.<init>(Manifest.java:69)
        at java.util.jar.JarFile.getManifestFromReference(JarFile.java:177)
        at java.util.jar.JarFile.getManifest(JarFile.java:163)
j