104 FormatRule *_format; // Format for assembly generation |
104 FormatRule *_format; // Format for assembly generation |
105 Peephole *_peephole; // List of peephole rules for instruction |
105 Peephole *_peephole; // List of peephole rules for instruction |
106 const char *_ins_pipe; // Instruction Scheduling description class |
106 const char *_ins_pipe; // Instruction Scheduling description class |
107 |
107 |
108 uint *_uniq_idx; // Indexes of unique operands |
108 uint *_uniq_idx; // Indexes of unique operands |
109 int _uniq_idx_length; // Length of _uniq_idx array |
109 uint _uniq_idx_length; // Length of _uniq_idx array |
110 uint _num_uniq; // Number of unique operands |
110 uint _num_uniq; // Number of unique operands |
111 ComponentList _components; // List of Components matches MachNode's |
111 ComponentList _components; // List of Components matches MachNode's |
112 // operand structure |
112 // operand structure |
113 |
113 |
114 bool _has_call; // contain a call and caller save registers should be saved? |
114 bool _has_call; // contain a call and caller save registers should be saved? |
270 |
270 |
271 // Seach through operands to determine operands unique positions. |
271 // Seach through operands to determine operands unique positions. |
272 void set_unique_opnds(); |
272 void set_unique_opnds(); |
273 uint num_unique_opnds() { return _num_uniq; } |
273 uint num_unique_opnds() { return _num_uniq; } |
274 uint unique_opnds_idx(int idx) { |
274 uint unique_opnds_idx(int idx) { |
275 if( _uniq_idx != NULL && idx > 0 ) { |
275 if (_uniq_idx != NULL && idx > 0) { |
276 assert(idx < _uniq_idx_length, "out of bounds"); |
276 assert((uint)idx < _uniq_idx_length, "out of bounds"); |
277 return _uniq_idx[idx]; |
277 return _uniq_idx[idx]; |
278 } else { |
278 } else { |
279 return idx; |
279 return idx; |
280 } |
280 } |
281 } |
281 } |
282 const char *unique_opnd_ident(int idx); // Name of operand at unique idx. |
282 const char *unique_opnd_ident(uint idx); // Name of operand at unique idx. |
283 |
283 |
284 // Operands which are only KILLs aren't part of the input array and |
284 // Operands which are only KILLs aren't part of the input array and |
285 // require special handling in some cases. Their position in this |
285 // require special handling in some cases. Their position in this |
286 // operand list is higher than the number of unique operands. |
286 // operand list is higher than the number of unique operands. |
287 bool is_noninput_operand(uint idx) { |
287 bool is_noninput_operand(uint idx) { |