hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
changeset 5695 7fbbde5b4e3e
parent 5687 b862d1f189bd
child 5702 201c5cde25bb
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Thu May 27 18:01:56 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Thu May 27 22:01:55 2010 -0700
@@ -2462,9 +2462,18 @@
       }
 #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);