[PATCH] jit: skip conversion of unreachable basic blocks
Basic blocks which are unreachable in CFG and are not exception handlers will not be converted. This is a workaround for a problem encountered in bytecode generated by clojure. Clojure generates unreachable basic blocks which leave empty mimic stack and jump to a basic block which expects a value on mimic stack. This breaks mimic stack resolution because we have different stack depths on different paths (bb1-bb3 and bb2-bb3): ... --- bb1 (unreachable) [main][ 354 ] 0xa7 goto 359 --- bb2 [main][ 357 ] 0x57 pop [main][ 358 ] 0x01 aconst_null --- bb3 [main][ 359 ] 0xb0 areturn Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/bytecode-to-ir.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/jit/bytecode-to-ir.c b/jit/bytecode-to-ir.c index a93a2ca..5f66587 100644 --- a/jit/bytecode-to-ir.c +++ b/jit/bytecode-to-ir.c @@ -434,6 +434,9 @@ int convert_to_ir(struct compilation_unit *cu) * really converted all basic blocks. */ for_each_basic_block(bb, cu-bb_list) { + if (!bb-is_eh) + continue; + err = convert_bb_to_ir(bb); if (err) break; -- 1.6.0.4 -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 57ac9b: jit: skip conversion of unreachable basic blocks
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 57ac9bead86fda7612245ead4faf3726395aa089 http://github.com/penberg/jato/commit/57ac9bead86fda7612245ead4faf3726395aa089 Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M jit/bytecode-to-ir.c Log Message: --- jit: skip conversion of unreachable basic blocks Basic blocks which are unreachable in CFG and are not exception handlers will not be converted. This is a workaround for a problem encountered in bytecode generated by clojure. Clojure generates unreachable basic blocks which leave empty mimic stack and jump to a basic block which expects a value on mimic stack. This breaks mimic stack resolution because we have different stack depths on different paths (bb1-bb3 and bb2-bb3): -- bb1 (unreachable) [main][ 354 ] 0xa7 goto 359 -- bb2 [main][ 357 ] 0x57 pop [main][ 358 ] 0x01 aconst_null -- bb3 [main][ 359 ] 0xb0 areturn Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 54893c: Implement AtomicLong.VMSupportsCS8()
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 54893cea2f29b67241fbad13f02f1236ee0fcbd6 http://github.com/penberg/jato/commit/54893cea2f29b67241fbad13f02f1236ee0fcbd6 Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M vm/jato.c Log Message: --- Implement AtomicLong.VMSupportsCS8() This is needed by Clojure. Lets return false from the method for now. Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 2e5dd6: x86: Separate 32 and 64-bit atomic.h
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 2e5dd6daedc211c399741f76ffa0d660c2a463e4 http://github.com/penberg/jato/commit/2e5dd6daedc211c399741f76ffa0d660c2a463e4 Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M arch/x86/include/arch/atomic.h A arch/x86/include/arch/atomic_32.h A arch/x86/include/arch/atomic_64.h Log Message: --- x86: Separate 32 and 64-bit atomic.h As a preparational step for introducing atomic_cmpxchg_64() on 32-bit, separate 32-bit and 64-bit atomic.h header files. Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: 9a794542b8fd0dcbec5b5d68946ef51ed95321d5 http://github.com/penberg/jato/commit/9a794542b8fd0dcbec5b5d68946ef51ed95321d5 Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M arch/x86/Makefile_32 A arch/x86/atomic_32.c M arch/x86/include/arch/atomic_32.h M include/vm/unsafe.h M regression/sun/misc/UnsafeTest.java M vm/jato.c M vm/unsafe.c Log Message: --- Implement Unsafe.compareAndSwapLong() Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[PATCH 4/4] vm: fix call_static_method() and call_virtual_method()
Those functions should return values wrapped in approptiate objects, not the value itself. This caused a SIGSEGV when running clojure because an integer value was accessed like an object reference. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/reflection.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vm/reflection.c b/vm/reflection.c index 027bfb4..6d03a57 100644 --- a/vm/reflection.c +++ b/vm/reflection.c @@ -721,7 +721,7 @@ call_virtual_method(struct vm_method *vmm, struct vm_object *o, return NULL; vm_call_method_this_a(vmm, o, args, result); - return result.l; + return wrap(result, vmm-return_type.vm_type); } static struct vm_object * @@ -734,7 +734,7 @@ call_static_method(struct vm_method *vmm, struct vm_object *args_array) return NULL; vm_call_method_a(vmm, args, result); - return result.l; + return wrap(result, vmm-return_type.vm_type); } jint native_method_get_modifiers_internal(struct vm_object *this) -- 1.6.0.4 -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[PATCH 1/4] vm: change call result return method for vm_call_method_*() so that it can handle any type
Before that, all vm_call_method_*() functions returned unsigned long which was not a good idea because there was no way to handle jlong or jdouble this way on x86. This patch changes the API, so that vm_call_method_*() functions are given a pointer to a union jvalue to which the result should be saved. This way we can use vm_call_method_*() functions in a machine and type independed way. While at it, implement JNI funciton families: CallStatic*Method() CallStatic*MethodV() Call*Method() Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/call.c| 222 +++- include/vm/call.h | 85 + vm/call.c | 40 vm/jni-interface.c | 265 +--- vm/reflection.c| 21 +++-- 5 files changed, 385 insertions(+), 248 deletions(-) diff --git a/arch/x86/call.c b/arch/x86/call.c index 08b7ac9..717d53d 100644 --- a/arch/x86/call.c +++ b/arch/x86/call.c @@ -37,14 +37,13 @@ #ifdef CONFIG_X86_32 /** - * This calls a function with call arguments copied from @args - * array. The array contains @args_count elements of machine word - * size. The @target must be a variable holding a function - * pointer. Call result will be stored in @result. + * Calls @method which address is obtained from a memory + * pointed by @target. Function returns call result which + * is supposed to be saved to %eax. */ -unsigned long native_call(struct vm_method *method, - const void *target, - unsigned long *args) +static unsigned long native_call_gp(struct vm_method *method, + const void *target, + unsigned long *args) { unsigned long result; @@ -66,15 +65,9 @@ unsigned long native_call(struct vm_method *method, return result; } -/** - * This calls a VM native function with call arguments copied from - * @args array. The array contains @args_count elements of machine - * word size. The @target must be a pointer to a VM function. Call - * result will be stored in @result. - */ -unsigned long vm_native_call(struct vm_method *method, -const void *target, -unsigned long *args) +static unsigned long vm_native_call_gp(struct vm_method *method, + const void *target, + unsigned long *args) { unsigned long result; @@ -108,11 +101,104 @@ unsigned long vm_native_call(struct vm_method *method, return result; } +/** + * This calls a function with call arguments copied from @args + * array. The array contains @args_count elements of machine word + * size. The @target must be a variable holding a function + * pointer. Call result will be stored in @result. + */ +void native_call(struct vm_method *method, +const void *target, +unsigned long *args, +union jvalue *result) +{ + switch (method-return_type.vm_type) { + case J_VOID: + native_call_gp(method, target, args); + break; + case J_REFERENCE: + result-l = (jobject) native_call_gp(method, target, args); + break; + case J_INT: + result-i = (jint) native_call_gp(method, target, args); + break; + case J_CHAR: + result-c = (jchar) native_call_gp(method, target, args); + break; + case J_BYTE: + result-b = (jbyte) native_call_gp(method, target, args); + break; + case J_SHORT: + result-s = (jshort) native_call_gp(method, target, args); + break; + case J_BOOLEAN: + result-z = (jboolean) native_call_gp(method, target, args); + break; + case J_LONG: + case J_DOUBLE: + case J_FLOAT: + NOT_IMPLEMENTED; + break; + case J_RETURN_ADDRESS: + case VM_TYPE_MAX: + die(unexpected type); + } +} + +/** + * This calls a VM native function with call arguments copied from + * @args array. The array contains @args_count elements of machine + * word size. The @target must be a pointer to a VM function. Call + * result will be stored in @result. + */ +void vm_native_call(struct vm_method *method, + const void *target, + unsigned long *args, + union jvalue *result) +{ + switch (method-return_type.vm_type) { + case J_VOID: + vm_native_call_gp(method, target, args); + break; + case J_REFERENCE: + result-l = (jobject) vm_native_call_gp(method, target, args); + break; + case J_INT: + result-i = (jint) vm_native_call_gp(method, target, args); + break; + case J_CHAR: +
[PATCH 3/4] vm: rename encapsulate_value() to wrap()
While at it, make it more robust by using valueOf() functions. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/preload.h |8 +++ vm/preload.c | 56 ++ vm/reflection.c | 153 -- 3 files changed, 124 insertions(+), 93 deletions(-) diff --git a/include/vm/preload.h b/include/vm/preload.h index a99fa89..d09f6b7 100644 --- a/include/vm/preload.h +++ b/include/vm/preload.h @@ -101,13 +101,21 @@ extern struct vm_method *vm_java_lang_VMThread_init; extern struct vm_method *vm_java_lang_VMThread_run; extern struct vm_method *vm_java_lang_System_exit; extern struct vm_method *vm_java_lang_Boolean_init; +extern struct vm_method *vm_java_lang_Boolean_valueOf; extern struct vm_method *vm_java_lang_Byte_init; +extern struct vm_method *vm_java_lang_Byte_valueOf; extern struct vm_method *vm_java_lang_Character_init; +extern struct vm_method *vm_java_lang_Character_valueOf; extern struct vm_method *vm_java_lang_Double_init; +extern struct vm_method *vm_java_lang_Double_valueOf; extern struct vm_method *vm_java_lang_Float_init; +extern struct vm_method *vm_java_lang_Float_valueOf; extern struct vm_method *vm_java_lang_Integer_init; +extern struct vm_method *vm_java_lang_Integer_valueOf; extern struct vm_method *vm_java_lang_Long_init; +extern struct vm_method *vm_java_lang_Long_valueOf; extern struct vm_method *vm_java_lang_Short_init; +extern struct vm_method *vm_java_lang_Short_valueOf; extern struct vm_method *vm_java_lang_ClassLoader_loadClass; extern struct vm_method *vm_java_lang_ClassLoader_getSystemClassLoader; extern struct vm_method *vm_java_lang_Number_intValue; diff --git a/vm/preload.c b/vm/preload.c index 23516af..ba2d50f 100644 --- a/vm/preload.c +++ b/vm/preload.c @@ -247,13 +247,21 @@ struct vm_method *vm_java_lang_VMThread_init; struct vm_method *vm_java_lang_VMThread_run; struct vm_method *vm_java_lang_System_exit; struct vm_method *vm_java_lang_Boolean_init; +struct vm_method *vm_java_lang_Boolean_valueOf; struct vm_method *vm_java_lang_Byte_init; +struct vm_method *vm_java_lang_Byte_valueOf; struct vm_method *vm_java_lang_Character_init; +struct vm_method *vm_java_lang_Character_valueOf; struct vm_method *vm_java_lang_Double_init; +struct vm_method *vm_java_lang_Double_valueOf; struct vm_method *vm_java_lang_Float_init; +struct vm_method *vm_java_lang_Float_valueOf; struct vm_method *vm_java_lang_Integer_init; +struct vm_method *vm_java_lang_Integer_valueOf; struct vm_method *vm_java_lang_Long_init; +struct vm_method *vm_java_lang_Long_valueOf; struct vm_method *vm_java_lang_Short_init; +struct vm_method *vm_java_lang_Short_valueOf; struct vm_method *vm_java_lang_ClassLoader_loadClass; struct vm_method *vm_java_lang_ClassLoader_getSystemClassLoader; struct vm_method *vm_java_lang_VMString_intern; @@ -360,48 +368,96 @@ static const struct method_preload_entry method_preload_entries[] = { vm_java_lang_Boolean_init, }, { + vm_java_lang_Boolean, + valueOf, + (Z)Ljava/lang/Boolean;, + vm_java_lang_Boolean_valueOf, + }, + { vm_java_lang_Byte, init, (B)V, vm_java_lang_Byte_init, }, { + vm_java_lang_Byte, + valueOf, + (B)Ljava/lang/Byte;, + vm_java_lang_Byte_valueOf, + }, + { vm_java_lang_Character, init, (C)V, vm_java_lang_Character_init, }, { + vm_java_lang_Character, + valueOf, + (C)Ljava/lang/Character;, + vm_java_lang_Character_valueOf, + }, + { vm_java_lang_Double, init, (D)V, vm_java_lang_Double_init, }, { + vm_java_lang_Double, + valueOf, + (D)Ljava/lang/Double;, + vm_java_lang_Double_valueOf, + }, + { vm_java_lang_Long, init, (J)V, vm_java_lang_Long_init, }, { + vm_java_lang_Long, + valueOf, + (J)Ljava/lang/Long;, + vm_java_lang_Long_valueOf, + }, + { vm_java_lang_Short, init, (S)V, vm_java_lang_Short_init, }, { + vm_java_lang_Short, + valueOf, + (S)Ljava/lang/Short;, + vm_java_lang_Short_valueOf, + }, + { vm_java_lang_Float, init, (F)V, vm_java_lang_Float_init, }, { + vm_java_lang_Float, + valueOf, + (F)Ljava/lang/Float;, +
[PATCH 1/4] vm: fix native_vmclass_get_declared_methods()
We should perform the vm_method_is_special() check also when public_only == false; Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/reflection.c | 23 ++- 1 files changed, 10 insertions(+), 13 deletions(-) diff --git a/vm/reflection.c b/vm/reflection.c index 6d03a57..d97fec9 100644 --- a/vm/reflection.c +++ b/vm/reflection.c @@ -173,6 +173,7 @@ native_vmclass_get_declared_methods(struct vm_object *clazz, jboolean public_only) { struct vm_class *vmc; + int count; vmc = vm_object_to_vm_class(clazz); if (!vmc) @@ -181,25 +182,21 @@ native_vmclass_get_declared_methods(struct vm_object *clazz, if (vm_class_is_primitive_class(vmc) || vm_class_is_array_class(vmc)) return vm_object_alloc_array(vm_array_of_java_lang_reflect_Field, 0); - int count; + count = 0; + for (int i = 0; i vmc-class-methods_count; i++) { + struct vm_method *vmm = vmc-methods[i]; - if (public_only) { - count = 0; + if (public_only !vm_method_is_public(vmm)) + continue; - for (int i = 0; i vmc-class-methods_count; i++) { - struct vm_method *vmm = vmc-methods[i]; + if (vm_method_is_special(vmm)) + continue; - if (vm_method_is_public(vmm) - !vm_method_is_special(vmm)) - count ++; - } - } else { - count = vmc-class-methods_count; + count ++; } struct vm_object *array - = vm_object_alloc_array(vm_array_of_java_lang_reflect_Method, - count); + = vm_object_alloc_array(vm_array_of_java_lang_reflect_Method, count); if (!array) { NOT_IMPLEMENTED; return NULL; -- 1.6.0.4 -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[PATCH 2/4] regression: fix TestCase.assertObjectEquals()
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- regression/jvm/TestCase.java |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/regression/jvm/TestCase.java b/regression/jvm/TestCase.java index fd00063..2a53a8b 100644 --- a/regression/jvm/TestCase.java +++ b/regression/jvm/TestCase.java @@ -90,7 +90,7 @@ public class TestCase { assertTrue(o.getClass().getName().equals(className)); } -protected static void assertObjectEquals(String a, String b) { +protected static void assertObjectEquals(Object a, Object b) { if (a == null b == null) return; -- 1.6.0.4 -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[PATCH 3/4] x86: make native_call() hard crash for not implemented types.
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/call.c |8 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/call.c b/arch/x86/call.c index 717d53d..0b96020 100644 --- a/arch/x86/call.c +++ b/arch/x86/call.c @@ -137,7 +137,7 @@ void native_call(struct vm_method *method, case J_LONG: case J_DOUBLE: case J_FLOAT: - NOT_IMPLEMENTED; + error(not implemented); break; case J_RETURN_ADDRESS: case VM_TYPE_MAX: @@ -181,7 +181,7 @@ void vm_native_call(struct vm_method *method, case J_LONG: case J_DOUBLE: case J_FLOAT: - NOT_IMPLEMENTED; + error(not implemented); break; case J_RETURN_ADDRESS: case VM_TYPE_MAX: @@ -294,7 +294,7 @@ void native_call(struct vm_method *method, break; case J_DOUBLE: case J_FLOAT: - NOT_IMPLEMENTED; + error(not implemented); break; case J_RETURN_ADDRESS: case VM_TYPE_MAX: @@ -340,7 +340,7 @@ void vm_native_call(struct vm_method *method, break; case J_DOUBLE: case J_FLOAT: - NOT_IMPLEMENTED; + error(not implemented); break; case J_RETURN_ADDRESS: case VM_TYPE_MAX: -- 1.6.0.4 -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[PATCH] vm: fix bug in native_field_get()
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/reflection.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/vm/reflection.c b/vm/reflection.c index d97fec9..faf27bd 100644 --- a/vm/reflection.c +++ b/vm/reflection.c @@ -621,7 +621,7 @@ struct vm_object *native_field_get(struct vm_object *this, struct vm_object *o) value_p = o-fields[vmf-offset]; } - return wrap((union jvalue *) value_p, type); + return wrap((union jvalue *) value_p, type); } jint native_field_get_modifiers_internal(struct vm_object *this) -- 1.6.0.4 -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 2800c1: vm: change call result return method for vm_call_m...
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 2800c15f01d34f3a876fa8ad8cade6d4d8bbc89b http://github.com/penberg/jato/commit/2800c15f01d34f3a876fa8ad8cade6d4d8bbc89b Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M arch/x86/call.c M include/vm/call.h M vm/call.c M vm/jni-interface.c M vm/reflection.c Log Message: --- vm: change call result return method for vm_call_method_*() so that it can handle any type Before that, all vm_call_method_*() functions returned unsigned long which was not a good idea because there was no way to handle jlong or jdouble this way on x86. This patch changes the API, so that vm_call_method_*() functions are given a pointer to a union jvalue to which the result should be saved. This way we can use vm_call_method_*() functions in a machine and type independed way. While at it, implement JNI funciton families: CallStatic*Method() CallStatic*MethodV() Call*Method() Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: 5b3f9aceb2a06450a7b144d891613cbb19ba12be http://github.com/penberg/jato/commit/5b3f9aceb2a06450a7b144d891613cbb19ba12be Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M include/vm/preload.h M vm/preload.c M vm/reflection.c Log Message: --- vm: implement unwrap() for J_LONG and J_DOUBLE Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: d40ed3a80f0834e0e4ef3563ea7b6360f34c892a http://github.com/penberg/jato/commit/d40ed3a80f0834e0e4ef3563ea7b6360f34c892a Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M include/vm/preload.h M vm/preload.c M vm/reflection.c Log Message: --- vm: rename encapsulate_value() to wrap() While at it, make it more robust by using valueOf() functions. Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: c112c32fe6ac47688d888d88241767eb68d29158 http://github.com/penberg/jato/commit/c112c32fe6ac47688d888d88241767eb68d29158 Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M vm/reflection.c Log Message: --- vm: fix call_static_method() and call_virtual_method() Those functions should return values wrapped in approptiate objects, not the value itself. This caused a SIGSEGV when running clojure because an integer value was accessed like an object reference. Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: 79f827b6c3ad989ba7b05268d5f1ce7f333ae761 http://github.com/penberg/jato/commit/79f827b6c3ad989ba7b05268d5f1ce7f333ae761 Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M vm/reflection.c Log Message: --- vm: fix native_vmclass_get_declared_methods() We should perform the vm_method_is_special() check also when public_only == false; Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: ac9a5a30b7f879cf869c6f4888f9a504b6cecaa0 http://github.com/penberg/jato/commit/ac9a5a30b7f879cf869c6f4888f9a504b6cecaa0 Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M regression/jvm/TestCase.java Log Message: --- regression: fix TestCase.assertObjectEquals() Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: d323b0fe358ccc54f1277ca23becbb79d50391ee http://github.com/penberg/jato/commit/d323b0fe358ccc54f1277ca23becbb79d50391ee Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M arch/x86/call.c Log Message: --- x86: make native_call() hard crash for not implemented types. Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: b9216f14470638be038b2a748915931d11c232e0 http://github.com/penberg/jato/commit/b9216f14470638be038b2a748915931d11c232e0 Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M regression/jvm/MethodTest.java Log Message: --- regression: add regression test for method invokation via reflection Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: b4b01dcdd6052eafe18501f683274daf3b42aba6 http://github.com/penberg/jato/commit/b4b01dcdd6052eafe18501f683274daf3b42aba6 Author: Tomek Grabiec tgrab...@gmail.com Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M vm/reflection.c Log Message: --- vm: fix bug in native_field_get() Signed-off-by: Tomek Grabiec tgrab...@gmail.com Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi
[penberg/jato] 5ab2c5: regression: Move reflection API tests to new packa...
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 5ab2c53a70cc1f288c86a10e3a6da567a88f97de http://github.com/penberg/jato/commit/5ab2c53a70cc1f288c86a10e3a6da567a88f97de Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M Makefile A regression/java/lang/reflect/ClassTest.java A regression/java/lang/reflect/MethodTest.java R regression/jvm/ClassTest.java R regression/jvm/MethodTest.java M regression/run-suite.sh Log Message: --- regression: Move reflection API tests to new package This patch moves reflection API tests to java.lang.reflect package in the regress directory to make them stand out better from the core JVM test cases in jvm package. Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] a21441: Move LICENSE to top level
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: a214410456791f961a2d1da18356c557a415ecaa http://github.com/penberg/jato/commit/a214410456791f961a2d1da18356c557a415ecaa Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: A LICENSE R jit/LICENSE Log Message: --- Move LICENSE to top level Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] fdb155: jit: rename subroutines_should_not_occure() to fai...
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: fdb155807a1c864e3c8f8be86cf7af7a27d70446 http://github.com/penberg/jato/commit/fdb155807a1c864e3c8f8be86cf7af7a27d70446 Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M include/jit/subroutine.h M jit/subroutine.c Log Message: --- jit: rename subroutines_should_not_occure() to fail_subroutine_bc() Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi Commit: 5744c486b4bf9b40f8112e0bfdf5f1abc9f86e47 http://github.com/penberg/jato/commit/5744c486b4bf9b40f8112e0bfdf5f1abc9f86e47 Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M jit/subroutine.c Log Message: --- jit: Move reference to header of jit/subroutine.c The reference to subroutine bytecode inlining paper is important information for anyone reading the code so move the reference to header of jit/subroutine.c like the ones we have in jit/linear-scan.c. Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 671d24: jit: clean up includes in jit/subroutine.c
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 671d24748077e5a19524026a5575465a4077a3bd http://github.com/penberg/jato/commit/671d24748077e5a19524026a5575465a4077a3bd Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M jit/subroutine.c Log Message: --- jit: clean up includes in jit/subroutine.c We should include our own headers before we include headers to make sure the former headers are standalone. Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 9f290d: Update README
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 9f290dee78e11308945bba0e1b0b428917aeb4e9 http://github.com/penberg/jato/commit/9f290dee78e11308945bba0e1b0b428917aeb4e9 Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M README Log Message: --- Update README Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel
[penberg/jato] 27a646: Fix typo in README
Branch: refs/heads/master Home: http://github.com/penberg/jato Commit: 27a64688281b4adb994165ab7273d2e4c9d2835d http://github.com/penberg/jato/commit/27a64688281b4adb994165ab7273d2e4c9d2835d Author: Pekka Enberg penb...@cs.helsinki.fi Date: 2009-10-11 (Sun, 11 Oct 2009) Changed paths: M README Log Message: --- Fix typo in README Signed-off-by: Pekka Enberg penb...@cs.helsinki.fi -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel