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