diff options
author | Elliott Hughes <enh@google.com> | 2012-09-14 11:54:57 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2012-09-14 11:54:57 -0700 |
commit | 6986bcfd1cdeafb594203fee605ebed456fe83c3 (patch) | |
tree | dde0fe9d77f4ce87b805a14dff8633ed80ab8655 /vm/compiler/codegen/arm | |
parent | cfeacbdd0cdd71a7974ac623e6534d0221d93ed9 (diff) | |
download | android_dalvik-6986bcfd1cdeafb594203fee605ebed456fe83c3.tar.gz android_dalvik-6986bcfd1cdeafb594203fee605ebed456fe83c3.tar.bz2 android_dalvik-6986bcfd1cdeafb594203fee605ebed456fe83c3.zip |
Optimize those StrictMath routines that are identical to Math routines.
We can just use the existing Math intinsics.
Bug: 7146208
Change-Id: I9e78d33cf65a5dcc5a7c0133e67bd9c3c1e43f23
Diffstat (limited to 'vm/compiler/codegen/arm')
-rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.cpp b/vm/compiler/codegen/arm/CodegenDriver.cpp index 78809dc74..7346c835e 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.cpp +++ b/vm/compiler/codegen/arm/CodegenDriver.cpp @@ -3645,30 +3645,40 @@ static bool handleExecuteInline(CompilationUnit *cUnit, MIR *mir) return false; /* Nop */ /* These ones we potentially JIT inline. */ + + case INLINE_STRING_CHARAT: + return genInlinedStringCharAt(cUnit, mir); case INLINE_STRING_LENGTH: return genInlinedStringLength(cUnit, mir); case INLINE_STRING_IS_EMPTY: return genInlinedStringIsEmpty(cUnit, mir); + case INLINE_STRING_COMPARETO: + return genInlinedCompareTo(cUnit, mir); + case INLINE_STRING_FASTINDEXOF_II: + return genInlinedFastIndexOf(cUnit, mir); + case INLINE_MATH_ABS_INT: + case INLINE_STRICT_MATH_ABS_INT: return genInlinedAbsInt(cUnit, mir); case INLINE_MATH_ABS_LONG: + case INLINE_STRICT_MATH_ABS_LONG: return genInlinedAbsLong(cUnit, mir); case INLINE_MATH_MIN_INT: + case INLINE_STRICT_MATH_MIN_INT: return genInlinedMinMaxInt(cUnit, mir, true); case INLINE_MATH_MAX_INT: + case INLINE_STRICT_MATH_MAX_INT: return genInlinedMinMaxInt(cUnit, mir, false); - case INLINE_STRING_CHARAT: - return genInlinedStringCharAt(cUnit, mir); case INLINE_MATH_SQRT: + case INLINE_STRICT_MATH_SQRT: return genInlineSqrt(cUnit, mir); case INLINE_MATH_ABS_FLOAT: + case INLINE_STRICT_MATH_ABS_FLOAT: return genInlinedAbsFloat(cUnit, mir); case INLINE_MATH_ABS_DOUBLE: + case INLINE_STRICT_MATH_ABS_DOUBLE: return genInlinedAbsDouble(cUnit, mir); - case INLINE_STRING_COMPARETO: - return genInlinedCompareTo(cUnit, mir); - case INLINE_STRING_FASTINDEXOF_II: - return genInlinedFastIndexOf(cUnit, mir); + case INLINE_FLOAT_TO_RAW_INT_BITS: case INLINE_INT_BITS_TO_FLOAT: return genInlinedIntFloatConversion(cUnit, mir); |