Commit Graph

406 Commits

Author SHA1 Message Date
Minero Aoki 7ce8034b0f r4967@macbookpro: aamine | 2009-05-26 12:21:40 +0900
* net/loveruby/cflat/compiler/Options.java: check unknown file types.
 * net/loveruby/cflat/compiler/SourceFile.java: new method #isKnownFileType.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4255 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 04:24:42 +00:00
Minero Aoki e6b6f20d24 r4966@macbookpro: aamine | 2009-05-26 11:59:25 +0900
* net/loveruby/cflat/compiler/Options.java: allow --verbose-asm too.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4254 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 04:24:41 +00:00
Minero Aoki c30f91a58a r4964@macbookpro: aamine | 2009-05-26 11:50:29 +0900
* net/loveruby/cflat/compiler/Options.java: --verbose-asm -> -fverbose-asm
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4253 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-26 02:52:20 +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 118d27b4ef r4941@macbookpro: aamine | 2009-05-24 21:54:18 +0900
* net/loveruby/cflat/ast: remove useless methods: ExprNode#isConstantAddress.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4246 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 12:56:37 +00:00
Minero Aoki de2d14c1fb modify preproc range
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4245 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 12:29:15 +00:00
Minero Aoki 2871c6d19d add preproc tags.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4244 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 12:18:09 +00:00
Minero Aoki 4d889a2588 r4907@macbookpro: aamine | 2009-05-24 20:23:14 +0900
* net/loveruby/cflat/compiler/IRGenerator.java (Dereference): do not generate Mem for unloadable object (implicit address generation handling).
 * net/loveruby/cflat/ast: dump #type for LHS nodes.
 * net/loveruby/cflat/ast/AddressNode.java: do not inherit UnaryOpNode.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4241 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 11:23:29 +00:00
Minero Aoki 0fd4bbfad3 fix preproc tag
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4240 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 10:23:30 +00:00
Minero Aoki bfacf5e6c1 r4903@macbookpro: aamine | 2009-05-24 19:22:57 +0900
* net/loveruby/cflat/compiler/TypeResolver.java: now 3 pathes (define, resolve entities, resolve expr) are not required; just use old 2 pathes (define, resolve).  Old TypeResolver fixed a type of AddressNode, it requires 3 path.  But current implementation fixes a type of AddressNode in DereferenceChecker, we do not need 3 path.
 * net/loveruby/cflat/ast/AST.java: #entities -> #definitions.
 * net/loveruby/cflat/ast/AST.java: new method #entities, it returns #definitions + #declarations.
 * net/loveruby/cflat/compiler/TypeResolver.java: follow it.
 * net/loveruby/cflat/compiler/LocalResolver.java: follow it.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4239 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 10:23:12 +00:00
Minero Aoki bdfc0de55c add preproc tags.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4238 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 06:36:14 +00:00
Minero Aoki e27f329f98 r4898@macbookpro: aamine | 2009-05-24 11:57:29 +0900
* net/loveruby/cflat/compiler/IRGenerator.java (If): refactoring: increase readability.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4237 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-24 02:57:48 +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 c7254ff547 r4893@macbookpro: aamine | 2009-05-24 01:17:52 +0900
* net/loveruby/cflat/compiler/IRGenerator.java: reorder methods.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4235 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 16:18:04 +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 1e3eae4634 r4890@macbookpro: aamine | 2009-05-24 00:00:20 +0900
* net/loveruby/cflat/compiler/IRGenerator.java: refactoring: reorder stmts.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4233 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 15:00:29 +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 e002c1089a r4884@macbookpro: aamine | 2009-05-23 22:30:20 +0900
* net/loveruby/cflat/parser/Parser.jj: now NULL is not a reserved word.
 * import/stddef.hb: define const NULL.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4231 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 14:30:54 +00:00
