Simple dynamic language using invokedynamic
Christian Thalinger
Christian.Thalinger at Sun.COM
Wed Jun 24 06:48:47 PDT 2009
Jochen Theodorou wrote:
> thanks... but this seems to say, that all the patches got applied. And
> then that means that for me the mlvm is not working at all. Even simple
> things won't do.
>
> strange... all of a sudden I get a compilation error:
>
>> /home/blackdrag/coding/davinci/mlvm/sources/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp: In function 'void trace_method_handle_stub(const char*, oopDesc*, intptr_t*, intptr_t*)':
>> /home/blackdrag/coding/davinci/mlvm/sources/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp:276: error: format '%016lx' expects type 'long unsigned int', but argument 3 has type 'oopDesc*'
>> /home/blackdrag/coding/davinci/mlvm/sources/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp:276: error: format '%016lx' expects type 'long unsigned int', but argument 4 has type 'intptr_t*'
>> make[7]: *** [methodHandles_x86.o] Error 1
>
Yeah, that one is trivial and should be fixed in the hotspot repository.
IIRC it only fails with GCC on Linux. This is a fix:
diff --git a/src/cpu/x86/vm/methodHandles_x86.cpp
b/src/cpu/x86/vm/methodHandles_x86.cpp
--- a/src/cpu/x86/vm/methodHandles_x86.cpp
+++ b/src/cpu/x86/vm/methodHandles_x86.cpp
@@ -273,7 +273,7 @@ void trace_method_handle_stub(const char
intptr_t* entry_sp,
intptr_t* saved_sp) {
// called as a leaf from native code: do not block the JVM!
- printf("MH %s "PTR_FORMAT" "PTR_FORMAT" "INTX_FORMAT"\n",
adaptername, mh, entry_sp, entry_sp - saved_sp);
+ printf("MH %s "PTR_FORMAT" "PTR_FORMAT" "INTX_FORMAT"\n",
adaptername, (intptr_t) mh, (intptr_t) entry_sp, entry_sp - saved_sp);
}
#endif //PRODUCT
John, should we open a bug for that one or are there plans to commit
other MethodHandle stuff to the hotspot repository soon?
-- Christian
More information about the mlvm-dev
mailing list