src/share/vm/adlc/formssel.hpp

changeset 4161
d336b3173277
parent 3882
8c92982cbbc4
child 5221
f15fe46d8c00
     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  

mercurial