Minero Aoki 92ed010477 new library
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4230 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 14:09:28 +00:00
Minero Aoki 717bd630c9 * net/loveruby/cflat/compiler/IRGenerator.java: refactoring: rename method: deref -> mem
* net/loveruby/cflat/type/ArrayType.java: remove useless definition of #isScalar.


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4229 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 13:22:14 +00:00
Minero Aoki 2bca02006e * net/loveruby/cflat/compiler/IRGenerator.java: refactoring: extract method: #bin.
* net/loveruby/cflat/compiler/IRGenerator.java: refactoring: extract method: #isPointerDiff.
* net/loveruby/cflat/compiler/IRGenerator.java: refactoring: extract method: #isPointerArithmetic.
* net/loveruby/cflat/type/TypeTable.java: new method #longSize.
* net/loveruby/cflat/ast/ExprNode.java: remove unused method #baseSize.


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4228 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-23 12:34:09 +00:00
Minero Aoki db59955467 Add preproc tags. Attach location to all Assign.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4227 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-21 23:20:09 +00:00
Minero Aoki 68332ee470 add preproc tags
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4226 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-21 23:19:00 +00:00
Minero Aoki 7af5ebc4a9 r4875@macbookpro: aamine | 2009-05-18 05:10:22 +0900
* net/loveruby/cflat/compiler/TypeChecker.java: allow ptr-ptr.
 * net/loveruby/cflat/compiler/IRGenerator.java: implement ptr-ptr.
 * net/loveruby/cflat/type/VoidType.java: VoidType#size is 1.
 * net/loveruby/cflat/ast/ExprNode.java: new helper method #baseType.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4225 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 20:10:28 +00:00
Minero Aoki e8f60b1e9f add preproc tag
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4224 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 19:30:00 +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 7d580ddf77 r4866@macbookpro: aamine | 2009-05-18 03:31:01 +0900
* net/loveruby/cflat/compiler/TypeResolver.java: move x[] -> x* code to DereferenceChecker.
 * net/loveruby/cflat/compiler/DereferenceChecker.java: ditto.
 * net/loveruby/cflat/compiler/Compiler.java: pass TypeTable to DereferenceChecker.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4221 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 18:35:04 +00:00
Minero Aoki 3b29c039bd r4865@macbookpro: aamine | 2009-05-18 03:02:28 +0900
* net/loveruby/cflat/parser/Parser.jj: change function pointer syntax: int(*)(int,int) -> int(int,int)*.  Function type is int(int,int).
 * net/loveruby/cflat/parser/Parser.jj: function returns function type, not pointer to function.
 * net/loveruby/cflat/compiler/TypeResolver.java: resolve all function headers first, then resolve bodies.
 * net/loveruby/cflat/compiler/TypeResolver.java: generate a pointer for array-type expression.
 * net/loveruby/cflat/compiler/TypeResolver.java: isDereferable -> isPointer.
 * net/loveruby/cflat/compiler/TypeChecker.java: ditto.
 * net/loveruby/cflat/compiler/DereferenceChecker.java: ditto.
 * net/loveruby/cflat/compiler/IRGenerator.java: ditto.
 * net/loveruby/cflat/compiler/IRGenerator.java: shouldEvaluatedToAddress -> isLoadable (check arrays and functions, not only arrays).
 * net/loveruby/cflat/type/Type.java: remove #isDereferable.
 * net/loveruby/cflat/type/UserType.java: ditto.
 * net/loveruby/cflat/type/ArrayType.java: is not a scalar.
 * net/loveruby/cflat/type/ArrayType.java: is not dereferable itself.
 * net/loveruby/cflat/type/PointerType.java: is incompatible with arrays.
 * net/loveruby/cflat/type/IntegerType.java: ditto.
 * net/loveruby/cflat/type/FunctionType.java: is callable.
 * net/loveruby/cflat/type/ParamTypeRefs.java: x[] -> x* for param types.
 * net/loveruby/cflat/type/TypeTable.java: new method #getParamType.
 * net/loveruby/cflat/ast/ExprNode.java: new method #isLvalue.
 * net/loveruby/cflat/ast/ExprNode.java: new method #isAssignable.
 * net/loveruby/cflat/ast/ExprNode.java: new method #isLoadable.
 * net/loveruby/cflat/ast/CastNode.java: delegate them.
 * net/loveruby/cflat/ast/LHSNode.java: new super class of LHS nodes.
 * net/loveruby/cflat/ast/VariableNode.java: ditto.
 * net/loveruby/cflat/ast/DereferenceNode.java: ditto.
 * net/loveruby/cflat/ast/ArefNode.java: ditto.
 * net/loveruby/cflat/ast/MemberNode.java: ditto.
 * net/loveruby/cflat/ast/PtrMemberNode.java: ditto.
 * net/loveruby/cflat/entity/Entity.java: remove #cannotLoad.
 * net/loveruby/cflat/entity/Function.java: ditto.
 * net/loveruby/cflat/entity/Variable.java: ditto.
 * net/loveruby/cflat/entity/Constant.java: ditto.
 * net/loveruby/cflat/ir/Addr.java: is not LHS node now.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4220 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 18:35:02 +00:00
