summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/locations.h
diff options
context:
space:
mode:
authorMark Mendell <mark.p.mendell@intel.com>2015-03-13 13:47:53 -0400
committerMark Mendell <mark.p.mendell@intel.com>2015-03-13 14:01:43 -0400
commit3f6c7f61855172d3d9b7a9221baba76136088e7c (patch)
treeb61ab89a880ae74f44956425f5c9794d73ef029d /compiler/optimizing/locations.h
parentcc22e3946baf035c8732e9417ab132bfe663aa45 (diff)
downloadandroid_art-3f6c7f61855172d3d9b7a9221baba76136088e7c.tar.gz
android_art-3f6c7f61855172d3d9b7a9221baba76136088e7c.tar.bz2
android_art-3f6c7f61855172d3d9b7a9221baba76136088e7c.zip
[optimizing] Improve x86, x86_64 code
Tweak the generated code to allow more use of constants and other small changes - Use test vs. compare to 0 - EmitMove of 0.0 should use xorps - VisitCompare kPrimLong can use constants - cmp/add/sub/mul on x86_64 can use constants if in int32_t range - long bit operations on x86 examine long constant high/low to optimize - Use 3 operand imulq if constant is in int32_t range Change-Id: I2dd4010fdffa129fe00905b0020590fe95f3f926 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Diffstat (limited to 'compiler/optimizing/locations.h')
-rw-r--r--compiler/optimizing/locations.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/optimizing/locations.h b/compiler/optimizing/locations.h
index 566c0daf1e..de876be9ab 100644
--- a/compiler/optimizing/locations.h
+++ b/compiler/optimizing/locations.h
@@ -345,6 +345,7 @@ class Location : public ValueObject {
}
static Location RegisterOrConstant(HInstruction* instruction);
+ static Location RegisterOrInt32LongConstant(HInstruction* instruction);
static Location ByteRegisterOrConstant(int reg, HInstruction* instruction);
// The location of the first input to the instruction will be