Mercurial > hg > truffle
comparison src/share/vm/adlc/archDesc.cpp @ 14521:29ccc4cbabca
Merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 12 Mar 2014 13:30:08 +0100 |
parents | cd5d10655495 |
children | 4ca6dc0799b6 |
comparison
equal
deleted
inserted
replaced
14520:f84115370178 | 14521:29ccc4cbabca |
---|---|
1 // | 1 // |
2 // Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. | 2 // Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 // | 4 // |
5 // This code is free software; you can redistribute it and/or modify it | 5 // This code is free software; you can redistribute it and/or modify it |
6 // under the terms of the GNU General Public License version 2 only, as | 6 // under the terms of the GNU General Public License version 2 only, as |
7 // published by the Free Software Foundation. | 7 // published by the Free Software Foundation. |
41 } | 41 } |
42 *upper = '\0'; | 42 *upper = '\0'; |
43 return result; | 43 return result; |
44 } | 44 } |
45 | 45 |
46 // Utilities to characterize effect statements | |
47 static bool is_def(int usedef) { | |
48 switch(usedef) { | |
49 case Component::DEF: | |
50 case Component::USE_DEF: return true; break; | |
51 } | |
52 return false; | |
53 } | |
54 | |
55 static bool is_use(int usedef) { | |
56 switch(usedef) { | |
57 case Component::USE: | |
58 case Component::USE_DEF: | |
59 case Component::USE_KILL: return true; break; | |
60 } | |
61 return false; | |
62 } | |
63 | |
64 static bool is_kill(int usedef) { | |
65 switch(usedef) { | |
66 case Component::KILL: | |
67 case Component::USE_KILL: return true; break; | |
68 } | |
69 return false; | |
70 } | |
71 | |
72 //---------------------------ChainList Methods------------------------------- | 46 //---------------------------ChainList Methods------------------------------- |
73 ChainList::ChainList() { | 47 ChainList::ChainList() { |
74 } | 48 } |
75 | 49 |
76 void ChainList::insert(const char *name, const char *cost, const char *rule) { | 50 void ChainList::insert(const char *name, const char *cost, const char *rule) { |
170 _preproc_table(cmpstr,hashstr, Form::arena), | 144 _preproc_table(cmpstr,hashstr, Form::arena), |
171 _idealIndex(cmpstr,hashstr, Form::arena), | 145 _idealIndex(cmpstr,hashstr, Form::arena), |
172 _internalOps(cmpstr,hashstr, Form::arena), | 146 _internalOps(cmpstr,hashstr, Form::arena), |
173 _internalMatch(cmpstr,hashstr, Form::arena), | 147 _internalMatch(cmpstr,hashstr, Form::arena), |
174 _chainRules(cmpstr,hashstr, Form::arena), | 148 _chainRules(cmpstr,hashstr, Form::arena), |
175 _cisc_spill_operand(NULL) { | 149 _cisc_spill_operand(NULL), |
150 _needs_clone_jvms(false) { | |
176 | 151 |
177 // Initialize the opcode to MatchList table with NULLs | 152 // Initialize the opcode to MatchList table with NULLs |
178 for( int i=0; i<_last_opcode; ++i ) { | 153 for( int i=0; i<_last_opcode; ++i ) { |
179 _mlistab[i] = NULL; | 154 _mlistab[i] = NULL; |
180 } | 155 } |
1190 || strcmp(idealName,"CmpL") == 0 | 1165 || strcmp(idealName,"CmpL") == 0 |
1191 || strcmp(idealName,"CmpD") == 0 | 1166 || strcmp(idealName,"CmpD") == 0 |
1192 || strcmp(idealName,"CmpF") == 0 | 1167 || strcmp(idealName,"CmpF") == 0 |
1193 || strcmp(idealName,"FastLock") == 0 | 1168 || strcmp(idealName,"FastLock") == 0 |
1194 || strcmp(idealName,"FastUnlock") == 0 | 1169 || strcmp(idealName,"FastUnlock") == 0 |
1195 || strcmp(idealName,"AddExactI") == 0 | 1170 || strcmp(idealName,"OverflowAddI") == 0 |
1196 || strcmp(idealName,"AddExactL") == 0 | 1171 || strcmp(idealName,"OverflowAddL") == 0 |
1197 || strcmp(idealName,"SubExactI") == 0 | 1172 || strcmp(idealName,"OverflowSubI") == 0 |
1198 || strcmp(idealName,"SubExactL") == 0 | 1173 || strcmp(idealName,"OverflowSubL") == 0 |
1199 || strcmp(idealName,"MulExactI") == 0 | 1174 || strcmp(idealName,"OverflowMulI") == 0 |
1200 || strcmp(idealName,"MulExactL") == 0 | 1175 || strcmp(idealName,"OverflowMulL") == 0 |
1201 || strcmp(idealName,"NegExactI") == 0 | |
1202 || strcmp(idealName,"NegExactL") == 0 | |
1203 || strcmp(idealName,"FlagsProj") == 0 | |
1204 || strcmp(idealName,"Bool") == 0 | 1176 || strcmp(idealName,"Bool") == 0 |
1205 || strcmp(idealName,"Binary") == 0 ) { | 1177 || strcmp(idealName,"Binary") == 0 ) { |
1206 // Removed ConI from the must_clone list. CPUs that cannot use | 1178 // Removed ConI from the must_clone list. CPUs that cannot use |
1207 // large constants as immediates manifest the constant as an | 1179 // large constants as immediates manifest the constant as an |
1208 // instruction. The must_clone flag prevents the constant from | 1180 // instruction. The must_clone flag prevents the constant from |