OSDN Git Service

ART: Implement HBooleanNot instruction
authorDavid Brazdil <dbrazdil@google.com>
Fri, 3 Apr 2015 15:02:44 +0000 (16:02 +0100)
committerDavid Brazdil <dbrazdil@google.com>
Wed, 15 Apr 2015 11:51:49 +0000 (12:51 +0100)
commit66d126ea06ce3f507d86ca5f0d1f752170ac9be1
tree8e247db17ef085b55725b21c64d292414fd00b32
parent9bb3e8e10d7d9230a323511094a9e260062a1473
ART: Implement HBooleanNot instruction

Optimizations simplifying operations on boolean values (boolean
simplifier, instruction simplifier) can benefit from having a special
HInstruction for negating booleans in order to perform more transforms
and produce faster machine code.

This patch implements HBooleanNot as 'x xor 1', assuming that booleans
are 1-bit integers and allowing for a single-instruction negation on
all supported platforms.

Change-Id: I33a2649c1821255b18a86ca68ed16416063c739f
compiler/optimizing/boolean_simplifier.cc
compiler/optimizing/code_generator_arm.cc
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_x86.cc
compiler/optimizing/code_generator_x86_64.cc
compiler/optimizing/nodes.h
test/468-checker-bool-simplifier-regression/expected.txt [moved from test/468-bool-simplifier-regression/expected.txt with 100% similarity]
test/468-checker-bool-simplifier-regression/info.txt [moved from test/468-bool-simplifier-regression/info.txt with 100% similarity]
test/468-checker-bool-simplifier-regression/smali/TestCase.smali [moved from test/468-bool-simplifier-regression/smali/TestCase.smali with 100% similarity]
test/468-checker-bool-simplifier-regression/src/Main.java [moved from test/468-bool-simplifier-regression/src/Main.java with 63% similarity]