Minero Aoki ced081c9c3 r4855@macbookpro: aamine | 2009-05-17 16:38:28 +0900
* import/dlfcn.hb: new declaration file dlfcn.hb.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4219 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 07:39:02 +00:00
Minero Aoki cf8e221756 r4854@macbookpro: aamine | 2009-05-17 16:37:51 +0900
* net/loveruby/cflat/entity/ToplevelScope.java: do not warn unused constant.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4218 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 07:39:01 +00:00
Minero Aoki d3194fb8bd r4853@macbookpro: aamine | 2009-05-17 16:34:27 +0900
* net/loveruby/cflat/parser/Parser.jj: support constant definition.
 * net/loveruby/cflat/ast/Declarations.java: hold constants.
 * net/loveruby/cflat/ast/AST.java: ditto.
 * net/loveruby/cflat/compiler/LocalResolver.java: resolve constants.
 * net/loveruby/cflat/compiler/TypeResolver.java: resolve constants.
 * net/loveruby/cflat/compiler/IRGenerator.java: transform constants reference into literal value.
 * net/loveruby/cflat/compiler/DereferenceChecker.java: check if toplevel variable initializer consists of a literal.
 * net/loveruby/cflat/compiler/DereferenceChecker.java: check if constant value consists of a literal.
 * net/loveruby/cflat/ast/ExprNode.java: new method #isConstant.
 * net/loveruby/cflat/ast/LiteralNode.java: override.
 * net/loveruby/cflat/entity/Entity.java: support Constant.
 * net/loveruby/cflat/entity/Constant.java: new entity.
 * net/loveruby/cflat/entity/EntityVisitor.java: add Constant.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4217 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 07:39:00 +00:00
Minero Aoki 9ebdc8c35a r4852@macbookpro: aamine | 2009-05-17 16:19:18 +0900
* net/loveruby/cflat/compiler/Options.java: cbc --dump-* did not work.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4216 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 07:38:57 +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 ed319a4bc0 r4844@macbookpro: aamine | 2009-05-16 17:50:02 +0900
* net/loveruby/cflat/sysdep/x86/AssemblyFile.java: use Type instead of size.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4213 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 015bd34c4c r4842@macbookpro: aamine | 2009-05-13 04:35:34 +0900
updated


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4211 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-17 02:27:31 +00:00
Minero Aoki 189c089088 r4839@macbookpro: aamine | 2009-05-13 03:24:14 +0900
* compiler/Compiler.java: grand refactoring.
 * compiler/Options.java: refactoring: avoid ping-pong call with SourceFile.
 * compiler/SourceFile.java: ditto.
 * ast/AST.java: does not contain a TypeTable.
 * compiler/IRGenerator.java
 * compiler/TypeResolver.java
 * compiler/TypeChecker.java
 * sysdep/Linker.java: change arg order.
 * sysdep/GNULinker.java: ditto.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4210 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-12 18:24:47 +00:00
Minero Aoki 9c8af78a97 r4838@macbookpro: aamine | 2009-05-13 01:23:44 +0900
* net/loveruby/cflat/utils/CommandUtils.java: accept a list of string instead of CommandArg.
 * net/loveruby/cflat/sysdep/Linker.java: ditto.
 * net/loveruby/cflat/sysdep/LinkerOptions.java: ditto.
 * net/loveruby/cflat/sysdep/GNULinker.java: ditto.
 * net/loveruby/cflat/sysdep/AssemblerOptions.java: ditto.
 * net/loveruby/cflat/sysdep/GNUAssembler.java: ditto.
 * net/loveruby/cflat/utils/CommandArgStr.java -> compiler/LdOption.java
 * net/loveruby/cflat/utils/CommandArg.java -> compiler/LdArg.java
 * net/loveruby/cflat/compiler/SourceFile.java: CommandArg -> LdArg.
 * 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@4209 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-12 18:24:46 +00:00
Minero Aoki 5576b83389 r4835@macbookpro: aamine | 2009-05-11 03:18:42 +0900
updated


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4208 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 18:18:53 +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 f6c90ab8da r4828@macbookpro: aamine | 2009-05-11 01:49:02 +0900
* net/loveruby/cflat/parser/Parser.jj: use JDK_VERSION="1.5" to suppress warnings.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4206 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 16:49:49 +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 c970823e99 r4825@macbookpro: aamine | 2009-05-11 01:31:01 +0900
* net/loveruby/cflat/compiler/Compiler.java: move dumper code to AST to minimize Compiler code.
 * net/loveruby/cflat/ast/AST.java: add dumper code.
 


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4203 1b9489fe-b721-0410-924e-b54b9192deb8
2009-05-10 16:49:46 +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