From ee8432d4fa25963bd6b8bcb4b2f71426681cf10a Mon Sep 17 00:00:00 2001 From: Minero Aoki Date: Sat, 13 Jun 2009 13:46:36 +0000 Subject: [PATCH] r5104@macbookpro: aamine | 2009-06-13 22:43:16 +0900 * rename class: AssemblyFile -> AssemblyCode. git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4292 1b9489fe-b721-0410-924e-b54b9192deb8 --- ChangeLog | 4 ++ net/loveruby/cflat/compiler/Compiler.java | 10 ++-- net/loveruby/cflat/compiler/Options.java | 2 +- .../{AssemblyFile.java => AssemblyCode.java} | 2 +- net/loveruby/cflat/sysdep/CodeGenerator.java | 2 +- .../{AssemblyFile.java => AssemblyCode.java} | 4 +- .../cflat/sysdep/x86/CodeGenerator.java | 56 +++++++++---------- 7 files changed, 42 insertions(+), 38 deletions(-) rename net/loveruby/cflat/sysdep/{AssemblyFile.java => AssemblyCode.java} (80%) rename net/loveruby/cflat/sysdep/x86/{AssemblyFile.java => AssemblyCode.java} (98%) diff --git a/ChangeLog b/ChangeLog index b728bec..3f027c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Jun 13 22:42:24 2009 Minero Aoki + + * rename class: AssemblyFile -> AssemblyCode. + Sat Jun 13 22:37:02 2009 Minero Aoki * net/loveruby/cflat/entity/ToplevelScope.java: move diff --git a/net/loveruby/cflat/compiler/Compiler.java b/net/loveruby/cflat/compiler/Compiler.java index b8aa1d8..540347f 100644 --- a/net/loveruby/cflat/compiler/Compiler.java +++ b/net/loveruby/cflat/compiler/Compiler.java @@ -6,7 +6,7 @@ import net.loveruby.cflat.ast.ExprNode; import net.loveruby.cflat.type.TypeTable; import net.loveruby.cflat.ir.IR; import net.loveruby.cflat.sysdep.CodeGenerator; -import net.loveruby.cflat.sysdep.AssemblyFile; +import net.loveruby.cflat.sysdep.AssemblyCode; import net.loveruby.cflat.utils.ErrorHandler; import net.loveruby.cflat.exception.*; import java.util.*; @@ -114,7 +114,7 @@ public class Compiler { if (dumpSemant(sem, opts.mode())) return; IR ir = new IRGenerator(types, errorHandler).generate(sem); if (dumpIR(ir, opts.mode())) return; - AssemblyFile asm = generateAssembly(ir, opts); + AssemblyCode asm = generateAssembly(ir, opts); if (dumpAsm(asm, opts.mode())) return; if (printAsm(asm, opts.mode())) return; writeFile(destPath, asm.toSource()); @@ -140,7 +140,7 @@ public class Compiler { return ast; } - public AssemblyFile generateAssembly(IR ir, Options opts) { + public AssemblyCode generateAssembly(IR ir, Options opts) { return opts.codeGenerator(errorHandler).generate(ir); } @@ -251,7 +251,7 @@ public class Compiler { } } - private boolean dumpAsm(AssemblyFile asm, CompilerMode mode) { + private boolean dumpAsm(AssemblyCode asm, CompilerMode mode) { if (mode == CompilerMode.DumpAsm) { asm.dump(System.out); return true; @@ -261,7 +261,7 @@ public class Compiler { } } - private boolean printAsm(AssemblyFile asm, CompilerMode mode) { + private boolean printAsm(AssemblyCode asm, CompilerMode mode) { if (mode == CompilerMode.PrintAsm) { System.out.print(asm.toSource()); return true; diff --git a/net/loveruby/cflat/compiler/Options.java b/net/loveruby/cflat/compiler/Options.java index bce898f..842330a 100644 --- a/net/loveruby/cflat/compiler/Options.java +++ b/net/loveruby/cflat/compiler/Options.java @@ -331,7 +331,7 @@ class Options { out.println(" --dump-semantic Dumps AST after semantic checks and quit."); // --dump-reference is a hidden option. out.println(" --dump-ir Dumps IR and quit."); - out.println(" --dump-asm Dumps AssemblyFile and quit."); + out.println(" --dump-asm Dumps AssemblyCode and quit."); out.println(" --print-asm Prints assembly code and quit."); out.println(" -S Generates an assembly file and quit."); out.println(" -c Generates an object file and quit."); diff --git a/net/loveruby/cflat/sysdep/AssemblyFile.java b/net/loveruby/cflat/sysdep/AssemblyCode.java similarity index 80% rename from net/loveruby/cflat/sysdep/AssemblyFile.java rename to net/loveruby/cflat/sysdep/AssemblyCode.java index 09f35e7..11c4640 100644 --- a/net/loveruby/cflat/sysdep/AssemblyFile.java +++ b/net/loveruby/cflat/sysdep/AssemblyCode.java @@ -1,7 +1,7 @@ package net.loveruby.cflat.sysdep; import java.io.PrintStream; -public interface AssemblyFile { +public interface AssemblyCode { String toSource(); void dump(); void dump(PrintStream s); diff --git a/net/loveruby/cflat/sysdep/CodeGenerator.java b/net/loveruby/cflat/sysdep/CodeGenerator.java index ffb4895..6702e94 100644 --- a/net/loveruby/cflat/sysdep/CodeGenerator.java +++ b/net/loveruby/cflat/sysdep/CodeGenerator.java @@ -1,5 +1,5 @@ package net.loveruby.cflat.sysdep; public interface CodeGenerator { - AssemblyFile generate(net.loveruby.cflat.ir.IR ir); + AssemblyCode generate(net.loveruby.cflat.ir.IR ir); } diff --git a/net/loveruby/cflat/sysdep/x86/AssemblyFile.java b/net/loveruby/cflat/sysdep/x86/AssemblyCode.java similarity index 98% rename from net/loveruby/cflat/sysdep/x86/AssemblyFile.java rename to net/loveruby/cflat/sysdep/x86/AssemblyCode.java index 178a165..3dd9c18 100644 --- a/net/loveruby/cflat/sysdep/x86/AssemblyFile.java +++ b/net/loveruby/cflat/sysdep/x86/AssemblyCode.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.ArrayList; import java.io.PrintStream; -public class AssemblyFile implements net.loveruby.cflat.sysdep.AssemblyFile { +public class AssemblyCode implements net.loveruby.cflat.sysdep.AssemblyCode { final Type naturalType; final long stackWordSize; final SymbolTable labelSymbols; @@ -15,7 +15,7 @@ public class AssemblyFile implements net.loveruby.cflat.sysdep.AssemblyFile { private int commentIndentLevel = 0; private Statistics statistics; - AssemblyFile(Type naturalType, long stackWordSize, + AssemblyCode(Type naturalType, long stackWordSize, SymbolTable labelSymbols, boolean verbose) { this.naturalType = naturalType; this.stackWordSize = stackWordSize; diff --git a/net/loveruby/cflat/sysdep/x86/CodeGenerator.java b/net/loveruby/cflat/sysdep/x86/CodeGenerator.java index 144acb5..147d2a7 100644 --- a/net/loveruby/cflat/sysdep/x86/CodeGenerator.java +++ b/net/loveruby/cflat/sysdep/x86/CodeGenerator.java @@ -26,7 +26,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, /** Compiles IR and generates assembly code. */ // #@@range/generate{ - public AssemblyFile generate(IR ir) { + public AssemblyCode generate(IR ir) { locateSymbols(ir); return generateAssemblyCode(ir); } @@ -142,8 +142,8 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // // #@@range/generateAssemblyCode{ - private AssemblyFile generateAssemblyCode(IR ir) { - AssemblyFile file = newAssemblyFile(); + private AssemblyCode generateAssemblyCode(IR ir) { + AssemblyCode file = newAssemblyCode(); file._file(ir.fileName()); if (ir.isGlobalVariableDefined()) { generateDataSection(file, ir.definedGlobalVariables()); @@ -164,9 +164,9 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, } // #@@} - // #@@range/newAssemblyFile{ - private AssemblyFile newAssemblyFile() { - return new AssemblyFile( + // #@@range/newAssemblyCode{ + private AssemblyCode newAssemblyCode() { + return new AssemblyCode( naturalType, STACK_WORD_SIZE, new SymbolTable(LABEL_SYMBOL_BASE), options.isVerboseAsm()); @@ -175,7 +175,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, /** Generates initialized entries */ // #@@range/generateDataSection{ - private void generateDataSection(AssemblyFile file, + private void generateDataSection(AssemblyCode file, List gvars) { file._data(); for (DefinedVariable var : gvars) { @@ -194,7 +194,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, /** Generates immediate values for .data section */ // #@@range/generateImmediate{ - private void generateImmediate(AssemblyFile file, long size, Expr node) { + private void generateImmediate(AssemblyCode file, long size, Expr node) { if (node instanceof Int) { Int expr = (Int)node; switch ((int)size) { @@ -223,7 +223,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, /** Generates .rodata entries (constant strings) */ // #@@range/generateReadOnlyDataSection{ - private void generateReadOnlyDataSection(AssemblyFile file, + private void generateReadOnlyDataSection(AssemblyCode file, ConstantTable constants) { file._section(".rodata"); for (ConstantEntry ent : constants) { @@ -234,7 +234,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/generateTextSection{ - private void generateTextSection(AssemblyFile file, + private void generateTextSection(AssemblyCode file, List functions) { file._text(); for (DefinedFunction func : functions) { @@ -252,7 +252,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, /** Generates BSS entries */ // #@@range/generateCommonSymbols{ - private void generateCommonSymbols(AssemblyFile file, + private void generateCommonSymbols(AssemblyCode file, List variables) { for (DefinedVariable var : variables) { Symbol sym = globalSymbol(var.symbolString()); @@ -272,7 +272,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, static private final Symbol GOT = new NamedSymbol("_GLOBAL_OFFSET_TABLE_"); - private void loadGOTBaseAddress(AssemblyFile file, Register reg) { + private void loadGOTBaseAddress(AssemblyCode file, Register reg) { file.call(PICThunkSymbol(reg)); file.add(imm(GOT), reg); } @@ -320,7 +320,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, * .section NAME, "...M", TYPE, section_group_name, linkage */ // #@@range/PICThunk{ - private void PICThunk(AssemblyFile file, Register reg) { + private void PICThunk(AssemblyCode file, Register reg) { Symbol sym = PICThunkSymbol(reg); file._section(".text" + "." + sym.toSource(), "\"" + PICThunkSectionFlags + "\"", @@ -406,7 +406,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/compileFunctionBody{ - private void compileFunctionBody(AssemblyFile file, DefinedFunction func) { + private void compileFunctionBody(AssemblyCode file, DefinedFunction func) { StackFrameInfo frame = new StackFrameInfo(); // #@@range/cfb_locate{ locateParameters(func.parameters()); @@ -414,7 +414,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/cfb_offset{ - AssemblyFile body = optimize(compileStmts(func)); + AssemblyCode body = optimize(compileStmts(func)); frame.saveRegs = usedCalleeSavedRegisters(body); frame.tempSize = body.virtualStack.maxSize(); @@ -432,7 +432,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/optimize{ - private AssemblyFile optimize(AssemblyFile body) { + private AssemblyCode optimize(AssemblyCode body) { if (options.optimizeLevel() < 1) { return body; } @@ -442,7 +442,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, } // #@@} - private void printStackFrameLayout(AssemblyFile file, + private void printStackFrameLayout(AssemblyCode file, StackFrameInfo frame, List lvars) { List vars = new ArrayList(); for (DefinedVariable var : lvars) { @@ -481,11 +481,11 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, } // #@@range/compileStmts{ - private AssemblyFile as; + private AssemblyCode as; private Label epilogue; - private AssemblyFile compileStmts(DefinedFunction func) { - as = newAssemblyFile(); + private AssemblyCode compileStmts(DefinedFunction func) { + as = newAssemblyCode(); epilogue = new Label(); for (Stmt s : func.ir()) { compileStmt(s); @@ -497,7 +497,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // does NOT include BP // #@@range/usedCalleeSavedRegisters{ - private List usedCalleeSavedRegisters(AssemblyFile body) { + private List usedCalleeSavedRegisters(AssemblyCode body) { List result = new ArrayList(); for (Register reg : calleeSavedRegisters()) { if (body.doesUses(reg)) { @@ -528,8 +528,8 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, } // #@@range/generateFunctionBody{ - private void generateFunctionBody(AssemblyFile file, - AssemblyFile body, StackFrameInfo frame) { + private void generateFunctionBody(AssemblyCode file, + AssemblyCode body, StackFrameInfo frame) { file.virtualStack.reset(); prologue(file, frame.saveRegs, frame.frameSize()); if (options.isPositionIndependent() && body.doesUses(GOTBaseReg())) { @@ -542,7 +542,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/prologue{ - private void prologue(AssemblyFile file, + private void prologue(AssemblyCode file, List saveRegs, long frameSize) { file.push(bp()); file.mov(sp(), bp()); @@ -554,7 +554,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/epilogue{ - private void epilogue(AssemblyFile file, List savedRegs) { + private void epilogue(AssemblyCode file, List savedRegs) { for (Register reg : ListUtils.reverse(savedRegs)) { file.virtualPop(reg); } @@ -621,13 +621,13 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/fixTempVariableOffsets{ - private void fixTempVariableOffsets(AssemblyFile asm, long len) { + private void fixTempVariableOffsets(AssemblyCode asm, long len) { asm.virtualStack.fixOffset(-len); } // #@@} // #@@range/extendStack{ - private void extendStack(AssemblyFile file, long len) { + private void extendStack(AssemblyCode file, long len) { if (len > 0) { file.sub(imm(len), sp()); } @@ -635,7 +635,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, // #@@} // #@@range/rewindStack{ - private void rewindStack(AssemblyFile file, long len) { + private void rewindStack(AssemblyCode file, long len) { if (len > 0) { file.add(imm(len), sp()); }