244 // should generate this one.
245 static const bool match_rule_supported(int opcode);
246
247 // Used to determine if we have fast l2f conversion
248 // USII has it, USIII doesn't
249 static const bool convL2FSupported(void);
250
251 // Vector width in bytes
252 static const int vector_width_in_bytes(BasicType bt);
253
254 // Limits on vector size (number of elements).
255 static const int max_vector_size(const BasicType bt);
256 static const int min_vector_size(const BasicType bt);
257 static const bool vector_size_supported(const BasicType bt, int size) {
258 return (Matcher::max_vector_size(bt) >= size &&
259 Matcher::min_vector_size(bt) <= size);
260 }
261
262 // Vector ideal reg
263 static const int vector_ideal_reg(int len);
264
265 // CPU supports misaligned vectors store/load.
266 static const bool misaligned_vectors_ok();
267
268 // Used to determine a "low complexity" 64-bit constant. (Zero is simple.)
269 // The standard of comparison is one (StoreL ConL) vs. two (StoreI ConI).
270 // Depends on the details of 64-bit constant generation on the CPU.
271 static const bool isSimpleConstant64(jlong con);
272
273 // These calls are all generated by the ADLC
274
275 // TRUE - grows up, FALSE - grows down (Intel)
276 virtual bool stack_direction() const;
277
278 // Java-Java calling convention
279 // (what you use when Java calls Java)
280
281 // Alignment of stack in bytes, standard Intel word alignment is 4.
282 // Sparc probably wants at least double-word (8).
283 static uint stack_alignment_in_bytes();
|
244 // should generate this one.
245 static const bool match_rule_supported(int opcode);
246
247 // Used to determine if we have fast l2f conversion
248 // USII has it, USIII doesn't
249 static const bool convL2FSupported(void);
250
251 // Vector width in bytes
252 static const int vector_width_in_bytes(BasicType bt);
253
254 // Limits on vector size (number of elements).
255 static const int max_vector_size(const BasicType bt);
256 static const int min_vector_size(const BasicType bt);
257 static const bool vector_size_supported(const BasicType bt, int size) {
258 return (Matcher::max_vector_size(bt) >= size &&
259 Matcher::min_vector_size(bt) <= size);
260 }
261
262 // Vector ideal reg
263 static const int vector_ideal_reg(int len);
264 static const int vector_shift_count_ideal_reg(int len);
265
266 // CPU supports misaligned vectors store/load.
267 static const bool misaligned_vectors_ok();
268
269 // Used to determine a "low complexity" 64-bit constant. (Zero is simple.)
270 // The standard of comparison is one (StoreL ConL) vs. two (StoreI ConI).
271 // Depends on the details of 64-bit constant generation on the CPU.
272 static const bool isSimpleConstant64(jlong con);
273
274 // These calls are all generated by the ADLC
275
276 // TRUE - grows up, FALSE - grows down (Intel)
277 virtual bool stack_direction() const;
278
279 // Java-Java calling convention
280 // (what you use when Java calls Java)
281
282 // Alignment of stack in bytes, standard Intel word alignment is 4.
283 // Sparc probably wants at least double-word (8).
284 static uint stack_alignment_in_bytes();
|