diff options
author | Ningsheng Jian <ningsheng.jian@arm.com> | 2014-11-25 16:48:07 +0800 |
---|---|---|
committer | Ningsheng Jian <ningsheng.jian@arm.com> | 2014-12-11 09:08:22 +0800 |
commit | a262f7707330dccfb50af6345813083182b61043 (patch) | |
tree | a8ab4e42654f47c9deea517f6c4e2020c62d5724 /compiler/dex/compiler_enums.h | |
parent | 3e465bec65067ebfdf662469cf85dd82cd077bdd (diff) | |
download | android_art-a262f7707330dccfb50af6345813083182b61043.tar.gz android_art-a262f7707330dccfb50af6345813083182b61043.tar.bz2 android_art-a262f7707330dccfb50af6345813083182b61043.zip |
ARM: Combine multiply accumulate operations.
Try to combine integer multiply and add(sub) into a MAC operation.
For AArch64, also try to combine long type multiply and add(sub).
Change-Id: Ic85812e941eb5a66abc355cab81a4dd16de1b66e
Diffstat (limited to 'compiler/dex/compiler_enums.h')
-rw-r--r-- | compiler/dex/compiler_enums.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/compiler/dex/compiler_enums.h b/compiler/dex/compiler_enums.h index a3fe8ad038..7ff06a04cb 100644 --- a/compiler/dex/compiler_enums.h +++ b/compiler/dex/compiler_enums.h @@ -311,6 +311,34 @@ enum ExtendedMIROpcode { // arg[0]: TypeSize (most other vector opcodes have this in vC) kMirOpPackedArrayPut, + // @brief Multiply-add integer. + // vA: destination + // vB: multiplicand + // vC: multiplier + // arg[0]: addend + kMirOpMaddInt, + + // @brief Multiply-subtract integer. + // vA: destination + // vB: multiplicand + // vC: multiplier + // arg[0]: minuend + kMirOpMsubInt, + + // @brief Multiply-add long. + // vA: destination + // vB: multiplicand + // vC: multiplier + // arg[0]: addend + kMirOpMaddLong, + + // @brief Multiply-subtract long. + // vA: destination + // vB: multiplicand + // vC: multiplier + // arg[0]: minuend + kMirOpMsubLong, + kMirOpLast, }; |