summaryrefslogtreecommitdiff
path: root/libjava/verify.cc
Commit message (Collapse)AuthorAgeFilesLines
* * verify.cc (_Jv_BytecodeVerifier::branch_prepass): Usetromey2001-11-251-8/+8
| | | | | | | | | | | java_opcode as type for switch. [op_wide]: Likewise. (_Jv_BytecodeVerifier::verify_instructions_0): Likewise. [op_invokevirtual]: Likewise. * include/java-insns.h (java_opcode): Give enum a name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47330 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_iinc]:tromey2001-11-201-6/+6
| | | | | | | | | | | | | Uses two operand bytes, not one. [op_arraylength]: Has no operands in bytecode. (_Jv_BytecodeVerifier::push_jump): Fixed call to check_no_uninitialized_objects. (_Jv_BytecodeVerifier::push_exception_jump): Likewise. (_Jv_BytecodeVerifier::handle_ret_insn): Likewise. (_Jv_BytecodeVerifier::handle_jsr_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47202 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::require_array_type): Specialtromey2001-11-201-3/+13
| | | | | | | | | | case for boolean arrays. * verify.cc (_Jv_BytecodeVerifier::compute_jump): Put PC into error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47190 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::verify_instructions_0)tromey2001-11-191-3/+6
| | | | | | | | [op_lshl, op_lshr, op_lushr]: Shift argument is an int, not a long. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47177 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (type::to_array): New method.tromey2001-11-191-1/+18
| | | | | | | | (_Jv_BytecodeVerifier::verify_instructions_0) [op_anewarray]: Construct new array type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47165 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_sipush]:tromey2001-11-191-2/+2
| | | | | | | | Skip a short, not a byte. [op_newarray]: Skip a byte, not a short. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47163 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::get_type_val_for_signature):tromey2001-11-191-0/+3
| | | | | | | Added `B' case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47162 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::get_ushort): Use `jint' fortromey2001-11-191-10/+10
| | | | | | | | | | | temporary values. (_Jv_BytecodeVerifier::get_short): Likewise. (_Jv_BytecodeVerifier::get_int): Likewise. (_Jv_BytecodeVerifier::check_return_type): Reverse ordering of `compatible' call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47161 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::pop_type): Put PC into errortromey2001-11-191-12/+16
| | | | | | | | | | | | | message. (_Jv_BytecodeVerifier::pop64): Likewise. (_Jv_BytecodeVerifier::pop32): Likewise. (_Jv_BytecodeVerifier::pop_raw): Likewise. (_Jv_BytecodeVerifier::pop_type): Promote the match type. (type::set_initialized): Only modify uninitialized types. (type::set_uninitialized): Fix shadowing bug. Simplify code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47158 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc: Include StringBuffer.h.tromey2001-11-181-41/+80
| | | | | | | | | | | | | | | | | | | | | | | (verify_fail): Added pc argument. Use StringBuffer to construct exception message. (_Jv_BytecodeVerifier::verify_instructions_0): Put PC into error message. (_Jv_BytecodeVerifier::check_return_type): Likewise. (_Jv_BytecodeVerifier::handle_field_or_method): Likewise. (_Jv_BytecodeVerifier::check_constant): Likewise. (_Jv_BytecodeVerifier::check_class_constant): Likewise. (_Jv_BytecodeVerifier::check_pool_index): Likewise. (_Jv_BytecodeVerifier::get_variable): Likewise. (_Jv_BytecodeVerifier::branch_prepass): Likewise. Also, correctly check exception handler endpoint. (_Jv_BytecodeVerifier::verify_instructions_0): Correctly handle wide arguments to current method. (_Jv_BytecodeVerifier::check_wide_constant): New method. (_Jv_BytecodeVerifier::verify_instructions_0) [op_ldc2_w]: Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47155 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::check_field_constant): Handletromey2001-11-161-1/+3
| | | | | | | case where field has primitive type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47112 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (_Jv_BytecodeVerifier::is_assignable_from_slow): Newtromey2001-11-161-8/+56
| | | | | | | | | | | method. (type::compatible): Use it. (type::merge): Likewise. (type::promote): Return a `type&'. (get_one_type): Promote return value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47097 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (type::compatible): Use _Jv_IsAssignableFrom.tromey2001-11-161-2/+6
| | | | | | | (type::merge): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47077 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (class _Jv_BytecodeVerifier) [op_dup2]: Fixed logic.tromey2001-11-151-18/+70
| | | | | | | | | | | | [op_dup_x2]: Likewise. [op_dup2_x1]: Likewise. [op_dup2_x2]: Likewise. (branch_prepass): Added `op_newarray' case. Updated unrecognized instruction error. (verify_instructions_0): Updated unrecognized instruction error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47033 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc: Wrap in #ifdef INTERPRETER...#endif.jsturm2001-11-091-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46882 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (skip_padding): Fail if padding byte is nonzero.tromey2001-11-071-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46830 138bc75d-0d04-0410-961f-82ee72b054a4
* * java/lang/Class.h (Class): Made _Jv_BytecodeVerifier a friend.tromey2001-11-051-0/+2436
* Makefile.in: Rebuilt. * Makefile.am (libgcj_la_SOURCES): Added verify.cc. * verify.cc: New file. * include/java-interp.h (_Jv_count_arguments): Declare. (_Jv_VerifyMethod): Likewise. (class _Jv_InterpMethod): Made _Jv_BytecodeVerifier a friend. (class _Jv_InterpException): Likewise. * resolve.cc (_Jv_count_arguments): Renamed from count_arguments. No longer static. Updated callers. * defineclass.cc (int_bits_to_float): Removed. (long_bits_to_double): Likewise. (prepare_pool_entry): Updated. (handleCodeAttribute): Verify method (commented out for now). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46796 138bc75d-0d04-0410-961f-82ee72b054a4