diff options
| author | 2012-06-06 16:45:18 -0700 | |
|---|---|---|
| committer | 2012-06-06 16:45:18 -0700 | |
| commit | 408ad16bf7c460bf34ca55ff6351b79841a6fcd5 (patch) | |
| tree | 7336813d0fc92aa3ddd9b372cb1d260dd2386b9f /src/compiler/codegen/mips/Codegen.h | |
| parent | 95b2619ca83752eb041020276e57af01052d0f94 (diff) | |
Restructure to reduce MIR references
This CL eliminates most of the MIR references in the lower-level
code generator. This allows a higher level of code sharing with
the MIR->LIR and GreenlandIR->LIR lowering passes.
The invoke, launchpads and new array support will need some more
extensive refactoring (future CL).
Change-Id: I75f249268c8ac18da1dd9180ff855d5176d6c4fe
Diffstat (limited to 'src/compiler/codegen/mips/Codegen.h')
| -rw-r--r-- | src/compiler/codegen/mips/Codegen.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/codegen/mips/Codegen.h b/src/compiler/codegen/mips/Codegen.h index 6ddc5ac210..6add82ab0d 100644 --- a/src/compiler/codegen/mips/Codegen.h +++ b/src/compiler/codegen/mips/Codegen.h @@ -27,11 +27,11 @@ namespace art { #if defined(_CODEGEN_C) -bool genAddLong(CompilationUnit* cUnit, MIR* mir, RegLocation rlDest, +bool genAddLong(CompilationUnit* cUnit, RegLocation rlDest, RegLocation rlSrc1, RegLocation rlSrc2); -bool genSubLong(CompilationUnit* cUnit, MIR* mir, RegLocation rlDest, +bool genSubLong(CompilationUnit* cUnit, RegLocation rlDest, RegLocation rlSrc1, RegLocation rlSrc2); -bool genNegLong(CompilationUnit* cUnit, MIR* mir, RegLocation rlDest, +bool genNegLong(CompilationUnit* cUnit, RegLocation rlDest, RegLocation rlSrc); LIR *opRegImm(CompilationUnit* cUnit, OpKind op, int rDestSrc1, int value); LIR *opRegReg(CompilationUnit* cUnit, OpKind op, int rDestSrc1, int rSrc2); @@ -41,15 +41,16 @@ LIR* opCmpImmBranch(CompilationUnit* cUnit, ConditionCode cond, int reg, int checkValue, LIR* target); /* Forward declaraton the portable versions due to circular dependency */ -bool genArithOpFloatPortable(CompilationUnit* cUnit, MIR* mir, +bool genArithOpFloatPortable(CompilationUnit* cUnit, Instruction::Code opcode, RegLocation rlDest, RegLocation rlSrc1, RegLocation rlSrc2); -bool genArithOpDoublePortable(CompilationUnit* cUnit, MIR* mir, +bool genArithOpDoublePortable(CompilationUnit* cUnit, Instruction::Code opcode, RegLocation rlDest, RegLocation rlSrc1, RegLocation rlSrc2); -bool genConversionPortable(CompilationUnit* cUnit, MIR* mir); +bool genConversionPortable(CompilationUnit* cUnit, Instruction::Code opcode, + RegLocation rlDest, RegLocation rlSrc); int loadHelper(CompilationUnit* cUnit, int offset); LIR* loadConstant(CompilationUnit* cUnit, int reg, int immVal); |