1.1 --- a/src/share/vm/opto/compile.hpp Mon Jun 09 15:42:31 2014 -0700 1.2 +++ b/src/share/vm/opto/compile.hpp Tue Apr 01 09:36:49 2014 +0200 1.3 @@ -487,6 +487,7 @@ 1.4 RegMask _FIRST_STACK_mask; // All stack slots usable for spills (depends on frame layout) 1.5 Arena* _indexSet_arena; // control IndexSet allocation within PhaseChaitin 1.6 void* _indexSet_free_block_list; // free list of IndexSet bit blocks 1.7 + int _interpreter_frame_size; 1.8 1.9 uint _node_bundling_limit; 1.10 Bundle* _node_bundling_base; // Information for instruction bundling 1.11 @@ -946,6 +947,7 @@ 1.12 PhaseRegAlloc* regalloc() { return _regalloc; } 1.13 int frame_slots() const { return _frame_slots; } 1.14 int frame_size_in_words() const; // frame_slots in units of the polymorphic 'words' 1.15 + int frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; } 1.16 RegMask& FIRST_STACK_mask() { return _FIRST_STACK_mask; } 1.17 Arena* indexSet_arena() { return _indexSet_arena; } 1.18 void* indexSet_free_block_list() { return _indexSet_free_block_list; } 1.19 @@ -957,6 +959,13 @@ 1.20 bool need_stack_bang(int frame_size_in_bytes) const; 1.21 bool need_register_stack_bang() const; 1.22 1.23 + void update_interpreter_frame_size(int size) { 1.24 + if (_interpreter_frame_size < size) { 1.25 + _interpreter_frame_size = size; 1.26 + } 1.27 + } 1.28 + int bang_size_in_bytes() const; 1.29 + 1.30 void set_matcher(Matcher* m) { _matcher = m; } 1.31 //void set_regalloc(PhaseRegAlloc* ra) { _regalloc = ra; } 1.32 void set_indexSet_arena(Arena* a) { _indexSet_arena = a; }