[PATCH 10/11] vm: implement properly VMStackWalker.getClassContext()

2009-08-15 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 28 +--- 1 files changed, 21 insertions(+), 7 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index e1fd13c..fc90c3d 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -100,24 +100,38 @@ static struct vm_object

[PATCH 08/11] vm: implement marshall_call_arguments() for majority of primitive types

2009-08-15 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/preload.h |3 +++ vm/preload.c | 16 vm/reflection.c | 44 +--- 3 files changed, 56 insertions(+), 7 deletions(-) diff --git a/include/vm/preload.h b

[PATCH 11/11] vm: introduce vm_object_to_vm_method() helper

2009-08-15 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/reflection.c | 28 +++- 1 files changed, 19 insertions(+), 9 deletions(-) diff --git a/vm/reflection.c b/vm/reflection.c index 1eecf99..dd53135 100644 --- a/vm/reflection.c +++ b/vm/reflection.c @@ -81,6 +81,21

Re: [PATCH 4/6] jit: make fixup sites use native pointers instead of struct insn pointers at run-time

2009-08-14 Thread Tomek Grabiec
be other way because during compilation we cu is locked first. -- Tomek Grabiec -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment

[PATCH 2/8] vm: move configurable properties init after classpath discovery

2009-08-13 Thread Tomek Grabiec
Properties like 'java.class.path' and 'java.boot.class.path' should be set after all classpath elements are set. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 5764cdc..89142aa

[PATCH 3/8] vm: set 'java.boot.class.path' property

2009-08-13 Thread Tomek Grabiec
This property is used to locate system resources. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 89142aa..146bb09 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -280,6 +280,7 @@ static

[PATCH 1/8] vm: cleanup gnu classpath autodiscovery

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 92 +++-- 1 files changed, 71 insertions(+), 21 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 5392418..5764cdc 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -144,23

[PATCH 5/8] lib: constify argument to hash_map_remove()

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/lib/hash-map.h |2 +- lib/hash-map.c |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/lib/hash-map.h b/include/lib/hash-map.h index e3701ef..bb5d399 100644 --- a/include/lib/hash-map.h +++ b

[PATCH 6/8] vm: handle class loading failure properly.

2009-08-13 Thread Tomek Grabiec
When there are multiple threads waiting for a class to be loaded then the entry is removed from hash map and freed by the last thread which gives up on it. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/classloader.c | 83 ++--- 1 files

[PATCH 7/8] vm: add missing enter_vm_from_jni()

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jni-interface.c |8 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index 3e9dc5c..f2c61ea 100644 --- a/vm/jni-interface.c +++ b/vm/jni-interface.c @@ -785,6 +785,8

[PATCH 8/8] vm: optimize VMClass.getModifiers()

2009-08-13 Thread Tomek Grabiec
We can simply return -access_flags because java.lang.reflect.Modifier uses constants from JVM spec. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/preload.h |8 vm/jato.c| 27 +++ vm/preload.c | 15 --- 3

[PATCH] jit: add missing tree printer for EXPR_TRUNCATION

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/tree-printer.c | 22 ++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/jit/tree-printer.c b/jit/tree-printer.c index b20d80a..7783f55 100644 --- a/jit/tree-printer.c +++ b/jit/tree-printer.c @@ -608,6

[PATCH 1/2] jit: support for tracing J_LONG return value.

2009-08-13 Thread Tomek Grabiec
We can now trace all types of return values. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg |7 +++ jit/trace-jit.c|2 +- 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg

