Mercurial > hg > truffle
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); |