1.1 --- a/src/share/vm/opto/parse.hpp Mon May 06 19:49:23 2013 -0700 1.2 +++ b/src/share/vm/opto/parse.hpp Wed May 08 15:08:01 2013 -0700 1.3 @@ -330,6 +330,7 @@ 1.4 bool _wrote_final; // Did we write a final field? 1.5 bool _count_invocations; // update and test invocation counter 1.6 bool _method_data_update; // update method data oop 1.7 + Node* _alloc_with_final; // An allocation node with final field 1.8 1.9 // Variables which track Java semantics during bytecode parsing: 1.10 1.11 @@ -370,6 +371,11 @@ 1.12 void set_wrote_final(bool z) { _wrote_final = z; } 1.13 bool count_invocations() const { return _count_invocations; } 1.14 bool method_data_update() const { return _method_data_update; } 1.15 + Node* alloc_with_final() const { return _alloc_with_final; } 1.16 + void set_alloc_with_final(Node* n) { 1.17 + assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?"); 1.18 + _alloc_with_final = n; 1.19 + } 1.20 1.21 Block* block() const { return _block; } 1.22 ciBytecodeStream& iter() { return _iter; } 1.23 @@ -512,7 +518,7 @@ 1.24 1.25 // loading from a constant field or the constant pool 1.26 // returns false if push failed (non-perm field constants only, not ldcs) 1.27 - bool push_constant(ciConstant con, bool require_constant = false); 1.28 + bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false); 1.29 1.30 // implementation of object creation bytecodes 1.31 void emit_guard_for_new(ciInstanceKlass* klass);