56 static address bcp(JavaThread *thread) { return last_frame(thread).interpreter_frame_bcp(); } |
56 static address bcp(JavaThread *thread) { return last_frame(thread).interpreter_frame_bcp(); } |
57 static int bci(JavaThread *thread) { return last_frame(thread).interpreter_frame_bci(); } |
57 static int bci(JavaThread *thread) { return last_frame(thread).interpreter_frame_bci(); } |
58 static void set_bcp_and_mdp(address bcp, JavaThread*thread); |
58 static void set_bcp_and_mdp(address bcp, JavaThread*thread); |
59 static Bytecodes::Code code(JavaThread *thread) { |
59 static Bytecodes::Code code(JavaThread *thread) { |
60 // pass method to avoid calling unsafe bcp_to_method (partial fix 4926272) |
60 // pass method to avoid calling unsafe bcp_to_method (partial fix 4926272) |
61 return Bytecodes::code_at(bcp(thread), method(thread)); |
61 return Bytecodes::code_at(method(thread), bcp(thread)); |
62 } |
62 } |
63 static bool already_resolved(JavaThread *thread) { return cache_entry(thread)->is_resolved(code(thread)); } |
63 static bool already_resolved(JavaThread *thread) { return cache_entry(thread)->is_resolved(code(thread)); } |
64 static Bytecode* bytecode(JavaThread *thread) { return Bytecode_at(bcp(thread)); } |
64 static Bytecode bytecode(JavaThread *thread) { return Bytecode(method(thread), bcp(thread)); } |
65 static int get_index_u1(JavaThread *thread, Bytecodes::Code bc) |
65 static int get_index_u1(JavaThread *thread, Bytecodes::Code bc) |
66 { return bytecode(thread)->get_index_u1(bc); } |
66 { return bytecode(thread).get_index_u1(bc); } |
67 static int get_index_u2(JavaThread *thread, Bytecodes::Code bc) |
67 static int get_index_u2(JavaThread *thread, Bytecodes::Code bc) |
68 { return bytecode(thread)->get_index_u2(bc); } |
68 { return bytecode(thread).get_index_u2(bc); } |
69 static int get_index_u2_cpcache(JavaThread *thread, Bytecodes::Code bc) |
69 static int get_index_u2_cpcache(JavaThread *thread, Bytecodes::Code bc) |
70 { return bytecode(thread)->get_index_u2_cpcache(bc); } |
70 { return bytecode(thread).get_index_u2_cpcache(bc); } |
71 static int number_of_dimensions(JavaThread *thread) { return bcp(thread)[3]; } |
71 static int number_of_dimensions(JavaThread *thread) { return bcp(thread)[3]; } |
72 |
72 |
73 static ConstantPoolCacheEntry* cache_entry_at(JavaThread *thread, int i) { return method(thread)->constants()->cache()->entry_at(i); } |
73 static ConstantPoolCacheEntry* cache_entry_at(JavaThread *thread, int i) { return method(thread)->constants()->cache()->entry_at(i); } |
74 static ConstantPoolCacheEntry* cache_entry(JavaThread *thread) { return cache_entry_at(thread, Bytes::get_native_u2(bcp(thread) + 1)); } |
74 static ConstantPoolCacheEntry* cache_entry(JavaThread *thread) { return cache_entry_at(thread, Bytes::get_native_u2(bcp(thread) + 1)); } |
75 static void note_trap(JavaThread *thread, int reason, TRAPS); |
75 static void note_trap(JavaThread *thread, int reason, TRAPS); |