[PATCH] vm: set 'gnu.cpu.endian' property

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index aa5b2c0..771cf87 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -269,6 +269,8 @@ static void init_system_properties(void

[PATCH 2/2] jit: trim long strings in argument preview.

2009-08-13 Thread Tomek Grabiec
Long string arguments can make the -Xtrace:invoke-verbose output huge so we should trim long strings. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/trace-jit.c | 14 +- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/jit/trace-jit.c b/jit/trace-jit.c index

[PATCH 1/6] jit: build exception handler table after code emission.

2009-08-13 Thread Tomek Grabiec
We should build exception handler table with handler pointers to not use basic block lookup at run-time. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/jit/compilation-unit.h |7 +++ include/jit/exception.h|1 + jit/compilation-unit.c |2 ++ jit

[PATCH 2/6] jit: do not call bb_native_ptr() at run-time

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/jit/compilation-unit.h |6 ++ jit/emit.c |3 +++ jit/exception.c|8 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/jit/compilation-unit.h b/include/jit

[PATCH 3/6] jit: add missing expr_get() in switch-bc.c

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/switch-bc.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/jit/switch-bc.c b/jit/switch-bc.c index 0a5d3e5..bbcd582 100644 --- a/jit/switch-bc.c +++ b/jit/switch-bc.c @@ -133,6 +133,7 @@ int convert_tableswitch

[PATCH 4/6] jit: make fixup sites use native pointers instead of struct insn pointers at run-time

2009-08-13 Thread Tomek Grabiec
This is necessary for basic block freeing after compilation to be possible. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c | 30 -- arch/x86/insn-selector.brg |2 ++ include/jit/compilation-unit.h |6 ++ include

[PATCH 5/6] jit: remove unnecessary if()

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/basic-block.c |5 + 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/jit/basic-block.c b/jit/basic-block.c index 6a3075e..39e749c 100644 --- a/jit/basic-block.c +++ b/jit/basic-block.c @@ -84,10 +84,7 @@ void

[PATCH 6/6] jit: release memory occupied by compile-time structures.

2009-08-13 Thread Tomek Grabiec
This reduces memory required for System.out.println() from 316 MiB to 286 MiB. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/stack-frame.c |3 +-- include/jit/compilation-unit.h |2 ++ jit/compilation-unit.c | 20 +++- jit/emit.c

[PATCH 1/2] jit: trace exception message on -Xtrace:exceptions

2009-08-13 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/trace-jit.c |9 - 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/jit/trace-jit.c b/jit/trace-jit.c index d2c8dc1..07dd84a 100644 --- a/jit/trace-jit.c +++ b/jit/trace-jit.c @@ -663,7 +663,8 @@ void

[PATCH 2/2] vm: fix VMClass.getName()

2009-08-13 Thread Tomek Grabiec
at java.text.DecimalFormatSymbols.init(DecimalFormatSymbols.java:173) at java.text.DecimalFormat.clinit(DecimalFormat.java:97) at org.jpc.j2se.PCMonitorFrame.clinit(PCMonitorFrame.java:24) Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c |9 - 1 files changed, 8 insertions(+), 1 deletions

[PATCH 4/9] Makefile: enable building of runtime.zip containing runtime classes

2009-08-12 Thread Tomek Grabiec
We need to override java/lang/VMString class to efficiently implement VMString.intern() method. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- Makefile | 10 +++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 45c736d..07182ce 100644

[PATCH 5/9] vm: autodiscovery of runtime.zip

2009-08-12 Thread Tomek Grabiec
We try to locate runtime.zip in runtime/ directory relative to the path of current executable. This patch also sets the value of 'java.home' to the directory containing current executable. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- Makefile |2 + vm/jato.c | 62

[PATCH 7/9] jit: fix deadlock caused by class initialization.

2009-08-12 Thread Tomek Grabiec
/security/provider/Gnu$1.run(Gnu.java:64) Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/class.h |1 + jit/load-store-bc.c |3 +-- vm/class.c | 41 + 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/include

[PATCH 6/9] vm: properly manage string literals in VM

2009-08-12 Thread Tomek Grabiec
need to be put in vm_object_alloc_string_from_utf8() and vm_object_alloc_string_from_c(). We must provide our own implementation of VMString class because VMString.intern() is not a native method. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- Makefile |4 +- include

[PATCH] runtime: add missing java/lang/VMString.java

2009-08-12 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- runtime/java/lang/VMString.java |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) create mode 100644 runtime/java/lang/VMString.java diff --git a/runtime/java/lang/VMString.java b/runtime/java/lang/VMString.java new file mode

[PATCH] vm: fix vm_object_alloc_multi_array()

2009-08-12 Thread Tomek Grabiec
[main] [b7cb960b] native : unknown [main] [08054800] native : unknown Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/object.c | 30 ++ 1 files changed, 14 insertions(+), 16 deletions(-) diff --git a/vm/object.c b/vm/object.c index 0946c8d..c8ed0fe

