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