Mercurial > hg > truffle
comparison src/share/vm/c1/c1_LIR.cpp @ 304:dc7f315e41f7
5108146: Merge i486 and amd64 cpu directories
6459804: Want client (c1) compiler for x86_64 (amd64) for faster start-up
Reviewed-by: kvn
author | never |
---|---|
date | Wed, 27 Aug 2008 00:21:55 -0700 |
parents | d1605aabd0a1 |
children | ff1a29907b6c |
comparison
equal
deleted
inserted
replaced
303:fa4d1d240383 | 304:dc7f315e41f7 |
---|---|
35 | 35 |
36 Register LIR_OprDesc::as_register_hi() const { | 36 Register LIR_OprDesc::as_register_hi() const { |
37 return FrameMap::cpu_rnr2reg(cpu_regnrHi()); | 37 return FrameMap::cpu_rnr2reg(cpu_regnrHi()); |
38 } | 38 } |
39 | 39 |
40 #ifdef IA32 | 40 #if defined(X86) |
41 | 41 |
42 XMMRegister LIR_OprDesc::as_xmm_float_reg() const { | 42 XMMRegister LIR_OprDesc::as_xmm_float_reg() const { |
43 return FrameMap::nr2xmmreg(xmm_regnr()); | 43 return FrameMap::nr2xmmreg(xmm_regnr()); |
44 } | 44 } |
45 | 45 |
46 XMMRegister LIR_OprDesc::as_xmm_double_reg() const { | 46 XMMRegister LIR_OprDesc::as_xmm_double_reg() const { |
47 assert(xmm_regnrLo() == xmm_regnrHi(), "assumed in calculation"); | 47 assert(xmm_regnrLo() == xmm_regnrHi(), "assumed in calculation"); |
48 return FrameMap::nr2xmmreg(xmm_regnrLo()); | 48 return FrameMap::nr2xmmreg(xmm_regnrLo()); |
49 } | 49 } |
50 | 50 |
51 #endif | 51 #endif // X86 |
52 | 52 |
53 | 53 |
54 #ifdef SPARC | 54 #ifdef SPARC |
55 | 55 |
56 FloatRegister LIR_OprDesc::as_float_reg() const { | 56 FloatRegister LIR_OprDesc::as_float_reg() const { |
79 case addressTag: return LIR_OprFact::intConst(type->as_AddressConstant()->value()); | 79 case addressTag: return LIR_OprFact::intConst(type->as_AddressConstant()->value()); |
80 case intTag : return LIR_OprFact::intConst(type->as_IntConstant()->value()); | 80 case intTag : return LIR_OprFact::intConst(type->as_IntConstant()->value()); |
81 case floatTag : return LIR_OprFact::floatConst(type->as_FloatConstant()->value()); | 81 case floatTag : return LIR_OprFact::floatConst(type->as_FloatConstant()->value()); |
82 case longTag : return LIR_OprFact::longConst(type->as_LongConstant()->value()); | 82 case longTag : return LIR_OprFact::longConst(type->as_LongConstant()->value()); |
83 case doubleTag : return LIR_OprFact::doubleConst(type->as_DoubleConstant()->value()); | 83 case doubleTag : return LIR_OprFact::doubleConst(type->as_DoubleConstant()->value()); |
84 default: ShouldNotReachHere(); | 84 default: ShouldNotReachHere(); return LIR_OprFact::intConst(-1); |
85 } | 85 } |
86 } | 86 } |
87 | 87 |
88 | 88 |
89 LIR_Opr LIR_OprFact::dummy_value_type(ValueType* type) { | 89 LIR_Opr LIR_OprFact::dummy_value_type(ValueType* type) { |
92 case addressTag: | 92 case addressTag: |
93 case intTag: return LIR_OprFact::intConst(0); | 93 case intTag: return LIR_OprFact::intConst(0); |
94 case floatTag: return LIR_OprFact::floatConst(0.0); | 94 case floatTag: return LIR_OprFact::floatConst(0.0); |
95 case longTag: return LIR_OprFact::longConst(0); | 95 case longTag: return LIR_OprFact::longConst(0); |
96 case doubleTag: return LIR_OprFact::doubleConst(0.0); | 96 case doubleTag: return LIR_OprFact::doubleConst(0.0); |
97 default: ShouldNotReachHere(); | 97 default: ShouldNotReachHere(); return LIR_OprFact::intConst(-1); |
98 } | 98 } |
99 return illegalOpr; | 99 return illegalOpr; |
100 } | 100 } |
101 | 101 |
102 | 102 |
160 case T_ILLEGAL: | 160 case T_ILLEGAL: |
161 return '?'; | 161 return '?'; |
162 | 162 |
163 default: | 163 default: |
164 ShouldNotReachHere(); | 164 ShouldNotReachHere(); |
165 return '?'; | |
165 } | 166 } |
166 } | 167 } |
167 | 168 |
168 #ifndef PRODUCT | 169 #ifndef PRODUCT |
169 void LIR_OprDesc::validate_type() const { | 170 void LIR_OprDesc::validate_type() const { |
1372 } else if (is_single_cpu()) { | 1373 } else if (is_single_cpu()) { |
1373 out->print(as_register()->name()); | 1374 out->print(as_register()->name()); |
1374 } else if (is_double_cpu()) { | 1375 } else if (is_double_cpu()) { |
1375 out->print(as_register_hi()->name()); | 1376 out->print(as_register_hi()->name()); |
1376 out->print(as_register_lo()->name()); | 1377 out->print(as_register_lo()->name()); |
1377 #ifdef IA32 | 1378 #if defined(X86) |
1378 } else if (is_single_xmm()) { | 1379 } else if (is_single_xmm()) { |
1379 out->print(as_xmm_float_reg()->name()); | 1380 out->print(as_xmm_float_reg()->name()); |
1380 } else if (is_double_xmm()) { | 1381 } else if (is_double_xmm()) { |
1381 out->print(as_xmm_double_reg()->name()); | 1382 out->print(as_xmm_double_reg()->name()); |
1382 } else if (is_single_fpu()) { | 1383 } else if (is_single_fpu()) { |