< 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 >