< prev index next >

src/hotspot/share/jvmci/jvmciCompilerToVM.hpp

Print this page




 138     _args = args;
 139     if (!is_static) {
 140       _jca->push_oop(next_arg(T_OBJECT));
 141     }
 142     iterate();
 143     assert(_index == args->length(), "arg count mismatch with signature");
 144   }
 145 
 146   inline void do_bool()   { if (!is_return_type()) _jca->push_int(next_arg(T_BOOLEAN)->bool_field(java_lang_boxing_object::value_offset_in_bytes(T_BOOLEAN))); }
 147   inline void do_char()   { if (!is_return_type()) _jca->push_int(next_arg(T_CHAR)->char_field(java_lang_boxing_object::value_offset_in_bytes(T_CHAR))); }
 148   inline void do_short()  { if (!is_return_type()) _jca->push_int(next_arg(T_SHORT)->short_field(java_lang_boxing_object::value_offset_in_bytes(T_SHORT))); }
 149   inline void do_byte()   { if (!is_return_type()) _jca->push_int(next_arg(T_BYTE)->byte_field(java_lang_boxing_object::value_offset_in_bytes(T_BYTE))); }
 150   inline void do_int()    { if (!is_return_type()) _jca->push_int(next_arg(T_INT)->int_field(java_lang_boxing_object::value_offset_in_bytes(T_INT))); }
 151 
 152   inline void do_long()   { if (!is_return_type()) _jca->push_long(next_arg(T_LONG)->long_field(java_lang_boxing_object::value_offset_in_bytes(T_LONG))); }
 153   inline void do_float()  { if (!is_return_type()) _jca->push_float(next_arg(T_FLOAT)->float_field(java_lang_boxing_object::value_offset_in_bytes(T_FLOAT))); }
 154   inline void do_double() { if (!is_return_type()) _jca->push_double(next_arg(T_DOUBLE)->double_field(java_lang_boxing_object::value_offset_in_bytes(T_DOUBLE))); }
 155 
 156   inline void do_object() { _jca->push_oop(next_arg(T_OBJECT)); }
 157   inline void do_object(int begin, int end) { if (!is_return_type()) _jca->push_oop(next_arg(T_OBJECT)); }

 158   inline void do_array(int begin, int end)  { if (!is_return_type()) _jca->push_oop(next_arg(T_OBJECT)); }
 159   inline void do_void()                     { }
 160 };
 161 
 162 class JNIHandleMark : public StackObj {
 163   JavaThread* _thread;
 164   public:
 165     JNIHandleMark(JavaThread* thread) : _thread(thread) { push_jni_handle_block(thread); }
 166     ~JNIHandleMark() { pop_jni_handle_block(_thread); }
 167 
 168   private:
 169     static void push_jni_handle_block(JavaThread* thread);
 170     static void pop_jni_handle_block(JavaThread* thread);
 171 };
 172 
 173 #endif // SHARE_JVMCI_JVMCICOMPILERTOVM_HPP


 138     _args = args;
 139     if (!is_static) {
 140       _jca->push_oop(next_arg(T_OBJECT));
 141     }
 142     iterate();
 143     assert(_index == args->length(), "arg count mismatch with signature");
 144   }
 145 
 146   inline void do_bool()   { if (!is_return_type()) _jca->push_int(next_arg(T_BOOLEAN)->bool_field(java_lang_boxing_object::value_offset_in_bytes(T_BOOLEAN))); }
 147   inline void do_char()   { if (!is_return_type()) _jca->push_int(next_arg(T_CHAR)->char_field(java_lang_boxing_object::value_offset_in_bytes(T_CHAR))); }
 148   inline void do_short()  { if (!is_return_type()) _jca->push_int(next_arg(T_SHORT)->short_field(java_lang_boxing_object::value_offset_in_bytes(T_SHORT))); }
 149   inline void do_byte()   { if (!is_return_type()) _jca->push_int(next_arg(T_BYTE)->byte_field(java_lang_boxing_object::value_offset_in_bytes(T_BYTE))); }
 150   inline void do_int()    { if (!is_return_type()) _jca->push_int(next_arg(T_INT)->int_field(java_lang_boxing_object::value_offset_in_bytes(T_INT))); }
 151 
 152   inline void do_long()   { if (!is_return_type()) _jca->push_long(next_arg(T_LONG)->long_field(java_lang_boxing_object::value_offset_in_bytes(T_LONG))); }
 153   inline void do_float()  { if (!is_return_type()) _jca->push_float(next_arg(T_FLOAT)->float_field(java_lang_boxing_object::value_offset_in_bytes(T_FLOAT))); }
 154   inline void do_double() { if (!is_return_type()) _jca->push_double(next_arg(T_DOUBLE)->double_field(java_lang_boxing_object::value_offset_in_bytes(T_DOUBLE))); }
 155 
 156   inline void do_object() { _jca->push_oop(next_arg(T_OBJECT)); }
 157   inline void do_object(int begin, int end) { if (!is_return_type()) _jca->push_oop(next_arg(T_OBJECT)); }
 158   inline void do_valuetype(int begin, int end) { if (!is_return_type()) _jca->push_oop(next_arg(T_VALUETYPE)); }
 159   inline void do_array(int begin, int end)  { if (!is_return_type()) _jca->push_oop(next_arg(T_OBJECT)); }
 160   inline void do_void()                     { }
 161 };
 162 
 163 class JNIHandleMark : public StackObj {
 164   JavaThread* _thread;
 165   public:
 166     JNIHandleMark(JavaThread* thread) : _thread(thread) { push_jni_handle_block(thread); }
 167     ~JNIHandleMark() { pop_jni_handle_block(_thread); }
 168 
 169   private:
 170     static void push_jni_handle_block(JavaThread* thread);
 171     static void pop_jni_handle_block(JavaThread* thread);
 172 };
 173 
 174 #endif // SHARE_JVMCI_JVMCICOMPILERTOVM_HPP
< prev index next >