Mercurial > hg > graal-compiler
comparison src/share/vm/c1/c1_LinearScan.cpp @ 13102:f9f4503a4ab5
Merge
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Thu, 21 Nov 2013 15:04:54 +0100 |
parents | a905d33ce13a |
children | de6a9e811145 |
comparison
equal
deleted
inserted
replaced
13101:790ebab62d23 | 13102:f9f4503a4ab5 |
---|---|
73 | 73 |
74 #endif | 74 #endif |
75 | 75 |
76 // Map BasicType to spill size in 32-bit words, matching VMReg's notion of words | 76 // Map BasicType to spill size in 32-bit words, matching VMReg's notion of words |
77 #ifdef _LP64 | 77 #ifdef _LP64 |
78 static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 0, 1, -1}; | 78 static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 0, 2, 1, 2, 1, -1}; |
79 #else | 79 #else |
80 static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 0, 1, -1}; | 80 static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 0, 1, -1, 1, 1, -1}; |
81 #endif | 81 #endif |
82 | 82 |
83 | 83 |
84 // Implementation of LinearScan | 84 // Implementation of LinearScan |
85 | 85 |
1136 return shouldHaveRegister; | 1136 return shouldHaveRegister; |
1137 } | 1137 } |
1138 } | 1138 } |
1139 } | 1139 } |
1140 } | 1140 } |
1141 | 1141 // We want to sometimes use logical operations on pointers, in particular in GC barriers. |
1142 } else if (opr_type != T_LONG) { | 1142 // Since 64bit logical operations do not current support operands on stack, we have to make sure |
1143 // T_OBJECT doesn't get spilled along with T_LONG. | |
1144 } else if (opr_type != T_LONG LP64_ONLY(&& opr_type != T_OBJECT)) { | |
1143 // integer instruction (note: long operands must always be in register) | 1145 // integer instruction (note: long operands must always be in register) |
1144 switch (op->code()) { | 1146 switch (op->code()) { |
1145 case lir_cmp: | 1147 case lir_cmp: |
1146 case lir_add: | 1148 case lir_add: |
1147 case lir_sub: | 1149 case lir_sub: |