221 |
221 |
222 // Matching, CFG layout, allocation, code generation |
222 // Matching, CFG layout, allocation, code generation |
223 PhaseCFG* _cfg; // Results of CFG finding |
223 PhaseCFG* _cfg; // Results of CFG finding |
224 bool _select_24_bit_instr; // We selected an instruction with a 24-bit result |
224 bool _select_24_bit_instr; // We selected an instruction with a 24-bit result |
225 bool _in_24_bit_fp_mode; // We are emitting instructions with 24-bit results |
225 bool _in_24_bit_fp_mode; // We are emitting instructions with 24-bit results |
226 bool _has_java_calls; // True if the method has java calls |
226 int _java_calls; // Number of java calls in the method |
|
227 int _inner_loops; // Number of inner loops in the method |
227 Matcher* _matcher; // Engine to map ideal to machine instructions |
228 Matcher* _matcher; // Engine to map ideal to machine instructions |
228 PhaseRegAlloc* _regalloc; // Results of register allocation. |
229 PhaseRegAlloc* _regalloc; // Results of register allocation. |
229 int _frame_slots; // Size of total frame in stack slots |
230 int _frame_slots; // Size of total frame in stack slots |
230 CodeOffsets _code_offsets; // Offsets into the code for various interesting entries |
231 CodeOffsets _code_offsets; // Offsets into the code for various interesting entries |
231 RegMask _FIRST_STACK_mask; // All stack slots usable for spills (depends on frame layout) |
232 RegMask _FIRST_STACK_mask; // All stack slots usable for spills (depends on frame layout) |
503 |
504 |
504 // Matching, CFG layout, allocation, code generation |
505 // Matching, CFG layout, allocation, code generation |
505 PhaseCFG* cfg() { return _cfg; } |
506 PhaseCFG* cfg() { return _cfg; } |
506 bool select_24_bit_instr() const { return _select_24_bit_instr; } |
507 bool select_24_bit_instr() const { return _select_24_bit_instr; } |
507 bool in_24_bit_fp_mode() const { return _in_24_bit_fp_mode; } |
508 bool in_24_bit_fp_mode() const { return _in_24_bit_fp_mode; } |
508 bool has_java_calls() const { return _has_java_calls; } |
509 bool has_java_calls() const { return _java_calls > 0; } |
|
510 int java_calls() const { return _java_calls; } |
|
511 int inner_loops() const { return _inner_loops; } |
509 Matcher* matcher() { return _matcher; } |
512 Matcher* matcher() { return _matcher; } |
510 PhaseRegAlloc* regalloc() { return _regalloc; } |
513 PhaseRegAlloc* regalloc() { return _regalloc; } |
511 int frame_slots() const { return _frame_slots; } |
514 int frame_slots() const { return _frame_slots; } |
512 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words' |
515 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words' |
513 RegMask& FIRST_STACK_mask() { return _FIRST_STACK_mask; } |
516 RegMask& FIRST_STACK_mask() { return _FIRST_STACK_mask; } |
530 void set_24_bit_selection_and_mode(bool selection, bool mode) { |
533 void set_24_bit_selection_and_mode(bool selection, bool mode) { |
531 _select_24_bit_instr = selection; |
534 _select_24_bit_instr = selection; |
532 _in_24_bit_fp_mode = mode; |
535 _in_24_bit_fp_mode = mode; |
533 } |
536 } |
534 |
537 |
535 void set_has_java_calls(bool z) { _has_java_calls = z; } |
538 void set_java_calls(int z) { _java_calls = z; } |
|
539 void set_inner_loops(int z) { _inner_loops = z; } |
536 |
540 |
537 // Instruction bits passed off to the VM |
541 // Instruction bits passed off to the VM |
538 int code_size() { return _method_size; } |
542 int code_size() { return _method_size; } |
539 CodeBuffer* code_buffer() { return &_code_buffer; } |
543 CodeBuffer* code_buffer() { return &_code_buffer; } |
540 int first_block_size() { return _first_block_size; } |
544 int first_block_size() { return _first_block_size; } |