hotspot/src/share/vm/opto/parse.hpp
changeset 33180 34e5004f5acb
parent 31857 adbf29d9ca43
child 33196 3d84eedbd82c
equal deleted inserted replaced
33178:f77a432b90f6 33180:34e5004f5acb
   341   bool          _wrote_stable;       // Did we write a @Stable field?
   341   bool          _wrote_stable;       // Did we write a @Stable field?
   342   bool          _wrote_fields;       // Did we write any field?
   342   bool          _wrote_fields;       // Did we write any field?
   343   bool          _count_invocations;  // update and test invocation counter
   343   bool          _count_invocations;  // update and test invocation counter
   344   bool          _method_data_update; // update method data oop
   344   bool          _method_data_update; // update method data oop
   345   Node*         _alloc_with_final;   // An allocation node with final field
   345   Node*         _alloc_with_final;   // An allocation node with final field
       
   346   Node*         _alloc_with_stable;  // An allocation node with stable field
   346 
   347 
   347   // Variables which track Java semantics during bytecode parsing:
   348   // Variables which track Java semantics during bytecode parsing:
   348 
   349 
   349   Block*            _block;     // block currently getting parsed
   350   Block*            _block;     // block currently getting parsed
   350   ciBytecodeStream  _iter;      // stream of this method's bytecodes
   351   ciBytecodeStream  _iter;      // stream of this method's bytecodes
   396   void set_alloc_with_final(Node* n)  {
   397   void set_alloc_with_final(Node* n)  {
   397     assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?");
   398     assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?");
   398     _alloc_with_final = n;
   399     _alloc_with_final = n;
   399   }
   400   }
   400 
   401 
       
   402   Node*    alloc_with_stable() const  {
       
   403     if (_alloc_with_stable == NodeSentinel) {
       
   404       return NULL;
       
   405     }
       
   406     return _alloc_with_stable;
       
   407   }
       
   408 
       
   409   void set_alloc_with_stable(Node* n)  {
       
   410     if (_alloc_with_stable == NodeSentinel) {
       
   411       // uninitialized status, initialize with current input, can be
       
   412       // null or valid node.
       
   413       _alloc_with_stable = n;
       
   414     } else if (_alloc_with_stable != n) {
       
   415       // _alloc_with_stable isn't equal to n
       
   416       _alloc_with_stable = NULL;
       
   417     }
       
   418     // _alloc_with_stable is equal with n, do nothing
       
   419   }
       
   420 
   401   Block*             block()    const { return _block; }
   421   Block*             block()    const { return _block; }
   402   ciBytecodeStream&  iter()           { return _iter; }
   422   ciBytecodeStream&  iter()           { return _iter; }
   403   Bytecodes::Code    bc()       const { return _iter.cur_bc(); }
   423   Bytecodes::Code    bc()       const { return _iter.cur_bc(); }
   404 
   424 
   405   void set_block(Block* b)            { _block = b; }
   425   void set_block(Block* b)            { _block = b; }