202 }
203
204 // Register number used in machine-independent code
205 uint32 RegDef::register_num() const {
206 return _register_num;
207 }
208
209 void RegDef::dump() {
210 output(stderr);
211 }
212
213 void RegDef::output(FILE *fp) { // Write info to output files
214 fprintf(fp,"RegDef: %s (%s) encode as %s using number %d\n",
215 _regname, (_callconv?_callconv:""), _register_encode, _register_num);
216 fprintf(fp,"\n");
217 }
218
219
220 //------------------------------RegClass---------------------------------------
221 // Construct a register class into which registers will be inserted
222 RegClass::RegClass(const char *classid) : _stack_or_reg(false), _classid(classid), _regDef(cmpstr,hashstr, Form::arena) {
223 }
224
225 // record a register in this class
226 void RegClass::addReg(RegDef *regDef) {
227 _regDefs.addName(regDef->_regname);
228 _regDef.Insert((void*)regDef->_regname, regDef);
229 }
230
231 // Number of registers in class
232 uint RegClass::size() const {
233 return _regDef.Size();
234 }
235
236 const RegDef *RegClass::get_RegDef(const char *rd_name) const {
237 return (const RegDef*)_regDef[rd_name];
238 }
239
240 void RegClass::reset() {
241 _regDefs.reset();
242 }
|
202 }
203
204 // Register number used in machine-independent code
205 uint32 RegDef::register_num() const {
206 return _register_num;
207 }
208
209 void RegDef::dump() {
210 output(stderr);
211 }
212
213 void RegDef::output(FILE *fp) { // Write info to output files
214 fprintf(fp,"RegDef: %s (%s) encode as %s using number %d\n",
215 _regname, (_callconv?_callconv:""), _register_encode, _register_num);
216 fprintf(fp,"\n");
217 }
218
219
220 //------------------------------RegClass---------------------------------------
221 // Construct a register class into which registers will be inserted
222 RegClass::RegClass(const char *classid) : _stack_or_reg(false), _classid(classid), _regDef(cmpstr,hashstr, Form::arena),
223 _user_defined(NULL)
224 {
225 }
226
227 // record a register in this class
228 void RegClass::addReg(RegDef *regDef) {
229 _regDefs.addName(regDef->_regname);
230 _regDef.Insert((void*)regDef->_regname, regDef);
231 }
232
233 // Number of registers in class
234 uint RegClass::size() const {
235 return _regDef.Size();
236 }
237
238 const RegDef *RegClass::get_RegDef(const char *rd_name) const {
239 return (const RegDef*)_regDef[rd_name];
240 }
241
242 void RegClass::reset() {
243 _regDefs.reset();
244 }
|