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;