217 return _register_num;
218 }
219
220 void RegDef::dump() {
221 output(stderr);
222 }
223
224 void RegDef::output(FILE *fp) { // Write info to output files
225 fprintf(fp,"RegDef: %s (%s) encode as %s using number %d\n",
226 _regname, (_callconv?_callconv:""), _register_encode, _register_num);
227 fprintf(fp,"\n");
228 }
229
230
231 //------------------------------RegClass---------------------------------------
232 // Construct a register class into which registers will be inserted
233 RegClass::RegClass(const char* classid) : _stack_or_reg(false), _classid(classid), _regDef(cmpstr, hashstr, Form::arena) {
234 }
235
236 RegClass::~RegClass() {
237 delete _classid;
238 }
239
240 // record a register in this class
241 void RegClass::addReg(RegDef *regDef) {
242 _regDefs.addName(regDef->_regname);
243 _regDef.Insert((void*)regDef->_regname, regDef);
244 }
245
246 // Number of registers in class
247 uint RegClass::size() const {
248 return _regDef.Size();
249 }
250
251 const RegDef *RegClass::get_RegDef(const char *rd_name) const {
252 return (const RegDef*)_regDef[rd_name];
253 }
254
255 void RegClass::reset() {
256 _regDefs.reset();
257 }
|
217 return _register_num;
218 }
219
220 void RegDef::dump() {
221 output(stderr);
222 }
223
224 void RegDef::output(FILE *fp) { // Write info to output files
225 fprintf(fp,"RegDef: %s (%s) encode as %s using number %d\n",
226 _regname, (_callconv?_callconv:""), _register_encode, _register_num);
227 fprintf(fp,"\n");
228 }
229
230
231 //------------------------------RegClass---------------------------------------
232 // Construct a register class into which registers will be inserted
233 RegClass::RegClass(const char* classid) : _stack_or_reg(false), _classid(classid), _regDef(cmpstr, hashstr, Form::arena) {
234 }
235
236 RegClass::~RegClass() {
237 }
238
239 // record a register in this class
240 void RegClass::addReg(RegDef *regDef) {
241 _regDefs.addName(regDef->_regname);
242 _regDef.Insert((void*)regDef->_regname, regDef);
243 }
244
245 // Number of registers in class
246 uint RegClass::size() const {
247 return _regDef.Size();
248 }
249
250 const RegDef *RegClass::get_RegDef(const char *rd_name) const {
251 return (const RegDef*)_regDef[rd_name];
252 }
253
254 void RegClass::reset() {
255 _regDefs.reset();
256 }
|