32 private: |
32 private: |
33 // Helper functions to access current interpreter state |
33 // Helper functions to access current interpreter state |
34 static frame last_frame(JavaThread *thread) { return thread->last_frame(); } |
34 static frame last_frame(JavaThread *thread) { return thread->last_frame(); } |
35 static methodOop method(JavaThread *thread) { return last_frame(thread).interpreter_frame_method(); } |
35 static methodOop method(JavaThread *thread) { return last_frame(thread).interpreter_frame_method(); } |
36 static address bcp(JavaThread *thread) { return last_frame(thread).interpreter_frame_bcp(); } |
36 static address bcp(JavaThread *thread) { return last_frame(thread).interpreter_frame_bcp(); } |
|
37 static int bci(JavaThread *thread) { return last_frame(thread).interpreter_frame_bci(); } |
37 static void set_bcp_and_mdp(address bcp, JavaThread*thread); |
38 static void set_bcp_and_mdp(address bcp, JavaThread*thread); |
38 static Bytecodes::Code code(JavaThread *thread) { |
39 static Bytecodes::Code code(JavaThread *thread) { |
39 // pass method to avoid calling unsafe bcp_to_method (partial fix 4926272) |
40 // pass method to avoid calling unsafe bcp_to_method (partial fix 4926272) |
40 return Bytecodes::code_at(bcp(thread), method(thread)); |
41 return Bytecodes::code_at(bcp(thread), method(thread)); |
41 } |
42 } |
57 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp); |
58 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp); |
58 |
59 |
59 public: |
60 public: |
60 // Constants |
61 // Constants |
61 static void ldc (JavaThread* thread, bool wide); |
62 static void ldc (JavaThread* thread, bool wide); |
|
63 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode); |
62 |
64 |
63 // Allocation |
65 // Allocation |
64 static void _new (JavaThread* thread, constantPoolOopDesc* pool, int index); |
66 static void _new (JavaThread* thread, constantPoolOopDesc* pool, int index); |
65 static void newarray (JavaThread* thread, BasicType type, jint size); |
67 static void newarray (JavaThread* thread, BasicType type, jint size); |
66 static void anewarray (JavaThread* thread, constantPoolOopDesc* pool, int index, jint size); |
68 static void anewarray (JavaThread* thread, constantPoolOopDesc* pool, int index, jint size); |