summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/builder.cc
diff options
context:
space:
mode:
authorRoland Levillain <rpl@google.com>2014-10-23 16:38:33 +0100
committerRoland Levillain <rpl@google.com>2014-10-23 17:08:48 +0100
commit66ce173a40eff4392e9949ede169ccf3108be2db (patch)
tree552bc6275388c3bc6ecd4f549ffcd1422c020f82 /compiler/optimizing/builder.cc
parente2b2cbf8bffdf9ee3ece487fde9ac78652b4abaf (diff)
downloadandroid_art-66ce173a40eff4392e9949ede169ccf3108be2db.tar.gz
android_art-66ce173a40eff4392e9949ede169ccf3108be2db.tar.bz2
android_art-66ce173a40eff4392e9949ede169ccf3108be2db.zip
Implement long negate instruction in the optimizing compiler.
- Add support for the neg-long (long integer two's complement negate) instruction in the optimizing compiler. - Add a 64-bit NEG instruction (negq) to the x86-64 assembler. - Generate ARM, x86 and x86-64 code for integer HNeg nodes. - Put neg-related tests into test/415-optimizing-arith-neg. Change-Id: I1fbe9611e134408a6b8745d1df20ab6ffa5e50f2
Diffstat (limited to 'compiler/optimizing/builder.cc')
-rw-r--r--compiler/optimizing/builder.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index 79cbd0ee21..0ab7782e2c 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -748,6 +748,11 @@ bool HGraphBuilder::AnalyzeDexInstruction(const Instruction& instruction, uint32
break;
}
+ case Instruction::NEG_LONG: {
+ Unop_12x<HNeg>(instruction, Primitive::kPrimLong);
+ break;
+ }
+
case Instruction::NOT_INT: {
Unop_12x<HNot>(instruction, Primitive::kPrimInt);
break;