comparison src/share/vm/interpreter/interpreterRuntime.hpp @ 1602:136b78722a08

6939203: JSR 292 needs method handle constants Summary: Add new CP types CONSTANT_MethodHandle, CONSTANT_MethodType; extend 'ldc' bytecode. Reviewed-by: twisti, never
author jrose
date Wed, 09 Jun 2010 18:50:45 -0700
parents e9ff18c4ace7
children f95d63e2154a
comparison
equal deleted inserted replaced
1585:49fac4acd688 1602:136b78722a08
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);