Minero Aoki
694aa209f3
r4998@macbookpro: aamine | 2009-05-31 22:33:21 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: refactoring: rename method.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java (Int): simplify code.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4270 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-31 13:34:00 +00:00
Minero Aoki
3b566ad27c
r4994@macbookpro: aamine | 2009-05-27 01:59:19 +0900
...
* net/loveruby/cflat/sysdep/x86/AssemblyFile.java: remove unused methods.
* net/loveruby/cflat/sysdep/x86/AssemblyFile.java: reduce Type argument.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: follow changes.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4267 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 17:06:04 +00:00
Minero Aoki
9805e5c958
change preproc tags
...
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4266 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 07:53:13 +00:00
Minero Aoki
1729dbaac0
r4984@macbookpro: aamine | 2009-05-26 15:11:36 +0900
...
* net/loveruby/cflat/compiler/Compiler.java: change CodeGenerator output: String -> AssemblyFile.
* net/loveruby/cflat/sysdep/AssemblyFile.java: new interface.
* net/loveruby/cflat/sysdep/x86/AssemblyFile.java: implement it.
* net/loveruby/cflat/sysdep/CodeGenerator.java: #generate returns AssemblyFile.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: ditto.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4262 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 07:52:42 +00:00
Minero Aoki
b38ec78fdc
r4982@macbookpro: aamine | 2009-05-26 13:40:29 +0900
...
* net/loveruby/cflat/sysdep/x86: rename class: RegKind -> RegisterClass.
* net/loveruby/cflat/sysdep/x86: follow it.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4261 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 04:41:56 +00:00
Minero Aoki
a1832aca6b
r4972@macbookpro: aamine | 2009-05-26 13:24:13 +0900
...
* net/loveruby/cflat/asm: refactoring: rename class: AsmStatistics -> Statistics.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: follow it.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4260 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 04:24:48 +00:00
Minero Aoki
aabbca6e13
r4971@macbookpro: aamine | 2009-05-26 13:19:10 +0900
...
* net/loveruby/cflat/asm: refactoring: rename class: AsmOperand -> Operand.
* net/loveruby/cflat/asm: follow it.
* net/loveruby/cflat/sysdep/x86: follow it.
* net/loveruby/cflat/ir: follow it.
* net/loveruby/cflat/entity: follow it.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4259 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 04:24:46 +00:00
Minero Aoki
53e8ae748d
fix preproc tag only
...
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4252 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 14:37:24 +00:00
Minero Aoki
9fc50d2179
fix preproc tags only
...
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4251 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 14:08:43 +00:00
Minero Aoki
64e91a4737
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: refactoring: reorder methods.
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: refactoring: inlining #testCond.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4248 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 13:44:10 +00:00
Minero Aoki
b9ad38ef16
r4942@macbookpro: aamine | 2009-05-24 21:56:17 +0900
...
* net/loveruby/cflat/compiler/IRGenerator.java: do not use Expr#isConstantAddress, it confuses semantics.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: ditto.
* net/loveruby/cflat/ir/Expr.java: introduce new methods #isVar and #isAddr, instead of #isConstantAddress.
* net/loveruby/cflat/ir/Addr.java: override #isAddr.
* net/loveruby/cflat/ir/Var.java: override #isVar.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4247 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 12:56:38 +00:00
Minero Aoki
ad7af66f8b
r4896@macbookpro: aamine | 2009-05-24 02:08:03 +0900
...
* utilize final field.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4236 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 17:08:24 +00:00
Minero Aoki
0f12ee78f1
r4892@macbookpro: aamine | 2009-05-24 00:41:44 +0900
...
* net/loveruby/cflat/ir: rename class: BranchIf -> CJump.
* net/loveruby/cflat/ir/IRVisitor.java: follow it.
* net/loveruby/cflat/compiler/IRGenerator.java: ditto.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: ditto.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4234 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 16:18:03 +00:00
Minero Aoki
a54e95aa16
r4887@macbookpro: aamine | 2009-05-23 23:30:32 +0900
...
* net/loveruby/cflat/compiler/IRGenerator.java: refactoring: use reverse(node.args) instead of ListIterator.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: ditto.
* net/loveruby/cflat/utils/ListUtils.java: new utility class.
* net/loveruby/cflat/ast/FuncallNode.java: remove #finalArgs.
* net/loveruby/cflat/ir/Call.java: ditto.
* net/loveruby/cflat/ast/FuncallNode.java: refactoring: rename method: arguments -> args.
* net/loveruby/cflat/compiler/Visitor.java: follow it.
* net/loveruby/cflat/compiler/TypeChecker.java: ditto.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4232 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 14:31:37 +00:00
Minero Aoki
68c4a0104b
r4870@macbookpro: aamine | 2009-05-18 03:51:57 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java (optimize): wrongly did not optimize asm code.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4223 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 19:14:03 +00:00
Minero Aoki
17e2199db8
r4869@macbookpro: aamine | 2009-05-18 03:50:00 +0900
...
fix preproc tag
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4222 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 19:14:02 +00:00
Minero Aoki
3ddae38cb1
r4846@macbookpro: aamine | 2009-05-16 18:12:26 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: fix typo.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4215 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 02:27:35 +00:00
Minero Aoki
e2536e611e
r4845@macbookpro: aamine | 2009-05-16 18:04:25 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: parameterize naturalType.
* net/loveruby/cflat/sysdep/X86Linux.java: provide parameter.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4214 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 02:27:34 +00:00
Minero Aoki
84626ea57e
r4843@macbookpro: aamine | 2009-05-16 17:21:40 +0900
...
* net/loveruby/cflat/asm/Register.java: use enum for register name.
* net/loveruby/cflat/sysdep/x86/RegKind.java: new enum.
* net/loveruby/cflat/sysdep/x86/Register.java: move system dependent code to sysdep/x86/Register.
* net/loveruby/cflat/asm/IndirectMemoryReference.java: reduce dependency to Register method.
* net/loveruby/cflat/sysdep/x86/AssemblyFile.java: use RegKind.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: reg(*) -> ax(), bx(), cx(), ...
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4212 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 02:27:33 +00:00
Minero Aoki
c26eb88f2e
r4834@macbookpro: aamine | 2009-05-11 03:17:05 +0900
...
* net/loveruby/cflat/compiler/Compiler.java: objectify assembler.
* net/loveruby/cflat/compiler/Compiler.java: objectify linker.
* net/loveruby/cflat/compiler/Options.java: provide #assembler, #asOptions, #linker, #ldOptions.
* net/loveruby/cflat/sysdep/x86/X86Linux.java -> sysdep/X86Linux.java
* net/loveruby/cflat/sysdep/Platform.java: provide #assembler, #linker.
* net/loveruby/cflat/sysdep/X86Linux.java: ditto.
* net/loveruby/cflat/sysdep/Assembler.java: new interface.
* net/loveruby/cflat/sysdep/AssemblerOptions.java: new class.
* net/loveruby/cflat/sysdep/GNUAssembler.java: new Assembler implementation.
* net/loveruby/cflat/sysdep/Linker.java: new interface.
* net/loveruby/cflat/sysdep/LinkerOptions.java: new clas.
* net/loveruby/cflat/sysdep/GNULinker.java: new Linker implementation.
* net/loveruby/cflat/utils/CommandUtils.java: new class.
* net/loveruby/cflat/compiler/LdArg.java -> utils/CommandArg.java
* net/loveruby/cflat/compiler/LdOption.java -> utils/CommandArgStr.java
* net/loveruby/cflat/compiler/SourceFile.java: implements CommandArg.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4207 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 18:18:52 +00:00
Minero Aoki
21f7253fc9
r4827@macbookpro: aamine | 2009-05-11 01:47:38 +0900
...
* net/loveruby/cflat/codegenerator/CodeGenerator.java -> net/loveruby/cflat/sysdep
* net/loveruby/cflat/codegenerator/CodeGeneratorOptions.java -> net/loveruby/cflat/sysdep
* net/loveruby/cflat/sysdep/Platform.java: ditto.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: ditto.
* net/loveruby/cflat/sysdep/x86/X86Linux.java: ditto.
* net/loveruby/cflat/compiler/Compiler.java: ditto.
* net/loveruby/cflat/compiler/Options.java: ditto.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4205 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 16:49:48 +00:00
Minero Aoki
3a7d40e63d
r4826@macbookpro: aamine | 2009-05-11 01:40:01 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: use PeepholeOptimizer directly.
* net/loveruby/cflat/asm/PeepholeOptimizer.java -> net/loveruby/cflat/sysdep/x86
* net/loveruby/cflat/asm/AsmOptimizer.java: removed.
* net/loveruby/cflat/codegenerator/CodeGeneratorOptions.java: should not provide PeepholeOptimizer, just provide optimizationLevel.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4204 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 16:49:47 +00:00
Minero Aoki
703b44faf5
r4824@macbookpro: aamine | 2009-05-11 01:09:13 +0900
...
* net/loveruby/cflat/compiler/IRGenerator.java: generate address expression for LHS expr.
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: remove #compileLHS. Just compile LHS expr.
* net/loveruby/cflat/ir/Addr.java: is a constant address now.
* net/loveruby/cflat/ir/Var.java: is not a constant address now.
* net/loveruby/cflat/ir/Expr.java: new base method #addressNode.
* net/loveruby/cflat/ir/Mem.java: override #addressNode.
* net/loveruby/cflat/ir/Var.java: ditto.
* net/loveruby/cflat/ir/Addr.java: ditto.
* net/loveruby/cflat/ir/Expr.java: new base method #getEntityForce.
* net/loveruby/cflat/ir/Var.java: override #getEntityForce.
* net/loveruby/cflat/ir/Addr.java: ditto.
* net/loveruby/cflat/ir/Call.java: get function entity by Expr#getEntityForce.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4202 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 16:49:45 +00:00
Minero Aoki
5c0f37ca8a
r4815@macbookpro: aamine | 2009-05-10 23:48:56 +0900
...
* net/loveruby/cflat/parser/Parser.jj: define SOURCE_ENCODING here (again).
* net/loveruby/cflat/compiler/Constants.java: removed.
* net/loveruby/cflat/compiler/CodeGenerator.java -> net/loveruby/cflat/codegenerator
* net/loveruby/cflat/compiler/CodeGeneratorOptions.java -> net/loveruby/cflat/codegenerator
* net/loveruby/cflat/compiler/Platform.java -> net/loveruby/cflat/sysdep
* net/loveruby/cflat/compiler/ErrorHandler.java -> net/loveruby/cflat/utils
* net/loveruby/cflat/compiler/LibraryLoader.java -> net/loveruby/cflat/parser
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4201 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 14:52:00 +00:00
Minero Aoki
b2bf10c92d
r4814@macbookpro: aamine | 2009-05-10 23:05:44 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: move virtual stack to AssemblyFile.
* net/loveruby/cflat/sysdep/x86/AssemblyFile.java: ditto.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4200 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 14:51:58 +00:00
Minero Aoki
c1dfb94513
r4813@macbookpro: aamine | 2009-05-10 22:46:19 +0900
...
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: protected -> private.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4199 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 14:51:57 +00:00
Minero Aoki
2bfba83992
r4811@macbookpro: aamine | 2009-05-10 22:41:42 +0900
...
* net/loveruby/cflat/sysdep/x86: new package.
* net/loveruby/cflat/asm/ELFConstants.java -> net/loveruby/cflat/sysdep/x86
* net/loveruby/cflat/asm/AssemblyFile.java -> net/loveruby/cflat/sysdep/x86
net/loveruby/cflat/asm/Register.java
* net/loveruby/cflat/platform/X86Linux.java -> net/loveruby/cflat/sysdep/x86
* net/loveruby/cflat/compiler/CodeGenerator.java -> net/loveruby/cflat/sysdep/x86
* net/loveruby/cflat/platform/Platform.java -> net/loveruby/cflat/compiler
* net/loveruby/cflat/sysdep/x86/Register.java: new file.
* net/loveruby/cflat/compiler/Options.java: new method #codeGenerator.
* net/loveruby/cflat/compiler/Compiler.java: get CodeGenerator from Options.
* net/loveruby/cflat/compiler/CodeGeneratorOptions.java: make public.
* net/loveruby/cflat/ir/IR.java: now naturalType is useless (provided by CodeGenerator).
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4197 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 14:51:56 +00:00