2009/10/9 Tomek Grabiec :
> The bracket was misplaced causing close() to use wrong file descriptor.
> This led to the following error message for tetris:
> .: Fatal IO error 9 (Bad file descriptor) on X server :0.0.
>
> CC: Vegard Nossum
> Signed-off-by: Tomek Grabiec
>
8,6 +163,9 @@ int vm_method_init_from_interface(struct vm_method *vmm,
> struct vm_class *vmc,
>
> vmm->args_count = interface_method->args_count;
> vmm->is_vm_native = false;
> +
> + init_abstract_method(vmm);
> +
> return 0;
> }
ACK
2009/9/5 Pekka Enberg :
> Vegard Nossum wrote:
>>
>> 2009/9/5 Pekka Enberg :
>>>
>>> Good point. I wonder why we have methods without code attribute in
>>> classfiles.
>>>
>>
>> Native and abstract methods don't have code. It
2009/9/5 Pekka Enberg :
> Good point. I wonder why we have methods without code attribute in
> classfiles.
>
Native and abstract methods don't have code. It's all here:
http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#1546
I think I tried once to skip the prepare-for-ji
2009/9/5 Pekka Enberg :
> On Sat, 2009-09-05 at 16:06 +0200, Vegard Nossum wrote:
>> Um, wait, what's the actual dereference that causes the valgrind
>> warning? Because as it stands, it looks like you're fixing just the
>> symptom and not the real error. We have met
by 0x806F932: vm_class_link (class.c:275)
> ==24231== by 0x8070889: classloader_load (classloader.c:359)
> ==24231== by 0x806EC84: vm_class_resolve_class (class.c:734)
>
> Cc: Tomek Grabiec
> Cc: Vegard Nossum
> Signed-off-by: Pekka Enberg
> ---
> vm/class.c |
This check ensures that we actually found the method we were searching
for. (If we didn't, we die.)
Signed-off-by: Vegard Nossum
---
arch/x86/emit-code.c | 56 +++--
1 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/arch/x86
This method was always arch-specific anyway, and now we need to call it
from emit-code.c anyway.
Signed-off-by: Vegard Nossum
---
arch/x86/emit-code.c | 20
arch/x86/include/arch/itable.h | 10 ++
vm/itable.c| 22
Signed-off-by: Vegard Nossum
---
vm/itable.c | 15 +++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/vm/itable.c b/vm/itable.c
index 6f93457..bf38d6b 100644
--- a/vm/itable.c
+++ b/vm/itable.c
@@ -189,6 +189,18 @@ static void *itable_create_conflict_resolver
ain] trace invoke: java/util/Vector.addElement(Ljava/lang/Object;)V
[main] trace invoke: java/util/Vector.add(Ljava/lang/Object;)Z
[main] trace invoke: java/util/Vector.addElement(Ljava/lang/Object;)V
PrintTest OK.
Signed-off-by: Vegard Nossum
---
include/jit/compiler.h | 12
jit/t
Signed-off-by: Vegard Nossum
---
Makefile |1 +
include/lib/array.h|4 +++
lib/array.c| 50
test/arch-x86/Makefile |1 +
4 files changed, 56 insertions(+), 0 deletions(-)
create mode 100644 lib/array.c
Signed-off-by: Vegard Nossum
---
include/lib/array.h | 84 +++
1 files changed, 84 insertions(+), 0 deletions(-)
create mode 100644 include/lib/array.h
diff --git a/include/lib/array.h b/include/lib/array.h
new file mode 100644
index 000
.
Signed-off-by: Vegard Nossum
---
vm/itable.c | 31 +--
1 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/vm/itable.c b/vm/itable.c
index 83ede3e..b1aaee4 100644
--- a/vm/itable.c
+++ b/vm/itable.c
@@ -29,6 +29,8 @@
#include
#include
+#include &quo
Signed-off-by: Vegard Nossum
---
vm/class.c | 23 +++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/vm/class.c b/vm/class.c
index abd3a5b..aced89b 100644
--- a/vm/class.c
+++ b/vm/class.c
@@ -204,6 +204,22 @@ static int insert_interface_method(struct
Reported-by: Tomek Grabiec
Signed-off-by: Vegard Nossum
---
include/vm/class.h |1 +
include/vm/method.h |3 ++
vm/class.c | 85 +-
vm/method.c | 19 +++
4 files changed, 99 insertions(+), 9 deletions(-)
diff
Signed-off-by: Vegard Nossum
---
include/lib/array.h |6 ++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/include/lib/array.h b/include/lib/array.h
index 3b43db5..cff85c1 100644
--- a/include/lib/array.h
+++ b/include/lib/array.h
@@ -81,4 +81,10 @@ static inline int
NOTE: The test-case was actually derived by Tomek Grabiec.
Signed-off-by: Vegard Nossum
---
Makefile |1 +
.../jvm/VirtualAbstractInterfaceMethodTest.java| 29
regression/run-suite.sh|1 +
3
2009/8/23 Pekka Enberg :
> Vegard Nossum wrote:
>>
>> @@ -0,0 +1,29 @@
>> +package jvm;
>> +
>> +/**
>> + * @author Tomek Grabiec
>> + * @author Vegard Nossum
>> + */
>> +public class MirandaInterfaceMethodTest extends TestCase {
>
>
Signed-off-by: Vegard Nossum
---
vm/itable.c | 28
1 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/vm/itable.c b/vm/itable.c
index a544c9b..83ede3e 100644
--- a/vm/itable.c
+++ b/vm/itable.c
@@ -35,6 +35,7 @@
#include "vm/object.h"
#i
Signed-off-by: Vegard Nossum
---
vm/object.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/vm/object.c b/vm/object.c
index 1baa966..36e60c1 100644
--- a/vm/object.c
+++ b/vm/object.c
@@ -373,7 +373,7 @@ bool vm_object_is_instance_of(const struct vm_object *obj
We use the term "miranda method" here as a method which is omitted by
the compiler (because the method is declared in an interface and the
implementing class is abstract), and which needs to be inserted by the
VM.
Reported-by: Tomek Grabiec
Signed-off-by: Vegard Nossum
---
include/
NOTE: The test-case was actually derived by Tomek Grabiec.
Signed-off-by: Vegard Nossum
---
Makefile |1 +
regression/jvm/MirandaInterfaceMethodTest.java | 29
regression/run-suite.sh|1 +
3 files
2009/8/17 Tomek Grabiec :
> 2009/8/17 Vegard Nossum :
>> BTW, which flags are those?
>>
>
> My patch sets flags the same way as jamvm (and hotspot) does:
> - for primitive types: ACC_PUBLIC + ACC_ABSTRACT + ACC_FINAL
> - for array types: ACC_ABSTRACT + ACC_FINAL
2009/8/17 Pekka Enberg :
> On Mon, 2009-08-17 at 19:36 +0200, Tomek Grabiec wrote:
>> 2009/8/17 Pekka Enberg :
>> > On Mon, 2009-08-17 at 15:38 +0200, Tomek Grabiec wrote:
>> >> We need to assign access flags for arrays and primitive classes which
>> >> have no corresponding cafebabe_class. Therefo
2009/8/13 Tomek Grabiec :
> This is necessary for basic block freeing after compilation to be possible.
>
> Signed-off-by: Tomek Grabiec
Hi,
I feel very confused by this patch, and I wish there was an
explanation of the changes too.
> diff --git a/include/jit/compilation-unit.h b/include/jit/co
Reported-and-analyzed-by: Tomek Grabiec
Signed-off-by: Vegard Nossum
---
vm/class.c |8
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/vm/class.c b/vm/class.c
index 757d242..b06ea04 100644
--- a/vm/class.c
+++ b/vm/class.c
@@ -701,11 +701,19 @@ struct vm_field
Signed-off-by: Vegard Nossum
---
Makefile |1 +
regression/jvm/InterfaceFieldInheritanceTest.java | 14 ++
regression/run-suite.sh |1 +
3 files changed, 16 insertions(+), 0 deletions(-)
create mode 100644
2009/8/11 Tomek Grabiec :
> Or we'll get this:
>
> Exception in thread "main" java/lang/ExceptionInInitializerError
> at java.io.VMFile.getName(VMFile.java:230)
> at java.io.File.getName(File.java:537)
> at java.lang.VMClassLoader.getResources(VMClassLoader.java:208)
> at java.lang.VMClassL
Apparently, interfaces may have static initializers ( methods).
We don't want to put them in the itable. This patch adds only the
abstract methods to the itable.
Reported-by: Tomek Grabiec
Signed-off-by: Vegard Nossum
---
vm/itable.c |3 +++
1 files changed, 3 insertions(+), 0 dele
Also print out the stack slot (if known). This code probably still needs
some fixing.
Signed-off-by: Vegard Nossum
---
jit/gc-map.c| 22 --
jit/trace-jit.c | 13 +
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/jit/gc-map.c b/jit/gc
Previously, we added only those vregs which were active (had a machine
register assigned) at the gc safepoint. Now we add both in-register and
in-stack variables to the stack map, and print the machine register in
the gc-map tracing.
Signed-off-by: Vegard Nossum
---
jit/gc-map.c|6
Signed-off-by: Vegard Nossum
---
arch/x86/lir-printer.c | 19 +++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/arch/x86/lir-printer.c b/arch/x86/lir-printer.c
index 61e7645..c69ae36 100644
--- a/arch/x86/lir-printer.c
+++ b/arch/x86/lir-printer.c
@@ -70,6
Signed-off-by: Vegard Nossum
---
jit/gc-map.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/jit/gc-map.c b/jit/gc-map.c
index 997c7e6..a341f17 100644
--- a/jit/gc-map.c
+++ b/jit/gc-map.c
@@ -26,6 +26,9 @@ int gc_map_init(struct compilation_unit *cu
Signed-off-by: Vegard Nossum
---
arch/x86/insn-selector.brg | 16
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg
index 01b57d7..a8a418e 100644
--- a/arch/x86/insn-selector.brg
+++ b/arch/x86/insn
Signed-off-by: Vegard Nossum
---
arch/x86/emit-code.c|2 +-
arch/x86/include/arch/instruction.h |1 +
arch/x86/instruction.c | 12 +++-
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c
index
Signed-off-by: Vegard Nossum
---
Makefile |1 +
include/jit/gc-map.h |8
jit/compiler.c |5 +
jit/gc-map.c |7 +++
4 files changed, 21 insertions(+), 0 deletions(-)
create mode 100644 include/jit/gc-map.h
create mode 100644 jit/gc
Signed-off-by: Vegard Nossum
---
arch/x86/include/arch/instruction.h |2 +
include/jit/compilation-unit.h |5
jit/gc-map.c| 37 +++
3 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/arch/x86/include/arch
Signed-off-by: Vegard Nossum
---
include/jit/compiler.h |2 ++
jit/compiler.c |3 +++
jit/trace-jit.c| 41 +
vm/jato.c |6 ++
4 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/include/jit
Original code by Pekka Enberg.
Signed-off-by: Vegard Nossum
---
include/vm/gc.h |1 +
vm/gc.c | 59 +++
2 files changed, 60 insertions(+), 0 deletions(-)
diff --git a/include/vm/gc.h b/include/vm/gc.h
index b833219..05e324c
Signed-off-by: Vegard Nossum
---
include/vm/gc.h|4
test/arch-x86/Makefile |1 +
test/jit/Makefile |1 +
test/vm/gc-stub.c |9 +
vm/gc.c| 25 +
vm/thread.c|5 +
6 files changed, 45
This patch adds a parameter "bool hidden" to the guard-page constructor,
which signals whether the page should be initially hidden or accessible.
Needed for GC, which wants an initially unhidden page.
Signed-off-by: Vegard Nossum
---
include/lib/guard-page.h |4 +++-
jit/e
Signed-off-by: Vegard Nossum
---
arch/x86/init.c |3 +++
vm/jato.c |9 -
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/arch/x86/init.c b/arch/x86/init.c
index 5353f70..25b2e1a 100644
--- a/arch/x86/init.c
+++ b/arch/x86/init.c
@@ -1,6 +1,7 @@
#include
Signed-off-by: Vegard Nossum
---
Makefile |2 +-
include/lib/guard-page.h |9 +
include/vm/guard-page.h |9 -
jit/exception.c |2 +-
lib/guard-page.c | 90 ++
test/arch-x86/Makefile |2
Signed-off-by: Vegard Nossum
---
Makefile| 11 ++-
include/vm/gc.h |8
vm/gc.c | 12
vm/jato.c |2 ++
4 files changed, 28 insertions(+), 5 deletions(-)
create mode 100644 include/vm/gc.h
create mode 100644 vm/gc.c
diff --git a
Signed-off-by: Vegard Nossum
---
arch/x86/emit-code.c| 23 +++
arch/x86/include/arch/instruction.h |2 ++
arch/x86/instruction.c | 10 ++
arch/x86/use-def.c |1 +
4 files changed, 36 insertions(+), 0 deletions
Signed-off-by: Vegard Nossum
---
include/vm/gc.h |1 +
vm/gc.c |4
vm/signal.c | 21 +
3 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/include/vm/gc.h b/include/vm/gc.h
index 6c39996..82766ca 100644
--- a/include/vm/gc.h
+++ b
Signed-off-by: Vegard Nossum
---
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 66744bb..e5da1a9 100644
--- a/arch/x86/insn-selector.brg
+++ b/arch/x86/insn-selector.brg
@@ -1425,7
Signed-off-by: Vegard Nossum
---
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 e5da1a9..19ab58e 100644
--- a/arch/x86/insn-selector.brg
+++ b/arch/x86/insn-selector.brg
@@ -96,9
Signed-off-by: Vegard Nossum
---
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 609a5a8..66744bb 100644
--- a/arch/x86/insn-selector.brg
+++ b/arch/x86/insn-selector.brg
Signed-off-by: Vegard Nossum
---
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 a8f18b6..609a5a8 100644
--- a/arch/x86/insn-selector.brg
+++ b/arch/x86/insn-selector.brg
@@ -1268,7
Since we're now using the var_info's vm type for register allocation, we
can use it for spill/reload too, which gets rid of machine_reg_type
entirely.
Signed-off-by: Vegard Nossum
---
arch/mmix/include/arch/registers.h |2 --
arch/mmix/register.c|5 -
Signed-off-by: Vegard Nossum
---
arch/mmix/include/arch/registers.h |9 +
arch/x86/include/arch/registers_32.h |4 ++-
arch/x86/registers_32.c | 58 -
jit/linear-scan.c| 14 +---
4 files changed, 55 insertions
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
jit/linear-scan.c |2 +-
test/jit/linear-scan-test.c |9 +++--
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/jit/linear-scan.c b/jit/linear-scan.c
index d2a3c92..f038ba3 100644
--- a/jit/linear-scan.c
Signed-off-by: Vegard Nossum
---
arch/x86/emit-code.c| 15 +++
arch/x86/include/arch/instruction.h |1 +
arch/x86/use-def.c |1 +
3 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c
Signed-off-by: Vegard Nossum
---
arch/x86/emit-code.c| 15 +++
arch/x86/include/arch/instruction.h |1 +
arch/x86/use-def.c |1 +
3 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c
Signed-off-by: Vegard Nossum
---
include/vm/types.h |1 +
vm/types.c | 19 +++
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/include/vm/types.h b/include/vm/types.h
index dc944d9..9b5c2f6 100644
--- a/include/vm/types.h
+++ b/include/vm/types.h
2009/8/8 Tomek Grabiec :
> This caused that for characters with codes > 0x80 we
> skipped one byte.
>
> Signed-off-by: Tomek Grabiec
I don't like this patch.
We already have all our error checking in utf8_char_count() and
utf8_to_char_array() assumes this. We shouldn't have error checks in
utf8_
Reported-and-analyzed-by: Tomek Grabiec
Signed-off-by: Vegard Nossum
---
vm/itable.c |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/vm/itable.c b/vm/itable.c
index 77409c0..955aa66 100644
--- a/vm/itable.c
+++ b/vm/itable.c
@@ -135,8 +135,8
Makes the code easier to read.
Signed-off-by: Vegard Nossum
---
vm/class.c | 11 +++
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/vm/class.c b/vm/class.c
index 91f4ca0..8cb6ebb 100644
--- a/vm/class.c
+++ b/vm/class.c
@@ -266,6 +266,7 @@ int vm_class_link(struct
Signed-off-by: Vegard Nossum
---
include/vm/field.h |4 +-
vm/class.c | 135 +--
vm/field.c | 11 +
3 files changed, 112 insertions(+), 38 deletions(-)
diff --git a/include/vm/field.h b/include/vm/field.h
index 4a5a557
Signed-off-by: Vegard Nossum
---
arch/x86/insn-selector.brg |4 ++--
include/vm/object.h|2 +-
vm/object.c|8
vm/stack-trace.c |2 +-
vm/utf8.c |2 +-
5 files changed, 9 insertions(+), 9 deletions(-)
diff --git a
This fixes the performance issue in liveness analysis.
Signed-off-by: Vegard Nossum
---
include/jit/compilation-unit.h |7 +-
include/jit/vars.h |3 --
jit/compilation-unit.c | 21 +++--
jit/interval.c | 25
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 3c63f76..2ceb85a 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -94,6 +94,7 @@ static struct insn_info
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 412a99e..3c63f76 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -53,6 +53,7 @@ static struct insn_info
Signed-off-by: Vegard Nossum
---
arch/x86/include/arch/instruction.h |5 +
arch/x86/use-def.c | 10 ++
vm/jato.c |9 +
3 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/arch/x86/include/arch/instruction.h
b
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 0d62673..6dd1423 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -74,7 +74,7 @@ static struct insn_info
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 8b94645..0d62673 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -64,7 +64,7 @@ static struct insn_info
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index b078776..7320887 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 6dd1423..b078776 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -86,7 +86,7 @@ static struct insn_info
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |8
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 626a507..8b94645 100644
--- a/arch/x86
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index ea4a660..c48024a 100644
--- a/arch/x86/use
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |6 +++---
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index c48024a..626a507 100644
--- a/arch/x86
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |6 +++---
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 68a65af..c8a99db 100644
--- a/arch/x86
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index c8a99db..ea4a660 100644
--- a/arch/x86/use
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |4 ++--
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index a5190e5..17376a7 100644
--- a/arch/x86/use
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |4 ++--
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 17376a7..68a65af 100644
--- a/arch/x86/use
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |4 ++--
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index e8ec2cf..a5190e5 100644
--- a/arch/x86/use
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index f3489ba..5571225 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -55,7 +55,7 @@ static
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 1b52079..7578114 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -57,7 +57,7 @@ static
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 7578114..e8ec2cf 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -58,7 +58,7 @@ static
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index cc12c5d..6acd026 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -46,8 +46,8 @@ static
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |4 ++--
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 6acd026..f3489ba 100644
--- a/arch/x86/use
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 5571225..1b52079 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -56,7 +56,7 @@ static
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index 02180bd..d1965e2 100644
--- a/arch/x86/use-def.c
+++ b/arch/x86/use-def.c
@@ -40,9 +40,9
From: Arthur Huillet
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |4 ++--
test/arch-x86/use-def-test_32.c |2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c
index d1965e2..cc12c5d 100644
--- a/arch/x86/use
Signed-off-by: Vegard Nossum
---
test/arch-x86/use-def-test_32.c | 16
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/test/arch-x86/use-def-test_32.c b/test/arch-x86/use-def-test_32.c
index a1c2398..3b5b916 100644
--- a/test/arch-x86/use-def-test_32.c
+++ b
With this we also see the actual floating-point value and not just the
hexadecimal representation.
Signed-off-by: Vegard Nossum
---
jit/trace-jit.c | 23 ---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/jit/trace-jit.c b/jit/trace-jit.c
index c9bae17
Javac produces both fcmpg and fcmpl instructions for this, verified with
javap.
Signed-off-by: Vegard Nossum
---
regression/jvm/FloatArithmeticTest.java | 21 +
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/regression/jvm/FloatArithmeticTest.java
b
This is a copy of OP_CMPL with a call to emulate_fcmpg instead of
emulate_fcmpl.
Signed-off-by: Vegard Nossum
---
arch/x86/insn-selector.brg | 20
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg
index
a/nio/charset/Charset;FF[B)V'
Signed-off-by: Vegard Nossum
---
vm/jato.c | 148 +++--
1 files changed, 115 insertions(+), 33 deletions(-)
diff --git a/vm/jato.c b/vm/jato.c
index 37ccd66..d8ebe78 100644
--- a/vm/jato.c
+++ b/vm/jato.c
This helped me resolve a bug, so I suppose it's useful in general.
Signed-off-by: Vegard Nossum
---
jit/trace-jit.c | 53 +++--
1 files changed, 47 insertions(+), 6 deletions(-)
diff --git a/jit/trace-jit.c b/jit/trace-jit.c
index 8a
All registers that were defined in the basic block were subtracted from the
use set. This is right if the order is "define, use", but it's wrong if the
order is "use, define". Fix this by checking if the register has already
been used/defined.
Signed-off-by: Vegard No
I needed this for debugging, but getting our hands on this information
can be a bit subtle and tricky, so why not just leave it there for future
reference.
Signed-off-by: Vegard Nossum
---
vm/itable.c | 20 ++--
1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a
This helped me resolve a bug, so I suppose it's useful in general.
Signed-off-by: Vegard Nossum
---
jit/trace-jit.c | 55 ++-
1 files changed, 50 insertions(+), 5 deletions(-)
diff --git a/jit/trace-jit.c b/jit/trace-jit.c
index 37
before the first instruction.
(Please double check, I have no idea why it works now and not before.)
Signed-off-by: Vegard Nossum
---
test/jit/spill-reload-test.c | 14 +++---
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/test/jit/spill-reload-test.c b/test/jit/spill
"add imm, reg" also uses the reg, so we should put this in the use-def.
Someone should probably go through the whole list to verify that the rest
is correct too.
Signed-off-by: Vegard Nossum
---
arch/x86/use-def.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --
All registers that were defined in the basic block were subtracted from the
use set. This is right if the order is "define, use", but it's wrong if the
order is "use, define". Fix this by checking if the register has already
been used/defined.
Signed-off-by: Vegard No
Signed-off-by: Vegard Nossum
---
Makefile |1 +
regression/jvm/CFGCrashTest.java | 16
regression/run-suite.sh |1 +
3 files changed, 18 insertions(+), 0 deletions(-)
create mode 100644 regression/jvm/CFGCrashTest.java
diff --git a
: Vegard Nossum
---
jit/basic-block.c | 13 +
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/jit/basic-block.c b/jit/basic-block.c
index c0ac458..6e8759b 100644
--- a/jit/basic-block.c
+++ b/jit/basic-block.c
@@ -117,6 +117,19 @@ struct basic_block *bb_split(struct
Jam VM is no longer used.
Signed-off-by: Vegard Nossum
---
test/jit/Makefile |4
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/test/jit/Makefile b/test/jit/Makefile
index 80151f7..b5444d0 100644
--- a/test/jit/Makefile
+++ b/test/jit/Makefile
@@ -59,10 +59,6 @@ OBJS
1 - 100 of 270 matches
Mail list logo