From a1a7074eb8256d101f7b5d256cda26d7de6ce6ce Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Mon, 3 Mar 2014 10:28:05 +0000 Subject: Rewrite kMirOpSelect for all IF_ccZ opcodes. Also improve special cases for ARM and add tests. Change-Id: I06f575b9c7b547dbc431dbfadf2b927151fe16b9 --- compiler/dex/quick/codegen_util.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'compiler/dex/quick/codegen_util.cc') diff --git a/compiler/dex/quick/codegen_util.cc b/compiler/dex/quick/codegen_util.cc index eb6f9d1f7e..14469b61c3 100644 --- a/compiler/dex/quick/codegen_util.cc +++ b/compiler/dex/quick/codegen_util.cc @@ -967,6 +967,22 @@ ConditionCode Mir2Lir::FlipComparisonOrder(ConditionCode before) { return res; } +ConditionCode Mir2Lir::NegateComparison(ConditionCode before) { + ConditionCode res; + switch (before) { + case kCondEq: res = kCondNe; break; + case kCondNe: res = kCondEq; break; + case kCondLt: res = kCondGe; break; + case kCondGt: res = kCondLe; break; + case kCondLe: res = kCondGt; break; + case kCondGe: res = kCondLt; break; + default: + res = static_cast(0); + LOG(FATAL) << "Unexpected ccode " << before; + } + return res; +} + // TODO: move to mir_to_lir.cc Mir2Lir::Mir2Lir(CompilationUnit* cu, MIRGraph* mir_graph, ArenaAllocator* arena) : Backend(arena), -- cgit v1.2.3-59-g8ed1b