1.1 --- a/src/share/vm/c1/c1_LinearScan.cpp Mon Nov 04 21:59:54 2013 +0100 1.2 +++ b/src/share/vm/c1/c1_LinearScan.cpp Tue Nov 05 00:59:30 2013 -0800 1.3 @@ -1138,8 +1138,10 @@ 1.4 } 1.5 } 1.6 } 1.7 - 1.8 - } else if (opr_type != T_LONG) { 1.9 + // We want to sometimes use logical operations on pointers, in particular in GC barriers. 1.10 + // Since 64bit logical operations do not current support operands on stack, we have to make sure 1.11 + // T_OBJECT doesn't get spilled along with T_LONG. 1.12 + } else if (opr_type != T_LONG LP64_ONLY(&& opr_type != T_OBJECT)) { 1.13 // integer instruction (note: long operands must always be in register) 1.14 switch (op->code()) { 1.15 case lir_cmp: