* 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
This commit is contained in:
Minero Aoki 2009-06-21 08:15:21 +00:00
parent 274b12a6cd
commit eedb1294e3
3 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,10 @@
Sun Jun 21 17:14:56 2009 Minero Aoki <aamine@loveruby.net>
* 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 <aamine@loveruby.net>
* net/loveruby/cflat/compiler/Options.java: rename option:

View File

@ -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;

View File

@ -81,6 +81,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator,
}
else {
ent.setMemref(mem(sym));
ent.setAddress(imm(sym));
}
}
// #@@}