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 ++-
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;
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
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
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
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
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
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 |
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 +-
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/
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
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
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
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
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_
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
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
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 __
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
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 <>
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
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
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
+
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
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
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
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
+
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
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
applied
--
___
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel
applied
--
___
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel
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
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
33 matches
Mail list logo