< prev index next >

src/share/vm/runtime/javaCalls.hpp

Print this page

        

@@ -101,19 +101,21 @@
   intptr_t*   _value;
   bool*       _is_oop;
   int         _size;
   int         _max_size;
   bool        _start_at_zero;      // Support late setting of receiver
+  JVMCI_ONLY(nmethod*    _alternative_target;) // Nmethod that should be called instead of normal target
 
   void initialize() {
     // Starts at first element to support set_receiver.
     _value    = &_value_buffer[1];
     _is_oop   = &_is_oop_buffer[1];
 
     _max_size = _default_size;
     _size = 0;
     _start_at_zero = false;
+    JVMCI_ONLY(_alternative_target = NULL;)
   }
 
  public:
   JavaCallArguments() { initialize(); }
 

@@ -131,15 +133,26 @@
       _value++; _is_oop++;
 
       _max_size = max_size;
       _size = 0;
       _start_at_zero = false;
+      JVMCI_ONLY(_alternative_target = NULL;)
     } else {
       initialize();
     }
   }
 
+#if INCLUDE_JVMCI
+  void set_alternative_target(nmethod* target) {
+    _alternative_target = target;
+  }
+
+  nmethod* alternative_target() {
+    return _alternative_target;
+  }
+#endif
+
   inline void push_oop(Handle h)    { _is_oop[_size] = true;
                                JNITypes::put_obj((oop)h.raw_value(), _value, _size); }
 
   inline void push_int(int i)       { _is_oop[_size] = false;
                                JNITypes::put_int(i, _value, _size); }
< prev index next >