changeset 53170:6493751663b3 lworld

[lworld] Re-enable quick instanceof with Q-descriptors
author fparain
date Fri, 07 Dec 2018 11:33:12 -0500
parents 9900d7728065
children 5e355d28824a
files src/hotspot/cpu/x86/templateTable_x86.cpp
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/hotspot/cpu/x86/templateTable_x86.cpp	Fri Dec 07 11:55:28 2018 +0100
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp	Fri Dec 07 11:33:12 2018 -0500
@@ -4558,10 +4558,11 @@
   __ get_cpool_and_tags(rcx, rdx); // rcx=cpool, rdx=tags array
   __ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
   // See if bytecode has already been quicked
-  __ cmpb(Address(rdx, rbx,
-                  Address::times_1,
-                  Array<u1>::base_offset_in_bytes()),
-          JVM_CONSTANT_Class);
+  __ movzbl(rdx, Address(rdx, rbx,
+        Address::times_1,
+        Array<u1>::base_offset_in_bytes()));
+  __ andl (rdx, ~JVM_CONSTANT_QDESC_BIT);
+  __ cmpl(rdx, JVM_CONSTANT_Class);
   __ jcc(Assembler::equal, quicked);
 
   __ push(atos); // save receiver for result, and for GC