1.1 --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Thu May 27 18:01:56 2010 -0700 1.2 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Thu May 27 22:01:55 2010 -0700 1.3 @@ -2462,9 +2462,18 @@ 1.4 } 1.5 #endif // _LP64 1.6 } else { 1.7 +#ifdef _LP64 1.8 + Register r_lo; 1.9 + if (right->type() == T_OBJECT || right->type() == T_ARRAY) { 1.10 + r_lo = right->as_register(); 1.11 + } else { 1.12 + r_lo = right->as_register_lo(); 1.13 + } 1.14 +#else 1.15 Register r_lo = right->as_register_lo(); 1.16 Register r_hi = right->as_register_hi(); 1.17 assert(l_lo != r_hi, "overwriting registers"); 1.18 +#endif 1.19 switch (code) { 1.20 case lir_logic_and: 1.21 __ andptr(l_lo, r_lo);