[PATCH] jit: fix int - cahr, byte, short conversion.

2009-08-12 Thread Tomek Grabiec
the operand stack. The simmilar applies to i2c and i2s. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg | 45 +++ include/jit/expression.h |9 +++ jit/expression.c | 20 +++- jit

[PATCH] test: fix 'make test' breakage

2009-08-12 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- test/jit/bc-test-utils.c| 13 + test/jit/bc-test-utils.h|1 + test/jit/typeconv-bc-test.c | 33 ++--- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/test/jit/bc-test

[PATCH 1/2] vm: properly manage string literals in VM

2009-08-12 Thread Tomek Grabiec
need to be put in vm_object_alloc_string_from_utf8() and vm_object_alloc_string_from_c(). Implementation of VMString.intern() is overriden during preload process. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- Makefile |1 + include/vm/string.h|9

[PATCH 1/5] jit: add entry for EXPR_INVKOEINTERFACE in expr_is_pure()

2009-08-12 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/expression.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/jit/expression.c b/jit/expression.c index ff80c1f..be1de1b 100644 --- a/jit/expression.c +++ b/jit/expression.c @@ -126,6 +126,7 @@ int expr_is_pure

[PATCH 4/5] vm: declare class field setters/getters in simmilar way that instance field setters/getters

2009-08-12 Thread Tomek Grabiec
Class field setters and getters got renamed from vm_field_* to static_field_*. They are also using now JNI types as arguments. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/class.h | 108 +-- vm/field.c | 11 +++-- 2

[PATCH 5/5] vm: implement VMClass.getModifiers()

2009-08-12 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/class.h | 20 include/vm/preload.h |8 vm/jato.c| 28 +--- vm/preload.c | 15 +++ 4 files changed, 68 insertions(+), 3 deletions

[PATCH 3/5] cafebabe: add missing flag definitions

2009-08-12 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- cafebabe/include/cafebabe/class.h |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/cafebabe/include/cafebabe/class.h b/cafebabe/include/cafebabe/class.h index 67c53f9..f453c28 100644 --- a/cafebabe/include/cafebabe

[PATCH 2/5] jit: use get_pure_expr() instead of explicit dup_expr()

2009-08-12 Thread Tomek Grabiec
Using get_pure_expr() can avoid duplication for some expression types. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/object-bc.c |3 +-- test/jit/object-bc-test.c |7 +-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/jit/object-bc.c b/jit/object

[PATCH] vm: set 'os.name' system property

2009-08-11 Thread Tomek Grabiec
(SwingUtilities.java:1079) at HelloWorldSwing.main(HelloWorldSwing.java:74) Caused by: java/lang/NullPointerException at gnu.java.io.PlatformHelper.clinit(PlatformHelper.java:48) at java.io.VMFile.getName(VMFile.java:230) ...9 more Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm

[PATCH 1/3] vm: cleanup in jni-interface.c

2009-08-11 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jni-interface.c |8 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index 591fbe0..cb369b2 100644 --- a/vm/jni-interface.c +++ b/vm/jni-interface.c @@ -892,7 +892,7 @@ void

[PATCH] vm: implement SetXXXField JNI function family

2009-08-11 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jni-interface.c | 56 +++ 1 files changed, 34 insertions(+), 22 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index 2d8af05..8388b2b 100644 --- a/vm/jni-interface.c +++ b

[PATCH 04/10] vm: set most of required system properties.

2009-08-11 Thread Tomek Grabiec
According to comment in java/lang/System.java these properties must be set. Otherwise we might experience NullPointerExceptions in programs that expect those properties to be set. The only required properties which are missing are: 'java.class.path' and 'java.home'. Signed-off-by: Tomek Grabiec

[PATCH 03/10] x86: introduce ARCH_NAME constant

2009-08-11 Thread Tomek Grabiec
It will be used to set 'os.arch' system property. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/include/arch/config_32.h |1 + arch/x86/include/arch/config_64.h |2 +- 2 files changed, 2 insertions(+), 1 deletions(-) diff --git a/arch/x86/include/arch/config_32.h b/arch

