< prev index next >

src/share/vm/opto/matcher.hpp

Print this page




 252   OptoReg::Name _new_SP;
 253 
 254   // Register number of the stack slot corresponding to the highest outgoing
 255   // argument on the stack.  Per the Big Picture in the AD file, it is:
 256   //   _new_SP + max outgoing arguments of all calls
 257   OptoReg::Name _out_arg_limit;
 258 
 259   OptoRegPair *_parm_regs;        // Array of machine registers per argument
 260   RegMask *_calling_convention_mask; // Array of RegMasks per argument
 261 
 262   // Does matcher have a match rule for this ideal node?
 263   static const bool has_match_rule(int opcode);
 264   static const bool _hasMatchRule[_last_opcode];
 265 
 266   // Does matcher have a match rule for this ideal node and is the
 267   // predicate (if there is one) true?
 268   // NOTE: If this function is used more commonly in the future, ADLC
 269   // should generate this one.
 270   static const bool match_rule_supported(int opcode);
 271 



 272   // Used to determine if we have fast l2f conversion
 273   // USII has it, USIII doesn't
 274   static const bool convL2FSupported(void);
 275 
 276   // Vector width in bytes
 277   static const int vector_width_in_bytes(BasicType bt);
 278 
 279   // Limits on vector size (number of elements).
 280   static const int max_vector_size(const BasicType bt);
 281   static const int min_vector_size(const BasicType bt);
 282   static const bool vector_size_supported(const BasicType bt, int size) {
 283     return (Matcher::max_vector_size(bt) >= size &&
 284             Matcher::min_vector_size(bt) <= size);
 285   }
 286 
 287   // Vector ideal reg
 288   static const int vector_ideal_reg(int len);
 289   static const int vector_shift_count_ideal_reg(int len);
 290 
 291   // CPU supports misaligned vectors store/load.




 252   OptoReg::Name _new_SP;
 253 
 254   // Register number of the stack slot corresponding to the highest outgoing
 255   // argument on the stack.  Per the Big Picture in the AD file, it is:
 256   //   _new_SP + max outgoing arguments of all calls
 257   OptoReg::Name _out_arg_limit;
 258 
 259   OptoRegPair *_parm_regs;        // Array of machine registers per argument
 260   RegMask *_calling_convention_mask; // Array of RegMasks per argument
 261 
 262   // Does matcher have a match rule for this ideal node?
 263   static const bool has_match_rule(int opcode);
 264   static const bool _hasMatchRule[_last_opcode];
 265 
 266   // Does matcher have a match rule for this ideal node and is the
 267   // predicate (if there is one) true?
 268   // NOTE: If this function is used more commonly in the future, ADLC
 269   // should generate this one.
 270   static const bool match_rule_supported(int opcode);
 271 
 272   // Some uarchs have different sized float register resources
 273   static const int float_pressure_scale(void);
 274 
 275   // Used to determine if we have fast l2f conversion
 276   // USII has it, USIII doesn't
 277   static const bool convL2FSupported(void);
 278 
 279   // Vector width in bytes
 280   static const int vector_width_in_bytes(BasicType bt);
 281 
 282   // Limits on vector size (number of elements).
 283   static const int max_vector_size(const BasicType bt);
 284   static const int min_vector_size(const BasicType bt);
 285   static const bool vector_size_supported(const BasicType bt, int size) {
 286     return (Matcher::max_vector_size(bt) >= size &&
 287             Matcher::min_vector_size(bt) <= size);
 288   }
 289 
 290   // Vector ideal reg
 291   static const int vector_ideal_reg(int len);
 292   static const int vector_shift_count_ideal_reg(int len);
 293 
 294   // CPU supports misaligned vectors store/load.


< prev index next >