49 static void note_trap(JavaThread *thread, int reason, TRAPS); 50 #ifdef CC_INTERP 51 // Profile traps in C++ interpreter. 52 static void note_trap(JavaThread* thread, int reason, Method *method, int trap_bci); 53 #endif // CC_INTERP 54 55 // Inner work method for Interpreter's frequency counter overflow. 56 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp); 57 58 public: 59 // Constants 60 static void ldc (JavaThread* thread, bool wide); 61 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode); 62 63 // Allocation 64 static void _new (JavaThread* thread, ConstantPool* pool, int index); 65 static void newarray (JavaThread* thread, BasicType type, jint size); 66 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size); 67 static void multianewarray(JavaThread* thread, jint* first_size_address); 68 static void register_finalizer(JavaThread* thread, oopDesc* obj); 69 70 // Quicken instance-of and check-cast bytecodes 71 static void quicken_io_cc(JavaThread* thread); 72 73 // Exceptions thrown by the interpreter 74 static void throw_AbstractMethodError(JavaThread* thread); 75 static void throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* oop); 76 static void throw_AbstractMethodErrorVerbose(JavaThread* thread, 77 Klass* recvKlass, 78 Method* missingMethod); 79 80 static void throw_IncompatibleClassChangeError(JavaThread* thread); 81 static void throw_IncompatibleClassChangeErrorVerbose(JavaThread* thread, 82 Klass* resc, 83 Klass* interfaceKlass); 84 static void throw_StackOverflowError(JavaThread* thread); 85 static void throw_delayed_StackOverflowError(JavaThread* thread); 86 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, arrayOopDesc* a, jint index); 87 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj); 88 static void create_exception(JavaThread* thread, char* name, char* message); | 49 static void note_trap(JavaThread *thread, int reason, TRAPS); 50 #ifdef CC_INTERP 51 // Profile traps in C++ interpreter. 52 static void note_trap(JavaThread* thread, int reason, Method *method, int trap_bci); 53 #endif // CC_INTERP 54 55 // Inner work method for Interpreter's frequency counter overflow. 56 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp); 57 58 public: 59 // Constants 60 static void ldc (JavaThread* thread, bool wide); 61 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode); 62 63 // Allocation 64 static void _new (JavaThread* thread, ConstantPool* pool, int index); 65 static void newarray (JavaThread* thread, BasicType type, jint size); 66 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size); 67 static void multianewarray(JavaThread* thread, jint* first_size_address); 68 static void register_finalizer(JavaThread* thread, oopDesc* obj); 69 static void defaultvalue (JavaThread* thread, ConstantPool* pool, int index); 70 static int withfield (JavaThread* thread, ConstantPoolCache* cp_cache); 71 static void uninitialized_static_value_field(JavaThread* thread, oopDesc* mirror, int offset); 72 static void uninitialized_instance_value_field(JavaThread* thread, oopDesc* obj, int offset); 73 static void write_heap_copy (JavaThread* thread, oopDesc* value, int offset, oopDesc* rcv); 74 static void write_flattened_value(JavaThread* thread, oopDesc* value, int offset, oopDesc* rcv); 75 static void read_flattened_field(JavaThread* thread, oopDesc* value, int index, Klass* field_holder); 76 77 static void value_array_load(JavaThread* thread, arrayOopDesc* array, int index); 78 static void value_array_store(JavaThread* thread, void* val, arrayOopDesc* array, int index); 79 80 // Quicken instance-of and check-cast bytecodes 81 static void quicken_io_cc(JavaThread* thread); 82 83 // Exceptions thrown by the interpreter 84 static void throw_AbstractMethodError(JavaThread* thread); 85 static void throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* oop); 86 static void throw_AbstractMethodErrorVerbose(JavaThread* thread, 87 Klass* recvKlass, 88 Method* missingMethod); 89 90 static void throw_IncompatibleClassChangeError(JavaThread* thread); 91 static void throw_IncompatibleClassChangeErrorVerbose(JavaThread* thread, 92 Klass* resc, 93 Klass* interfaceKlass); 94 static void throw_StackOverflowError(JavaThread* thread); 95 static void throw_delayed_StackOverflowError(JavaThread* thread); 96 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, arrayOopDesc* a, jint index); 97 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj); 98 static void create_exception(JavaThread* thread, char* name, char* message); |