[PATCH 02/10] jit: do not skip argument preview if it is not on heap.

2009-08-11 Thread Tomek Grabiec
malloc() can allocate memory not only on heap, but also in other regions with mmap(). Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/trace-jit.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/jit/trace-jit.c b/jit/trace-jit.c index 2579e1b..84edea3 100644

[PATCH 05/10] vm: implement GetXXXArrayRegion JNI function family

2009-08-11 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jni-interface.c | 50 ++ 1 files changed, 42 insertions(+), 8 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index 8388b2b..a55292c 100644 --- a/vm/jni-interface.c +++ b

[PATCH 10/10] vm: implement VMClass.isAssignableFrom()

2009-08-11 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 13 + 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 7830ca9..6b0f7c3 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -568,6 +568,18 @@ native_vmclass_is_anonymous_class(struct

[PATCH 1/4] vm: remove code redundancy in setup_vtable()

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/class.c | 22 ++ 1 files changed, 2 insertions(+), 20 deletions(-) diff --git a/vm/class.c b/vm/class.c index 15084af..757d242 100644 --- a/vm/class.c +++ b/vm/class.c @@ -101,30 +101,12 @@ setup_vtable(struct vm_class

[PATCH 2/4] jit: fix fixup_vtable()

2009-08-10 Thread Tomek Grabiec
We should not fixup the actual object class's vtable, but the vtable of the class in which method was declared. This bug led to invocation of incorrect methods. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c | 37 - include/jit

[PATCH 4/4] x86: fix spill/reload instruction for J_DOUBLE

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/include/arch/instruction.h | 21 + 1 files changed, 17 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/arch/instruction.h b/arch/x86/include/arch/instruction.h index 9140484..6a56b35 100644

[PATCH 1/6] vm: implement VMClass.getDeclaredMethods()

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/preload.h|5 +++ include/vm/reflection.h |3 ++ vm/jato.c |1 + vm/preload.c| 10 +++ vm/reflection.c | 70 +++ 5 files changed, 89

[PATCH 4/6] vm: use parse_method_args() in count_arguments()

2009-08-10 Thread Tomek Grabiec
This increases maintainability. After this, method arguments are parsed only by parse_method_args(). Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/types.c | 102 +++ 1 files changed, 12 insertions(+), 90 deletions(-) diff --git

[PATCH 2/6] vm: introduce vm_method_java_argument_count()

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/method.h |2 ++ jit/invoke-bc.c | 14 ++ vm/method.c | 15 +++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/include/vm/method.h b/include/vm/method.h index ebb1abe

[PATCH 3/6] vm: make parse_method_args() be able to return type name

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/jit/args.h |2 +- jit/args.c | 32 +++- jit/trace-jit.c|2 +- vm/method.c|2 +- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/include/jit/args.h b/include

[PATCH 5/6] vm: implement java/lang/reflection/Method.getParameterTypes()

2009-08-10 Thread Tomek Grabiec
This also implements Constructor.getParameterTypes() Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/reflection.h |2 + vm/jato.c |1 + vm/reflection.c | 97 --- 3 files changed, 94 insertions(+), 6

[PATCH 6/6] vm: implement VMClass.isInterface()

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 11 +++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 6b6bbf6..304cb1a 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -728,6 +728,16 @@ native_vmclassloader_loadclass(struct

[PATCH 01/14] vm: implement VMClass.getDeclaredMethods()

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/preload.h|5 +++ include/vm/reflection.h |3 ++ vm/jato.c |1 + vm/preload.c| 10 +++ vm/reflection.c | 70 +++ 5 files changed, 89

[PATCH 02/14] vm: make parse_method_args() be able to return type name

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/jit/args.h |2 +- jit/args.c | 32 +++- jit/trace-jit.c|2 +- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/include/jit/args.h b/include/jit/args.h index b2fdd5a

[PATCH 04/14] vm: move parse_method_args() to vm/types.c

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/jit/args.h |1 - include/vm/types.h |1 + jit/args.c | 54 vm/types.c | 54 4 files changed, 55

[PATCH 07/14] vm: implement VMClass.isInterface()

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 11 +++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 184a702..33f7f90 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -729,6 +729,16 @@ native_vmclassloader_loadclass(struct

[PATCH 05/14] vm: introduce count_java_arguments()

2009-08-10 Thread Tomek Grabiec
Returns the count of java arguments that are passed to method. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/types.h |1 + jit/invoke-bc.c| 14 ++ vm/types.c | 13 + 3 files changed, 20 insertions(+), 8 deletions(-) diff --git

[PATCH 14/14] vm: implement NewObjectA JNI function

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jni-interface.c | 50 +- 1 files changed, 49 insertions(+), 1 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index d357da6..29d8061 100644 --- a/vm/jni-interface.c +++ b

[PATCH] x86: do not use J_REFERENCE as register type when it doesn't hold an object reference.

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg index 40fc329..e753fc9 100644 --- a/arch/x86/insn-selector.brg +++ b/arch/x86/insn

[PATCH 2/3] x86: add INSN_OR_IMM_MEMBASE

2009-08-10 Thread Tomek Grabiec
Is needed for d2l. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c|8 arch/x86/include/arch/instruction.h |1 + arch/x86/lir-printer.c |7 +++ arch/x86/use-def.c |1 + 4 files changed, 17

[PATCH] x86: reveal the magic behind l2d

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg | 27 +-- 1 files changed, 21 insertions(+), 6 deletions(-) diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg index 41ab693..297ef7f 100644 --- a/arch/x86/insn

[PATCH] vm: move init_system_properties() call before arguments are parsed

2009-08-10 Thread Tomek Grabiec
Otherwise we get SIGSEGV when passing -Dkey=value options. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index e18cf62..9f73d8c 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -1185,9

[PATCH] jit: EXPR_INSTANCEOF should have J_INT return type

2009-08-10 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/expression.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/jit/expression.c b/jit/expression.c index 3acbd3c..e1001a1 100644 --- a/jit/expression.c +++ b/jit/expression.c @@ -551,7 +551,7 @@ struct expression

[PATCH 01/19] vm: implement java/lang/reflection/Field.getDeclaredFields()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/field.h |5 +++ include/vm/preload.h|5 +++ include/vm/reflection.h |3 ++ vm/jato.c |1 + vm/preload.c| 10 ++ vm/reflection.c | 72

[PATCH 03/19] vm: implement VMClass.getInterfaces()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/reflection.h |1 + vm/jato.c |1 + vm/reflection.c | 28 3 files changed, 30 insertions(+), 0 deletions(-) diff --git a/include/vm/reflection.h b/include/vm/reflection.h

[PATCH 04/19] vm: implement VMClass.getSuperclass()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/reflection.h |1 + vm/jato.c |1 + vm/reflection.c | 23 +++ 3 files changed, 25 insertions(+), 0 deletions(-) diff --git a/include/vm/reflection.h b/include/vm/reflection.h index

[PATCH 09/19] vm: make vm_class_is_assignable_from() work with array classes

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/class.c | 12 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/vm/class.c b/vm/class.c index f39e0c0..15084af 100644 --- a/vm/class.c +++ b/vm/class.c @@ -989,6 +989,18 @@ bool vm_class_is_assignable_from(const

[PATCH 06/19] vm: remove unnecessary NOT_IMPLEMENTED; marker

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/reflection.c |2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/vm/reflection.c b/vm/reflection.c index c5361ef..4e17823 100644 --- a/vm/reflection.c +++ b/vm/reflection.c @@ -190,8 +190,6

[PATCH 07/19] vm: implement NewObjectArray JNI function

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jni-interface.c | 32 +++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/vm/jni-interface.c b/vm/jni-interface.c index 5aeed36..a90baff 100644 --- a/vm/jni-interface.c +++ b/vm/jni-interface.c

[PATCH 10/19] vm: implement VMClass.isInstance()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 12 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index ad9eae9..dc8035e 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -569,6 +569,17 @@ native_vmclassloader_getprimitiveclass(int

[PATCH 13/19] jit: remove trace_flush() fallout

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/compiler.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/jit/compiler.c b/jit/compiler.c index 26a06d8..2f94e2f 100644 --- a/jit/compiler.c +++ b/jit/compiler.c @@ -104,7 +104,7 @@ int compile(struct

[PATCH 12/19] vm: introduce vm_pointer_type()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/types.h | 14 ++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/include/vm/types.h b/include/vm/types.h index 9b5c2f6..e7b3c42 100644 --- a/include/vm/types.h +++ b/include/vm/types.h @@ -1,6 +1,7

[PATCH 1/3] jit: introduce alloc_exec_buffer()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/lib/buffer.h |1 + jit/emit.c |9 ++--- lib/buffer.c | 12 +++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/lib/buffer.h b/include/lib/buffer.h index 6a59e78..60a3d23

[PATCH 2/3] x86: introduce fixup_branch_target()

2009-08-09 Thread Tomek Grabiec
It's already used in two places and will be used in few more. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c | 23 +++ 1 files changed, 11 insertions(+), 12 deletions(-) diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c index 8e857ab

[PATCH] regression: add double array element load/store test

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- regression/jvm/ArrayTest.java | 13 + 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/regression/jvm/ArrayTest.java b/regression/jvm/ArrayTest.java index bfada1a..d688f2c 100644 --- a/regression/jvm/ArrayTest.java

[PATCH] jit: fix method_real_argument_count()

2009-08-09 Thread Tomek Grabiec
When method's argument was [D then 'c' value was incorrectly decremented. Use parse_method_args() to avoid code redundancy. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/invoke-bc.c | 15 ++- 1 files changed, 6 insertions(+), 9 deletions(-) diff --git a/jit/invoke-bc.c b

[PATCH] vm: implement GetArrayLength JNI function

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/jni.h |1 + vm/jni-interface.c | 12 +++- 2 files changed, 12 insertions(+), 1 deletions(-) diff --git a/include/vm/jni.h b/include/vm/jni.h index 3b8acea..5512b26 100644 --- a/include/vm/jni.h +++ b/include/vm/jni.h

[PATCH] vm: make native_vmclass_forname() use given class loader

2009-08-09 Thread Tomek Grabiec
If @loader is not NULL then it should be used to load the class. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/preload.h |2 ++ vm/jato.c| 46 ++ vm/preload.c |9 + 3 files changed, 45 insertions

[PATCH 2/4] vm: introduce -classloader field of struct vm_class

2009-08-09 Thread Tomek Grabiec
This field holds a reference to instance of java.lang.ClassLoader. It points to the classloader which loaded the class. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/class.h |4 vm/classloader.c |2 ++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git

[PATCH 3/4] vm: implement VMClassLoader.findLoadedClass()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 25 + 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 347843d..c6af731 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -684,6 +684,30 @@ static void

[PATCH 4/4] vm: implement VMClassLoader.loadClass()

2009-08-09 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 21 + 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index c6af731..1a00d3e 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -708,6 +708,26

[PATCH 1/2] vm: implement VMClass.getComponentType()

2009-08-08 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/jato.c | 17 + 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/vm/jato.c b/vm/jato.c index 49749d2..34f453a 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -535,6 +535,22 @@ static jint native_vmclass_getmodifiers

[PATCH 2/2] jit: introduce per-edge data flow resolution blocks

2009-08-08 Thread Tomek Grabiec
). Solution is to put those invasive moves (mem - reg) to a per CFG edge blocks. These blocks will be emitted after all other blocks. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c | 59 arch/x86/include/arch

[PATCH] vm: fix array_set_field_double()

2009-08-08 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/object.h |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/vm/object.h b/include/vm/object.h index 3b5a707..899e741 100644 --- a/include/vm/object.h +++ b/include/vm/object.h @@ -181,9 +181,9

[PATCH] vm: fix utf8_to_char_array()

2009-08-08 Thread Tomek Grabiec
This caused that for characters with codes 0x80 we skipped one byte. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- vm/utf8.c |7 +-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/vm/utf8.c b/vm/utf8.c index c9caf88..85355e3 100644 --- a/vm/utf8.c +++ b/vm/utf8.c

[PATCH 1/2] vm: print resolved method signature in bytecode disassembly

2009-08-08 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- include/vm/bytecodes.h |4 +++- jit/trace-jit.c|3 ++- vm/bytecodes.c | 28 +++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/include/vm/bytecodes.h b/include/vm/bytecodes.h

[PATCH 2/2] vm: fix off-by-one bug in utf8_to_char_array()

2009-08-08 Thread Tomek Grabiec
This caused incorrect loading of utf8 strings with character codes = 0x80. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- regression/jvm/StringTest.java |5 + vm/utf8.c | 10 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/regression

[PATCH] jit: fix register allocator bug

2009-08-07 Thread Tomek Grabiec
can do that because register is not used in this range. After this fix, we will have the following regalloc: 20 (pos: 4-11):ECX non-fixed spill (5) no reload 20 (pos: 24-29):ESI non-fixed no spillreload (5) Signed-off-by: Tomek Grabiec tgrab

[PATCH] jit: merge -Xtrace:return functionallity to -Xtrace:invoke-verbose

2009-08-07 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg |6 +++--- include/jit/compiler.h |1 - jit/trace-jit.c|1 - test/jit/trace-stub.c |2 +- vm/jato.c |6 -- 5 files changed, 4 insertions(+), 12 deletions

[PATCH] x86: fix args cleanup in emulate_op_64()

2009-08-07 Thread Tomek Grabiec
When arg2_type is not J_LONG we should cleanup 3 words instead of 4. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg |6 +- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg index fe9e113

[PATCH 02/19] x86: add instructions for double precision floating point operations with SSE2

2009-08-06 Thread Tomek Grabiec
Those instructions are needed to implement double precision arithmetic. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c| 163 +++ arch/x86/include/arch/instruction.h | 16 arch/x86/lir-printer.c | 112

[PATCH 01/19] x86: rename _FREG token in instruction names to _XMM

2009-08-06 Thread Tomek Grabiec
This renames INSN_MOV_FREG_MEMLOCAL and INSN_MOV_MEMLOCAL_FREG to INSN_MOV_XMM_MEMLOCAL and INSN_MOV_MEMLOCAL_XMM. All other instructions already use XMM to refer FPU registers. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c|8 arch/x86

[PATCH 04/19] x86: introduce get_local_slot_64()

2009-08-06 Thread Tomek Grabiec
On x86 64-bit variables (eg. of type double) require 2 stack slots. We must return the one which has lower memory address so that we can correctly execute movsd instruction with that address. Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg | 24

[PATCH 06/19] jit: add missing new line after J_DOUBLE and J_LONG args trace

2009-08-06 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- jit/trace-jit.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/jit/trace-jit.c b/jit/trace-jit.c index b03108a..b8c2e0c 100644 --- a/jit/trace-jit.c +++ b/jit/trace-jit.c @@ -438,6 +438,8 @@ static void print_arg(enum

[PATCH 09/19] x86: support for DOUBLE - INT conversion

2009-08-06 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c| 18 ++ arch/x86/include/arch/instruction.h |2 ++ arch/x86/insn-selector.brg |8 arch/x86/lir-printer.c | 14 ++ arch/x86/use-def.c

[PATCH 11/19] jit: alloc temporary with correct register type in convert_array_load()

2009-08-06 Thread Tomek Grabiec
We should really care which vm_type we assign to registers. Not only it matters because FPU operations can be only done on SSE registers, but also in some situations the only way to get the result type is to query reg-vm_type (see OP_CMPG and OP_CMPL instruction selectors). Signed-off-by: Tomek

[PATCH 10/19] x86: add DOUBLE - FLOAT conversion support

2009-08-06 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/emit-code.c| 18 ++ arch/x86/include/arch/instruction.h |2 + arch/x86/insn-selector.brg | 65 +++--- arch/x86/lir-printer.c | 14 +++ arch/x86/use

[PATCH 08/19] x86: replace freg: EXPR_LOCAL with freg: EXPR_FLOAT_LOCAL

2009-08-06 Thread Tomek Grabiec
Signed-off-by: Tomek Grabiec tgrab...@gmail.com --- arch/x86/insn-selector.brg |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg index c255438..5df7823 100644 --- a/arch/x86/insn-selector.brg +++ b/arch/x86/insn

<    1   2   3   4   5   >