[PATCH 2/2] x86: fix bug in emit_jni_trampoline()

2009-07-05 Thread Tomek Grabiec
We cannot overwrite a register which is not saved (ESI) because this will lead to a corruption in JIT code. The proper solution is to copy the call arguments. Signed-off-by: Tomek Grabiec --- arch/x86/emit-code.c| 37 +++-- include/jit/compiler.h |3 ++-

[PATCH 1/2] x86: fix bug in invokeinterface and invokevirtual args cleanup

2009-07-05 Thread Tomek Grabiec
method->args_count should be used to get the size of arguments, not nr_args(args_list). This bug led to stack overflow with the following code: public class Test { public void c(long x) { } public static void main(String[] args) { Test t = new Test(); int x = 0;

[PATCH 6/7] vm: implement [VM]Object.clone()

2009-07-05 Thread Vegard Nossum
Signed-off-by: Vegard Nossum --- include/vm/object.h|2 + test/vm/preload-stub.c |1 + vm/class.c |5 ++- vm/jato.c |9 - vm/object.c| 78 5 files changed, 91 insertions(+), 4 deletions

[PATCH 4/7] vm: preload java.lang.Cloneable

2009-07-05 Thread Vegard Nossum
Signed-off-by: Vegard Nossum --- include/vm/preload.h |1 + vm/preload.c |2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/include/vm/preload.h b/include/vm/preload.h index d083411..646a68c 100644 --- a/include/vm/preload.h +++ b/include/vm/preload.h @@ -3,6 +3

[PATCH 7/7] regression: add CloneTest

2009-07-05 Thread Vegard Nossum
Signed-off-by: Vegard Nossum --- Makefile |1 + regression/jvm/CloneTest.java | 64 + regression/run-suite.sh |1 + 3 files changed, 66 insertions(+), 0 deletions(-) create mode 100644 regression/jvm/CloneTest.java dif

[PATCH 3/7] vm: introduce nr_interfaces in vm_class

2009-07-05 Thread Vegard Nossum
We used to use class->interfaces_count (where 'class' is a pointer to a cafebabe class struct). But array (and native) classes don't have a "physical" representation. It's better to just set nr_interfaces to 0 instead of special-casing ->class everywhere; besides, array classes need to implement th

[PATCH 2/7] vm: clean up class linking a little bit

2009-07-05 Thread Vegard Nossum
We need to separate the linking process of array classes and primitive classes (that's what the JVM spec. wants us to use to represent "int") for object and array cloning. These linking functions should probably initialize _all_ the fields of the VM class, we don't do that yet. Signed-off-by: Veg

[PATCH 5/7] vm: add vmtype -> bytecode type conversion

2009-07-05 Thread Vegard Nossum
I suspect that we should just make object allocation take a vm type instead (and convert the callers that need it to send a vm type instead of a bytecode type). But that's for a later cleanup, we need this now. Signed-off-by: Vegard Nossum --- include/vm/types.h |1 + vm/types.c |

[PATCH 1/7] regression: compile and run the test cases in alphabetic order

2009-07-05 Thread Vegard Nossum
This makes it somewhat easier to find tests if you're looking them up by name. It looks better too, in my opinion. Signed-off-by: Vegard Nossum --- Makefile| 50 +++--- regression/run-suite.sh | 46 +-

[PATCH 2/2] vm: fix native_vmobject_getclass()

2009-07-05 Thread Tomek Grabiec
Add missing return after throw_from_native() and put object->class check in assertion Reported-by: Vegard Nossum Signed-off-by: Tomek Grabiec --- vm/jato.c |5 - 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index e28e808..c18ddd9 100644 --- a/vm/

[PATCH 1/2] vm: add license text to jni.c and jni-interface.c

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jni-interface.c | 26 ++ vm/jni.c | 26 ++ 2 files changed, 52 insertions(+), 0 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index 319c43a..fe16df4 100644 --- a/vm/jni-interfac

Re: [PATCH] vm: implement java/io/VMFile.isDirectory()

2009-07-05 Thread Vegard Nossum
2009/7/5 Tomek Grabiec : > > Signed-off-by: Tomek Grabiec > --- >  vm/jato.c |   24 >  1 files changed, 24 insertions(+), 0 deletions(-) > > diff --git a/vm/jato.c b/vm/jato.c > index dfdd60b..9086f1d 100644 > --- a/vm/jato.c > +++ b/vm/jato.c > @@ -32,6 +32,9 @@ >  #inclu

[PATCH] vm: set 'line.separator' property

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jato.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 9086f1d..e28e808 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -105,6 +105,7 @@ static void __vm_native native_vmsystemproperties_preinit(struct vm_object

[PATCH 2/2] vm: implement JNI function vm_release_string_utf_chars()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jni-interface.c |8 +++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index d41f55b..319c43a 100644 --- a/vm/jni-interface.c +++ b/vm/jni-interface.c @@ -104,6 +104,12 @@ const jbyte* vm_jni_get

[PATCH 1/2] vm: implement JNI function vm_jni_get_string_utf_chars()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jni-interface.c | 20 +++- 1 files changed, 19 insertions(+), 1 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index fad8988..d41f55b 100644 --- a/vm/jni-interface.c +++ b/vm/jni-interface.c @@ -86,6 +86,24 @@ jfieldID vm_

[PATCH] vm: implement java/io/VMFile.isDirectory()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jato.c | 24 1 files changed, 24 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index dfdd60b..9086f1d 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -32,6 +32,9 @@ #include #include #include +#include +#include

[PATCH 3/3] vm: preliminary support for JNI

2009-07-05 Thread Tomek Grabiec
Support for loading objects with native code, invoking JNI native methods. Few JNI native interface functions implemented. Signed-off-by: Tomek Grabiec --- Makefile |4 +- arch/x86/emit-code.c | 24 +++ arch/x86/insn-selector_32.brg |3 +- include/jit/comp

[PATCH 2/3] vm: implement native_vmruntime_maplibraryname()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jato.c | 61 +++-- 1 files changed, 59 insertions(+), 2 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 865deda..fb7ecb0 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -130,8 +130,65 @@ static void __

[PATCH 1/3] vm: implement native_vmstackwalker_getclasscontext()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/jato.c | 15 ++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index e4b5098..865deda 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -67,11 +67,24 @@ char *exe_name; static struct vm_object *__vm_native nativ

[GIT PULL] header fixes

2009-07-05 Thread Vegard Nossum
Hi, The following changes since commit e4ecd64a7ee3dc57390ec9e1a107da01114757c7: Tomek Grabiec (1): regression: add test for Throwable.getStackTrace() are available in the git repository at: git://github.com/vegard/jato.git for-pekka Vegard Nossum (2): Switch from #include <>

[GIT PULL] attribute parsing in cafebabe

2009-07-05 Thread Vegard Nossum
Hi, The following changes since commit 8d2835ac5b4c1513d3ee04eb09b32788af714cf5: Vegard Nossum (1): vm: search the classpath in the right order are available in the git repository at: git://github.com/vegard/jato.git for-pekka Tomek Grabiec (2): cafebabe: Add support for Sourc

[PATCH 3/3] regression: add test for Throwable.getStackTrace()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- regression/jvm/ExceptionsTest.java | 26 ++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/regression/jvm/ExceptionsTest.java b/regression/jvm/ExceptionsTest.java index 7d84cde..fccf9c1 100644 --- a/regression/jvm/Except

[PATCH 1/3] vm: properly set source file name of a class

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/class.c |4 vm/classloader.c |5 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/vm/class.c b/vm/class.c index df22058..48f30d2 100644 --- a/vm/class.c +++ b/vm/class.c @@ -34,6 +34,7 @@ #include #include #include +

[PATCH 2/3] vm: implement bytecode_offset_to_line_no()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- include/vm/method.h |2 ++ jit/bc-offset-mapping.c | 18 +- test/arch-x86/Makefile |1 + vm/method.c | 11 ++- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/include/vm/method.h b/include/vm/me

[PATCH 4/5] vm: implement bytecode_offset_to_line_no()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- include/vm/method.h |2 ++ jit/bc-offset-mapping.c | 18 +- vm/method.c | 11 ++- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/include/vm/method.h b/include/vm/method.h index 9d5c255..49b3040 100

[PATCH 5/5] regression: add test for Throwable.getStackTrace()

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- regression/jvm/ExceptionsTest.java | 26 ++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/regression/jvm/ExceptionsTest.java b/regression/jvm/ExceptionsTest.java index 7d84cde..fccf9c1 100644 --- a/regression/jvm/Excep

[PATCH 2/5] vm: properly set source file name of a class

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- vm/class.c |4 vm/classloader.c |5 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/vm/class.c b/vm/class.c index df22058..48f30d2 100644 --- a/vm/class.c +++ b/vm/class.c @@ -34,6 +34,7 @@ #include #include #include +

[PATCH 3/5] cafebabe: add support for LineNumberTable attribute

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- Makefile |1 + .../include/cafebabe/line_number_table_attribute.h | 60 +++ .../src/cafebabe/line_number_table_attribute.c | 108 test/arch-x86/Makefile

[PATCH 1/5] cafebabe: Add support for SourceFile attribute

2009-07-05 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec --- Makefile |1 + cafebabe/include/cafebabe/class.h|1 + cafebabe/include/cafebabe/sourcefile_attribute.h | 51 +++ cafebabe/src/cafebabe/class.c| 32

Re: [PATCH] vm: open zipfiles in the classpath only once

2009-07-05 Thread Pekka Enberg
applied -- ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Re: [PATCH] vm: search the classpath in the right order

2009-07-05 Thread Pekka Enberg
applied -- ___ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel

[PATCH] vm: search the classpath in the right order

2009-07-05 Thread Vegard Nossum
We used to search it in the wrong (opposite) order. Signed-off-by: Vegard Nossum --- vm/classloader.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vm/classloader.c b/vm/classloader.c index 13fbc9d..45cc608 100644 --- a/vm/classloader.c +++ b/vm/classloader.c @@ -66

[PATCH] vm: open zipfiles in the classpath only once

2009-07-05 Thread Vegard Nossum
This fixes a performance issue with zip files that appeared because we used to open the zip files for _every_ class that we wanted to load. Signed-off-by: Vegard Nossum --- vm/classloader.c | 186 +++--- 1 files changed, 107 insertions(+), 79 dele