From eedb1294e39ce057d4dd59715ac32544f37244c2 Mon Sep 17 00:00:00 2001 From: Minero Aoki Date: Sun, 21 Jun 2009 08:15:21 +0000 Subject: [PATCH] * net/loveruby/cflat/sysdep/x86/CodeGenerator.java: assign address for gvar. * net/loveruby/cflat/entity/Entity.java: accept imm address. git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4298 1b9489fe-b721-0410-924e-b54b9192deb8 --- ChangeLog | 7 +++++++ net/loveruby/cflat/entity/Entity.java | 7 ++++++- net/loveruby/cflat/sysdep/x86/CodeGenerator.java | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5499013..38a7b60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Jun 21 17:14:56 2009 Minero Aoki + + * net/loveruby/cflat/sysdep/x86/CodeGenerator.java: assign address + for gvar. + + * net/loveruby/cflat/entity/Entity.java: accept imm address. + Sun Jun 21 17:14:19 2009 Minero Aoki * net/loveruby/cflat/compiler/Options.java: rename option: diff --git a/net/loveruby/cflat/entity/Entity.java b/net/loveruby/cflat/entity/Entity.java index 5e305be..befcb20 100644 --- a/net/loveruby/cflat/entity/Entity.java +++ b/net/loveruby/cflat/entity/Entity.java @@ -6,6 +6,7 @@ import net.loveruby.cflat.ast.ExprNode; import net.loveruby.cflat.asm.Symbol; import net.loveruby.cflat.asm.Operand; import net.loveruby.cflat.asm.MemoryReference; +import net.loveruby.cflat.asm.ImmediateValue; abstract public class Entity implements net.loveruby.cflat.ast.Dumpable { @@ -14,7 +15,7 @@ abstract public class Entity protected TypeNode typeNode; protected long nRefered; protected MemoryReference memref; - protected MemoryReference address; + protected Operand address; public Entity(boolean priv, TypeNode type, String name) { this.name = name; @@ -83,6 +84,10 @@ abstract public class Entity this.address = mem; } + public void setAddress(ImmediateValue imm) { + this.address = imm; + } + public Operand address() { checkAddress(); return address; diff --git a/net/loveruby/cflat/sysdep/x86/CodeGenerator.java b/net/loveruby/cflat/sysdep/x86/CodeGenerator.java index 147d2a7..df055e9 100644 --- a/net/loveruby/cflat/sysdep/x86/CodeGenerator.java +++ b/net/loveruby/cflat/sysdep/x86/CodeGenerator.java @@ -81,6 +81,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, } else { ent.setMemref(mem(sym)); + ent.setAddress(imm(sym)); } } // #@@}