77 // bad on others. Hence the machine-dependent table lookup. |
77 // bad on others. Hence the machine-dependent table lookup. |
78 const char *_must_clone; |
78 const char *_must_clone; |
79 |
79 |
80 // Find shared Nodes, or Nodes that otherwise are Matcher roots |
80 // Find shared Nodes, or Nodes that otherwise are Matcher roots |
81 void find_shared( Node *n ); |
81 void find_shared( Node *n ); |
|
82 #ifdef X86 |
|
83 bool is_bmi_pattern(Node *n, Node *m); |
|
84 #endif |
82 |
85 |
83 // Debug and profile information for nodes in old space: |
86 // Debug and profile information for nodes in old space: |
84 GrowableArray<Node_Notes*>* _old_node_note_array; |
87 GrowableArray<Node_Notes*>* _old_node_note_array; |
85 |
88 |
86 // Node labeling iterator for instruction selection |
89 // Node labeling iterator for instruction selection |
337 |
340 |
338 // Register for DIVL projection of divmodL |
341 // Register for DIVL projection of divmodL |
339 static RegMask divL_proj_mask(); |
342 static RegMask divL_proj_mask(); |
340 // Register for MODL projection of divmodL |
343 // Register for MODL projection of divmodL |
341 static RegMask modL_proj_mask(); |
344 static RegMask modL_proj_mask(); |
342 |
|
343 static const RegMask mathExactI_result_proj_mask(); |
|
344 static const RegMask mathExactL_result_proj_mask(); |
|
345 static const RegMask mathExactI_flags_proj_mask(); |
|
346 |
345 |
347 // Use hardware DIV instruction when it is faster than |
346 // Use hardware DIV instruction when it is faster than |
348 // a code which use multiply for division by constant. |
347 // a code which use multiply for division by constant. |
349 static bool use_asm_for_ldiv_by_con( jlong divisor ); |
348 static bool use_asm_for_ldiv_by_con( jlong divisor ); |
350 |
349 |