diff options
| author | 2012-03-18 00:06:11 -0700 | |
|---|---|---|
| committer | 2012-03-18 00:06:11 -0700 | |
| commit | ab2b55dfcf630fdf8d03b5f506386f114fa2874c (patch) | |
| tree | 288b6e463a5eb13d78bb0a1a511233ddf1259124 /src/compiler/codegen/GenInvoke.cc | |
| parent | b2793375d42b5d90d9a0111581c4314abe11ca4c (diff) | |
Refactor callRuntimeHelper
Change-Id: I87c5f592a931c98c4b5b693b72216f4e71990162
Diffstat (limited to 'src/compiler/codegen/GenInvoke.cc')
| -rw-r--r-- | src/compiler/codegen/GenInvoke.cc | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/compiler/codegen/GenInvoke.cc b/src/compiler/codegen/GenInvoke.cc index 401eeb6db6..2ded80088f 100644 --- a/src/compiler/codegen/GenInvoke.cc +++ b/src/compiler/codegen/GenInvoke.cc @@ -470,21 +470,12 @@ int genDalvikArgsRange(CompilationUnit* cUnit, MIR* mir, int startOffset = oatSRegOffset(cUnit, cUnit->regLocation[mir->ssaRep->uses[3]].sRegLow); int outsOffset = 4 /* Method* */ + (3 * 4); -#if defined(TARGET_MIPS) +#if defined(TARGET_MIPS) || defined(TARGET_X86) // Generate memcpy opRegRegImm(cUnit, kOpAdd, rARG0, rSP, outsOffset); opRegRegImm(cUnit, kOpAdd, rARG1, rSP, startOffset); - int rTgt = loadHelper(cUnit, OFFSETOF_MEMBER(Thread, pMemcpy)); - loadConstant(cUnit, rARG2, (numArgs - 3) * 4); - callRuntimeHelper(cUnit, rTgt); - // Restore Method* - loadCurrMethodDirect(cUnit, rARG0); -#elif defined(TARGET_X86) - // Generate memcpy - opRegRegImm(cUnit, kOpAdd, rARG0, rSP, outsOffset); - opRegRegImm(cUnit, kOpAdd, rARG1, rSP, startOffset); - loadConstant(cUnit, rARG2, (numArgs - 3) * 4); - callRuntimeHelper(cUnit, OFFSETOF_MEMBER(Thread, pMemcpy)); + callRuntimeHelperRegRegImm(cUnit, OFFSETOF_MEMBER(Thread, pMemcpy), + rARG0, rARG1, (numArgs - 3) * 4); // Restore Method* loadCurrMethodDirect(cUnit, rARG0); #else @@ -492,9 +483,8 @@ int genDalvikArgsRange(CompilationUnit* cUnit, MIR* mir, // Generate memcpy opRegRegImm(cUnit, kOpAdd, rARG0, rSP, outsOffset); opRegRegImm(cUnit, kOpAdd, rARG1, rSP, startOffset); - int rTgt = loadHelper(cUnit, OFFSETOF_MEMBER(Thread, pMemcpy)); - loadConstant(cUnit, rARG2, (numArgs - 3) * 4); - callRuntimeHelper(cUnit, rTgt); + callRuntimeHelperRegRegImm(cUnit, OFFSETOF_MEMBER(Thread, pMemcpy), + rARG0, rARG1, (numArgs - 3) * 4); // Restore Method* loadCurrMethodDirect(cUnit, rARG0); } else { |