482 int _frame_slots; // Size of total frame in stack slots |
482 int _frame_slots; // Size of total frame in stack slots |
483 CodeOffsets _code_offsets; // Offsets into the code for various interesting entries |
483 CodeOffsets _code_offsets; // Offsets into the code for various interesting entries |
484 RegMask _FIRST_STACK_mask; // All stack slots usable for spills (depends on frame layout) |
484 RegMask _FIRST_STACK_mask; // All stack slots usable for spills (depends on frame layout) |
485 Arena* _indexSet_arena; // control IndexSet allocation within PhaseChaitin |
485 Arena* _indexSet_arena; // control IndexSet allocation within PhaseChaitin |
486 void* _indexSet_free_block_list; // free list of IndexSet bit blocks |
486 void* _indexSet_free_block_list; // free list of IndexSet bit blocks |
|
487 int _interpreter_frame_size; |
487 |
488 |
488 uint _node_bundling_limit; |
489 uint _node_bundling_limit; |
489 Bundle* _node_bundling_base; // Information for instruction bundling |
490 Bundle* _node_bundling_base; // Information for instruction bundling |
490 |
491 |
491 // Instruction bits passed off to the VM |
492 // Instruction bits passed off to the VM |
939 int inner_loops() const { return _inner_loops; } |
940 int inner_loops() const { return _inner_loops; } |
940 Matcher* matcher() { return _matcher; } |
941 Matcher* matcher() { return _matcher; } |
941 PhaseRegAlloc* regalloc() { return _regalloc; } |
942 PhaseRegAlloc* regalloc() { return _regalloc; } |
942 int frame_slots() const { return _frame_slots; } |
943 int frame_slots() const { return _frame_slots; } |
943 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words' |
944 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words' |
|
945 int frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; } |
944 RegMask& FIRST_STACK_mask() { return _FIRST_STACK_mask; } |
946 RegMask& FIRST_STACK_mask() { return _FIRST_STACK_mask; } |
945 Arena* indexSet_arena() { return _indexSet_arena; } |
947 Arena* indexSet_arena() { return _indexSet_arena; } |
946 void* indexSet_free_block_list() { return _indexSet_free_block_list; } |
948 void* indexSet_free_block_list() { return _indexSet_free_block_list; } |
947 uint node_bundling_limit() { return _node_bundling_limit; } |
949 uint node_bundling_limit() { return _node_bundling_limit; } |
948 Bundle* node_bundling_base() { return _node_bundling_base; } |
950 Bundle* node_bundling_base() { return _node_bundling_base; } |
949 void set_node_bundling_limit(uint n) { _node_bundling_limit = n; } |
951 void set_node_bundling_limit(uint n) { _node_bundling_limit = n; } |
950 void set_node_bundling_base(Bundle* b) { _node_bundling_base = b; } |
952 void set_node_bundling_base(Bundle* b) { _node_bundling_base = b; } |
951 bool starts_bundle(const Node *n) const; |
953 bool starts_bundle(const Node *n) const; |
952 bool need_stack_bang(int frame_size_in_bytes) const; |
954 bool need_stack_bang(int frame_size_in_bytes) const; |
953 bool need_register_stack_bang() const; |
955 bool need_register_stack_bang() const; |
|
956 |
|
957 void update_interpreter_frame_size(int size) { |
|
958 if (_interpreter_frame_size < size) { |
|
959 _interpreter_frame_size = size; |
|
960 } |
|
961 } |
|
962 int bang_size_in_bytes() const; |
954 |
963 |
955 void set_matcher(Matcher* m) { _matcher = m; } |
964 void set_matcher(Matcher* m) { _matcher = m; } |
956 //void set_regalloc(PhaseRegAlloc* ra) { _regalloc = ra; } |
965 //void set_regalloc(PhaseRegAlloc* ra) { _regalloc = ra; } |
957 void set_indexSet_arena(Arena* a) { _indexSet_arena = a; } |
966 void set_indexSet_arena(Arena* a) { _indexSet_arena = a; } |
958 void set_indexSet_free_block_list(void* p) { _indexSet_free_block_list = p; } |
967 void set_indexSet_free_block_list(void* p) { _indexSet_free_block_list = p; } |