src/share/vm/c1/c1_LinearScan.cpp

changeset 6069
a905d33ce13a
parent 5994
9acbfe04b5c3
child 6198
55fb97c4c58d
     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:

mercurial