< prev index next >

src/hotspot/share/runtime/frame.cpp

Print this page

        

@@ -444,20 +444,10 @@
   assert(is_interpreted_frame(), "interpreted frame expected");
   assert(ProfileInterpreter, "must be profiling interpreter");
   *interpreter_frame_mdp_addr() = (intptr_t)mdp;
 }
 
-intptr_t* frame::interpreter_frame_vt_alloc_ptr() const {
-  assert(is_interpreted_frame(), "interpreted frame expected");
-  return (intptr_t*)*interpreter_frame_vt_alloc_ptr_addr();
-}
-
-void frame::interpreter_frame_set_vt_alloc_ptr(intptr_t* ptr) {
-  assert(is_interpreted_frame(), "interpreted frame expected");
-  *interpreter_frame_vt_alloc_ptr_addr() = ptr;
-}
-
 BasicObjectLock* frame::next_monitor_in_interpreter_frame(BasicObjectLock* current) const {
   assert(is_interpreted_frame(), "Not an interpreted frame");
 #ifdef ASSERT
   interpreter_frame_verify_monitor(current);
 #endif

@@ -759,45 +749,30 @@
 */
 class InterpreterFrameClosure : public OffsetClosure {
  private:
   frame* _fr;
   OopClosure* _f;
-  BufferedValueClosure* _bvt_f;
   int    _max_locals;
   int    _max_stack;
-  BufferedValuesDealiaser* _dealiaser;
 
  public:
   InterpreterFrameClosure(frame* fr, int max_locals, int max_stack,
                           OopClosure* f, BufferedValueClosure* bvt_f) {
     _fr         = fr;
     _max_locals = max_locals;
     _max_stack  = max_stack;
     _f          = f;
-    _bvt_f      = bvt_f;
-    _dealiaser  = NULL;
   }
 
   void offset_do(int offset) {
     oop* addr;
     if (offset < _max_locals) {
       addr = (oop*) _fr->interpreter_frame_local_at(offset);
       assert((intptr_t*)addr >= _fr->sp(), "must be inside the frame");
-      if (!VTBuffer::is_in_vt_buffer(*addr)) {
         if (_f != NULL) {
           _f->do_oop(addr);
         }
-      } else { // Buffered value types case
-        assert(ValueTypesBufferMaxMemory > 0, "Sanity check");
-        assert((*addr)->is_value(), "Only values can be buffered");
-        if (_f != NULL) {
-          dealiaser()->oops_do(_f, *addr);
-        }
-        if (_bvt_f != NULL) {
-          _bvt_f->do_buffered_value(addr);
-        }
-      }
     } else {
       addr = (oop*) _fr->interpreter_frame_expression_stack_at((offset - _max_locals));
       // In case of exceptions, the expression stack is invalid and the esp will be reset to express
       // this condition. Therefore, we call f only if addr is 'inside' the stack (i.e., addr >= esp for Intel).
       bool in_stack;

@@ -805,65 +780,38 @@
         in_stack = (intptr_t*)addr <= _fr->interpreter_frame_tos_address();
       } else {
         in_stack = (intptr_t*)addr >= _fr->interpreter_frame_tos_address();
       }
       if (in_stack) {
-        if (!VTBuffer::is_in_vt_buffer(*addr)) {
           if (_f != NULL) {
             _f->do_oop(addr);
           }
-        } else { // Buffered value types case
-          assert(ValueTypesBufferMaxMemory > 0, "Sanity check");
-          assert((*addr)->is_value(), "Only values can be buffered");
-          if (_f != NULL) {
-            dealiaser()->oops_do(_f, *addr);
-          }
-          if (_bvt_f != NULL) {
-            _bvt_f->do_buffered_value(addr);
-          }
-        }
       }
     }
   }
 
   int max_locals()  { return _max_locals; }
   frame* fr()       { return _fr; }
-
- private:
-  BufferedValuesDealiaser* dealiaser() {
-    if (_dealiaser == NULL) {
-      _dealiaser = Thread::current()->buffered_values_dealiaser();
-      assert(_dealiaser != NULL, "Must not be NULL");
-    }
-    return _dealiaser;
-  }
 };
 
 
 class InterpretedArgumentOopFinder: public SignatureInfo {
  private:
   OopClosure* _f;        // Closure to invoke
   int    _offset;        // TOS-relative offset, decremented with each argument
   bool   _has_receiver;  // true if the callee has a receiver
   frame* _fr;
-  BufferedValuesDealiaser* _dealiaser;
 
   void set(int size, BasicType type) {
     _offset -= size;
     if (type == T_OBJECT || type == T_ARRAY || type == T_VALUETYPE) oop_offset_do();
   }
 
   void oop_offset_do() {
     oop* addr;
     addr = (oop*)_fr->interpreter_frame_tos_at(_offset);
-    if (!VTBuffer::is_in_vt_buffer(*addr)) {
       _f->do_oop(addr);
-    } else { // Buffered value types case
-      assert((*addr)->is_value(), "Only values can be buffered");
-      oop value = *addr;
-      dealiaser()->oops_do(_f, value);
-    }
   }
 
  public:
   InterpretedArgumentOopFinder(Symbol* signature, bool has_receiver, frame* fr, OopClosure* f) : SignatureInfo(signature), _has_receiver(has_receiver) {
     // compute size of arguments

@@ -873,19 +821,10 @@
             "args cannot be on stack anymore");
     // initialize InterpretedArgumentOopFinder
     _f         = f;
     _fr        = fr;
     _offset    = args_size;
-    _dealiaser = NULL;
-  }
-
-  BufferedValuesDealiaser* dealiaser() {
-    if (_dealiaser == NULL) {
-      _dealiaser = Thread::current()->buffered_values_dealiaser();
-      assert(_dealiaser != NULL, "Must not be NULL");
-    }
-    return _dealiaser;
   }
 
   void oops_do() {
     if (_has_receiver) {
       --_offset;

@@ -912,45 +851,29 @@
  private:
   bool   _is_static;
   int    _offset;
   frame* _fr;
   OopClosure* _f;
-  BufferedValuesDealiaser* _dealiaser;
-
-  BufferedValuesDealiaser* dealiaser() {
-    if (_dealiaser == NULL) {
-      _dealiaser = Thread::current()->buffered_values_dealiaser();
-      assert(_dealiaser != NULL, "Must not be NULL");
-    }
-    return _dealiaser;
-  }
 
   void set(int size, BasicType type) {
     assert (_offset >= 0, "illegal offset");
     if (type == T_OBJECT || type == T_ARRAY || type == T_VALUETYPE) oop_at_offset_do(_offset);
     _offset -= size;
   }
 
   void oop_at_offset_do(int offset) {
     assert (offset >= 0, "illegal offset");
     oop* addr = (oop*) _fr->entry_frame_argument_at(offset);
-    if (!VTBuffer::is_in_vt_buffer(*addr)) {
       _f->do_oop(addr);
-    } else { // Buffered value types case
-      assert((*addr)->is_value(), "Only values can be buffered");
-      oop value = *addr;
-      dealiaser()->oops_do(_f, value);
-    }
   }
 
  public:
    EntryFrameOopFinder(frame* frame, Symbol* signature, bool is_static) : SignatureInfo(signature) {
      _f = NULL; // will be set later
      _fr = frame;
      _is_static = is_static;
      _offset = ArgumentSizeComputer(signature).size() - 1; // last parameter is at index 0
-     _dealiaser = NULL;
    }
 
   void arguments_do(OopClosure* f) {
     _f = f;
     if (!_is_static) oop_at_offset_do(_offset+1); // do the receiver

@@ -991,11 +914,10 @@
 #endif
     current->oops_do(f);
   }
 
   if (m->is_native()) {
-    assert(!VTBuffer::is_in_vt_buffer((oopDesc*)*interpreter_frame_temp_oop_addr()), "Sanity check");
     f->do_oop(interpreter_frame_temp_oop_addr());
   }
 
   // The method pointer in the frame might be the only path to the method's
   // klass, and the klass needs to be kept alive while executing. The GCs

@@ -1098,19 +1020,10 @@
   bool            _has_appendix;  // true if the call has an appendix
   frame           _fr;
   RegisterMap*    _reg_map;
   int             _arg_size;
   VMRegPair*      _regs;        // VMReg list of arguments
-  BufferedValuesDealiaser* _dealiaser;
-
-  BufferedValuesDealiaser* dealiaser() {
-    if (_dealiaser == NULL) {
-      _dealiaser = Thread::current()->buffered_values_dealiaser();
-      assert(_dealiaser != NULL, "Must not be NULL");
-    }
-    return _dealiaser;
-  }
 
   void set(int size, BasicType type) {
     if (type == T_OBJECT || type == T_ARRAY || type == T_VALUETYPE) handle_oop_offset();
     _offset += size;
   }

@@ -1119,17 +1032,11 @@
     // Extract low order register number from register array.
     // In LP64-land, the high-order bits are valid but unhelpful.
     assert(_offset < _arg_size, "out of bounds");
     VMReg reg = _regs[_offset].first();
     oop *loc = _fr.oopmapreg_to_location(reg, _reg_map);
-    if (!VTBuffer::is_in_vt_buffer(*loc)) {
       _f->do_oop(loc);
-    } else { // Buffered value types case
-      assert((*loc)->is_value(), "Only values can be buffered");
-      oop value = *loc;
-      dealiaser()->oops_do(_f, value);
-    }
   }
 
  public:
   CompiledArgumentOopFinder(Symbol* signature, bool has_receiver, bool has_appendix, OopClosure* f, frame fr, const RegisterMap* reg_map)
     : SignatureInfo(signature) {

@@ -1140,11 +1047,10 @@
     _has_receiver = has_receiver;
     _has_appendix = has_appendix;
     _fr        = fr;
     _reg_map   = (RegisterMap*)reg_map;
     _regs = SharedRuntime::find_callee_arguments(signature, has_receiver, has_appendix, &_arg_size);
-    _dealiaser = NULL;
   }
 
   void oops_do() {
     if (_has_receiver) {
       handle_oop_offset();
< prev index next >