Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_LIR.cpp @ 11004:87a6f2df28e2
8002160: Compilation issue with adlc using latest SunStudio compilers
Summary: modify declaration of 'swap' overloading; dodge optimizer bug in c1_LIR.cpp
Reviewed-by: kvn, jrose
author | drchase |
---|---|
date | Mon, 17 Jun 2013 12:35:53 -0400 |
parents | acadb114c818 |
children | b800986664f4 |
comparison
equal
deleted
inserted
replaced
11003:ac91879aa56f | 11004:87a6f2df28e2 |
---|---|
199 #ifndef PRODUCT | 199 #ifndef PRODUCT |
200 void LIR_OprDesc::validate_type() const { | 200 void LIR_OprDesc::validate_type() const { |
201 | 201 |
202 #ifdef ASSERT | 202 #ifdef ASSERT |
203 if (!is_pointer() && !is_illegal()) { | 203 if (!is_pointer() && !is_illegal()) { |
204 OprKind kindfield = kind_field(); // Factored out because of compiler bug, see 8002160 | |
204 switch (as_BasicType(type_field())) { | 205 switch (as_BasicType(type_field())) { |
205 case T_LONG: | 206 case T_LONG: |
206 assert((kind_field() == cpu_register || kind_field() == stack_value) && | 207 assert((kindfield == cpu_register || kindfield == stack_value) && |
207 size_field() == double_size, "must match"); | 208 size_field() == double_size, "must match"); |
208 break; | 209 break; |
209 case T_FLOAT: | 210 case T_FLOAT: |
210 // FP return values can be also in CPU registers on ARM and PPC (softfp ABI) | 211 // FP return values can be also in CPU registers on ARM and PPC (softfp ABI) |
211 assert((kind_field() == fpu_register || kind_field() == stack_value | 212 assert((kindfield == fpu_register || kindfield == stack_value |
212 ARM_ONLY(|| kind_field() == cpu_register) | 213 ARM_ONLY(|| kindfield == cpu_register) |
213 PPC_ONLY(|| kind_field() == cpu_register) ) && | 214 PPC_ONLY(|| kindfield == cpu_register) ) && |
214 size_field() == single_size, "must match"); | 215 size_field() == single_size, "must match"); |
215 break; | 216 break; |
216 case T_DOUBLE: | 217 case T_DOUBLE: |
217 // FP return values can be also in CPU registers on ARM and PPC (softfp ABI) | 218 // FP return values can be also in CPU registers on ARM and PPC (softfp ABI) |
218 assert((kind_field() == fpu_register || kind_field() == stack_value | 219 assert((kindfield == fpu_register || kindfield == stack_value |
219 ARM_ONLY(|| kind_field() == cpu_register) | 220 ARM_ONLY(|| kindfield == cpu_register) |
220 PPC_ONLY(|| kind_field() == cpu_register) ) && | 221 PPC_ONLY(|| kindfield == cpu_register) ) && |
221 size_field() == double_size, "must match"); | 222 size_field() == double_size, "must match"); |
222 break; | 223 break; |
223 case T_BOOLEAN: | 224 case T_BOOLEAN: |
224 case T_CHAR: | 225 case T_CHAR: |
225 case T_BYTE: | 226 case T_BYTE: |
227 case T_INT: | 228 case T_INT: |
228 case T_ADDRESS: | 229 case T_ADDRESS: |
229 case T_OBJECT: | 230 case T_OBJECT: |
230 case T_METADATA: | 231 case T_METADATA: |
231 case T_ARRAY: | 232 case T_ARRAY: |
232 assert((kind_field() == cpu_register || kind_field() == stack_value) && | 233 assert((kindfield == cpu_register || kindfield == stack_value) && |
233 size_field() == single_size, "must match"); | 234 size_field() == single_size, "must match"); |
234 break; | 235 break; |
235 | 236 |
236 case T_ILLEGAL: | 237 case T_ILLEGAL: |
237 // XXX TKR also means unknown right now | 238 // XXX TKR also means unknown right now |