95 static void note_trap(JavaThread *thread, int reason, TRAPS); 96 #ifdef CC_INTERP 97 // Profile traps in C++ interpreter. 98 static void note_trap(JavaThread* thread, int reason, Method *method, int trap_bci); 99 #endif // CC_INTERP 100 101 // Inner work method for Interpreter's frequency counter overflow. 102 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp); 103 104 public: 105 // Constants 106 static void ldc (JavaThread* thread, bool wide); 107 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode); 108 109 // Allocation 110 static void _new (JavaThread* thread, ConstantPool* pool, int index); 111 static void newarray (JavaThread* thread, BasicType type, jint size); 112 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size); 113 static void multianewarray(JavaThread* thread, jint* first_size_address); 114 static void register_finalizer(JavaThread* thread, oopDesc* obj); 115 static void vdefault (JavaThread* thread, ConstantPool* pool, int index); 116 static int vwithfield (JavaThread* thread, ConstantPoolCache* cp_cache); 117 static void qgetfield (JavaThread* thread, oopDesc* value, int index, Klass* field_holder); 118 static void qputfield (JavaThread* thread, oopDesc* obj, oopDesc* value, ConstantPoolCache* cp_cache); 119 static void qputstatic (JavaThread* thread, oopDesc* value, int offset, oopDesc* mirror); 120 static void uninitialized_static_value_field(JavaThread*, oopDesc* mirror, int offset); 121 122 // Value Buffers support 123 static void recycle_vtbuffer(void *alloc_ptr); 124 static void recycle_buffered_values(JavaThread* thread); 125 static void return_value(JavaThread* thread, oopDesc* obj); 126 static void return_value_step2(oopDesc* obj, void* alloc_ptr); 127 static void check_areturn(JavaThread* thread, oopDesc* obj); 128 static void fix_frame_vt_alloc_ptr(JavaThread* thread); 129 130 // vaload/vastore 131 static void value_array_load(JavaThread* thread, arrayOopDesc* array, int index); 132 static void value_array_store(JavaThread* thread, arrayOopDesc* array, int index, void* val); 133 134 // Valhalla MVT VCC<->DVT 135 static void vbox (JavaThread* thread, ConstantPool* pool, int index, oopDesc* value); 136 static void vunbox(JavaThread* thread, ConstantPool* pool, int index, oopDesc* obj); 137 138 139 // Quicken instance-of and check-cast bytecodes 140 static void quicken_io_cc(JavaThread* thread); 141 142 // Exceptions thrown by the interpreter 143 static void throw_AbstractMethodError(JavaThread* thread); 144 static void throw_IncompatibleClassChangeError(JavaThread* thread); 145 static void throw_StackOverflowError(JavaThread* thread); 146 static void throw_delayed_StackOverflowError(JavaThread* thread); 147 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, char* name, jint index); 148 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj); 149 static void create_exception(JavaThread* thread, char* name, char* message); 150 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj); 151 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception); 152 #if INCLUDE_JVMTI 153 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp); 154 #endif 155 static void throw_pending_exception(JavaThread* thread); 156 157 #ifdef CC_INTERP 158 // Profile traps in C++ interpreter. | 95 static void note_trap(JavaThread *thread, int reason, TRAPS); 96 #ifdef CC_INTERP 97 // Profile traps in C++ interpreter. 98 static void note_trap(JavaThread* thread, int reason, Method *method, int trap_bci); 99 #endif // CC_INTERP 100 101 // Inner work method for Interpreter's frequency counter overflow. 102 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp); 103 104 public: 105 // Constants 106 static void ldc (JavaThread* thread, bool wide); 107 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode); 108 109 // Allocation 110 static void _new (JavaThread* thread, ConstantPool* pool, int index); 111 static void newarray (JavaThread* thread, BasicType type, jint size); 112 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size); 113 static void multianewarray(JavaThread* thread, jint* first_size_address); 114 static void register_finalizer(JavaThread* thread, oopDesc* obj); 115 static void defaultvalue (JavaThread* thread, ConstantPool* pool, int index); 116 static int withfield (JavaThread* thread, ConstantPoolCache* cp_cache); 117 static void qgetfield (JavaThread* thread, oopDesc* value, int index, Klass* field_holder); 118 static void qputfield (JavaThread* thread, oopDesc* obj, oopDesc* value, ConstantPoolCache* cp_cache); 119 static void qputstatic (JavaThread* thread, oopDesc* value, int offset, oopDesc* mirror); 120 static void uninitialized_static_value_field(JavaThread*, oopDesc* mirror, int offset); 121 122 // Value Buffers support 123 static void recycle_vtbuffer(void *alloc_ptr); 124 static void recycle_buffered_values(JavaThread* thread); 125 static void return_value(JavaThread* thread, oopDesc* obj); 126 static void return_value_step2(oopDesc* obj, void* alloc_ptr); 127 static void check_areturn(JavaThread* thread, oopDesc* obj); 128 static void fix_frame_vt_alloc_ptr(JavaThread* thread); 129 130 // vaload/vastore 131 static void value_array_load(JavaThread* thread, arrayOopDesc* array, int index); 132 static void value_array_store(JavaThread* thread, arrayOopDesc* array, int index, void* val); 133 134 // Quicken instance-of and check-cast bytecodes 135 static void quicken_io_cc(JavaThread* thread); 136 137 // Exceptions thrown by the interpreter 138 static void throw_AbstractMethodError(JavaThread* thread); 139 static void throw_IncompatibleClassChangeError(JavaThread* thread); 140 static void throw_StackOverflowError(JavaThread* thread); 141 static void throw_delayed_StackOverflowError(JavaThread* thread); 142 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, char* name, jint index); 143 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj); 144 static void create_exception(JavaThread* thread, char* name, char* message); 145 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj); 146 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception); 147 #if INCLUDE_JVMTI 148 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp); 149 #endif 150 static void throw_pending_exception(JavaThread* thread); 151 152 #ifdef CC_INTERP 153 // Profile traps in C++ interpreter. |