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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
/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
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
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
[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
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
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
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
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
).
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
101 - 200 of 437 matches
Mail list logo