src/cpu/x86/vm/c1_LIRAssembler_x86.cpp

Print this page

        

@@ -2460,13 +2460,22 @@
           break;
         default: ShouldNotReachHere();
       }
 #endif // _LP64
     } else {
+#ifdef _LP64
+      Register r_lo;
+      if (right->type() == T_OBJECT || right->type() == T_ARRAY) {
+        r_lo = right->as_register();
+      } else {
+        r_lo = right->as_register_lo();
+      }
+#else
       Register r_lo = right->as_register_lo();
       Register r_hi = right->as_register_hi();
       assert(l_lo != r_hi, "overwriting registers");
+#endif
       switch (code) {
         case lir_logic_and:
           __ andptr(l_lo, r_lo);
           NOT_LP64(__ andptr(l_hi, r_hi);)
           break;