1.1 --- a/src/share/vm/adlc/formssel.hpp Tue Oct 09 12:40:05 2012 -0700 1.2 +++ b/src/share/vm/adlc/formssel.hpp Tue Oct 09 16:09:31 2012 -0700 1.3 @@ -76,7 +76,7 @@ 1.4 private: 1.5 bool _ideal_only; // Not a user-defined instruction 1.6 // Members used for tracking CISC-spilling 1.7 - uint _cisc_spill_operand;// Which operand may cisc-spill 1.8 + int _cisc_spill_operand;// Which operand may cisc-spill 1.9 void set_cisc_spill_operand(uint op_index) { _cisc_spill_operand = op_index; } 1.10 bool _is_cisc_alternate; 1.11 InstructForm *_cisc_spill_alternate;// cisc possible replacement 1.12 @@ -103,7 +103,7 @@ 1.13 RewriteRule *_rewrule; // Rewrite rule for this instruction 1.14 FormatRule *_format; // Format for assembly generation 1.15 Peephole *_peephole; // List of peephole rules for instruction 1.16 - const char *_ins_pipe; // Instruction Scheduline description class 1.17 + const char *_ins_pipe; // Instruction Scheduling description class 1.18 1.19 uint *_uniq_idx; // Indexes of unique operands 1.20 int _uniq_idx_length; // Length of _uniq_idx array 1.21 @@ -198,6 +198,7 @@ 1.22 1.23 virtual const char *cost(); // Access ins_cost attribute 1.24 virtual uint num_opnds(); // Count of num_opnds for MachNode class 1.25 + // Counts USE_DEF opnds twice. See also num_unique_opnds(). 1.26 virtual uint num_post_match_opnds(); 1.27 virtual uint num_consts(FormDict &globals) const;// Constants in match rule 1.28 // Constants in match rule with specified type 1.29 @@ -228,6 +229,7 @@ 1.30 // Return number of relocation entries needed for this instruction. 1.31 virtual uint reloc(FormDict &globals); 1.32 1.33 + const char *opnd_ident(int idx); // Name of operand #idx. 1.34 const char *reduce_result(); 1.35 // Return the name of the operand on the right hand side of the binary match 1.36 // Return NULL if there is no right hand side 1.37 @@ -240,7 +242,7 @@ 1.38 // Check if this instruction can cisc-spill to 'alternate' 1.39 bool cisc_spills_to(ArchDesc &AD, InstructForm *alternate); 1.40 InstructForm *cisc_spill_alternate() { return _cisc_spill_alternate; } 1.41 - uint cisc_spill_operand() const { return _cisc_spill_operand; } 1.42 + int cisc_spill_operand() const { return _cisc_spill_operand; } 1.43 bool is_cisc_alternate() const { return _is_cisc_alternate; } 1.44 void set_cisc_alternate(bool val) { _is_cisc_alternate = val; } 1.45 const char *cisc_reg_mask_name() const { return _cisc_reg_mask_name; } 1.46 @@ -277,6 +279,7 @@ 1.47 return idx; 1.48 } 1.49 } 1.50 + const char *unique_opnd_ident(int idx); // Name of operand at unique idx. 1.51 1.52 // Operands which are only KILLs aren't part of the input array and 1.53 // require special handling in some cases. Their position in this 1.54 @@ -889,6 +892,7 @@ 1.55 1.56 void dump(); // Debug printer 1.57 void output(FILE *fp); // Write to output files 1.58 + const char* getUsedefName(); 1.59 1.60 public: 1.61 // Implementation depends upon working bit intersection and union. 1.62 @@ -1030,6 +1034,7 @@ 1.63 void matchrule_swap_commutative_op(const char* instr_ident, int count, int& match_rules_cnt); 1.64 1.65 void dump(); 1.66 + void output_short(FILE *fp); 1.67 void output(FILE *fp); 1.68 }; 1.69