summaryrefslogtreecommitdiffstats
path: root/compiler/dex/compiler_enums.h
diff options
context:
space:
mode:
authorNingsheng Jian <ningsheng.jian@arm.com>2014-11-25 16:48:07 +0800
committerNingsheng Jian <ningsheng.jian@arm.com>2014-12-11 09:08:22 +0800
commita262f7707330dccfb50af6345813083182b61043 (patch)
treea8ab4e42654f47c9deea517f6c4e2020c62d5724 /compiler/dex/compiler_enums.h
parent3e465bec65067ebfdf662469cf85dd82cd077bdd (diff)
downloadandroid_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.h28
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,
};