diff options
author | Elliott Hughes <enh@google.com> | 2011-01-19 18:18:42 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2011-01-20 10:12:22 -0800 |
commit | 7e914f110323165e7f683eece444ef83a499596d (patch) | |
tree | 0592956571360e79db88328d06b663791cbbfbae /vm/compiler/codegen/arm/Thumb2 | |
parent | a091b0680cbb38d4a4f7e3de1cfaabfca4c16c00 (diff) | |
download | android_dalvik-7e914f110323165e7f683eece444ef83a499596d.tar.gz android_dalvik-7e914f110323165e7f683eece444ef83a499596d.tar.bz2 android_dalvik-7e914f110323165e7f683eece444ef83a499596d.zip |
Light refactoring of handleExecuteInline.
I wanted the code to JIT a call a C function extracted so I can potentially
use it elsewhere. The functions that sometimes JIT instructions directly and
other times bail out to C can now call this, simplifying the body of the
switch. I think there's a behavioral change here with the ThumbVFP
genInlineSqrt, which previously had the wrong return value.
Tested on passion to ensure that the performance characteristics of assembler
intrinsics, C intrinsics, and library native methods haven't changed (using
the Math and Float classes).
Change-Id: Id79771a31abe3a516f403486454e9c0d9793622a
Diffstat (limited to 'vm/compiler/codegen/arm/Thumb2')
-rw-r--r-- | vm/compiler/codegen/arm/Thumb2/Gen.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vm/compiler/codegen/arm/Thumb2/Gen.c b/vm/compiler/codegen/arm/Thumb2/Gen.c index f5e1096ea..a0195bcaa 100644 --- a/vm/compiler/codegen/arm/Thumb2/Gen.c +++ b/vm/compiler/codegen/arm/Thumb2/Gen.c @@ -411,7 +411,7 @@ static bool genInlinedAbsFloat(CompilationUnit *cUnit, MIR *mir) RegLocation rlResult = dvmCompilerEvalLoc(cUnit, rlDest, kFPReg, true); newLIR2(cUnit, kThumb2Vabss, rlResult.lowReg, rlSrc.lowReg); storeValue(cUnit, rlDest, rlResult); - return true; + return false; } static bool genInlinedAbsDouble(CompilationUnit *cUnit, MIR *mir) @@ -423,7 +423,7 @@ static bool genInlinedAbsDouble(CompilationUnit *cUnit, MIR *mir) newLIR2(cUnit, kThumb2Vabsd, S2D(rlResult.lowReg, rlResult.highReg), S2D(rlSrc.lowReg, rlSrc.highReg)); storeValueWide(cUnit, rlDest, rlResult); - return true; + return false; } static bool genInlinedMinMaxInt(CompilationUnit *cUnit, MIR *mir, bool isMin) |