diff -r 9e8daec25638 -r ecc7862946d4 hotspot/src/share/vm/interpreter/interpreterRuntime.hpp --- a/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp Mon Apr 20 14:48:03 2009 -0700 +++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp Tue Apr 21 23:21:04 2009 -0700 @@ -42,8 +42,11 @@ static bool already_resolved(JavaThread *thread) { return cache_entry(thread)->is_resolved(code(thread)); } static int one_byte_index(JavaThread *thread) { return bcp(thread)[1]; } static int two_byte_index(JavaThread *thread) { return Bytes::get_Java_u2(bcp(thread) + 1); } + static int four_byte_index(JavaThread *thread) { return Bytes::get_native_u4(bcp(thread) + 1); } static int number_of_dimensions(JavaThread *thread) { return bcp(thread)[3]; } - static ConstantPoolCacheEntry* cache_entry(JavaThread *thread) { return method(thread)->constants()->cache()->entry_at(Bytes::get_native_u2(bcp(thread) + 1)); } + + static ConstantPoolCacheEntry* cache_entry_at(JavaThread *thread, int i) { return method(thread)->constants()->cache()->entry_at(i); } + static ConstantPoolCacheEntry* cache_entry(JavaThread *thread) { return cache_entry_at(thread, Bytes::get_native_u2(bcp(thread) + 1)); } static void note_trap(JavaThread *thread, int reason, TRAPS); public: @@ -83,7 +86,9 @@ static void new_illegal_monitor_state_exception(JavaThread* thread); // Calls - static void resolve_invoke (JavaThread* thread, Bytecodes::Code bytecode); + static void resolve_invoke (JavaThread* thread, Bytecodes::Code bytecode); + static void resolve_invokedynamic(JavaThread* thread); + static void bootstrap_invokedynamic(JavaThread* thread, oopDesc* call_site); // Breakpoints static void _breakpoint(JavaThread* thread, methodOopDesc* method, address bcp);