diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-04-07 15:26:35 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-04-08 08:43:50 +0100 |
commit | b55f835d66a61e5da6fc1895ba5a0482868c9552 (patch) | |
tree | 44659a826aeadcf2bf176c2e8d31108ba64c88eb /compiler/optimizing/code_generator_arm.cc | |
parent | 427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c (diff) | |
download | art-b55f835d66a61e5da6fc1895ba5a0482868c9552.zip art-b55f835d66a61e5da6fc1895ba5a0482868c9552.tar.gz art-b55f835d66a61e5da6fc1895ba5a0482868c9552.tar.bz2 |
Test control flow instruction with optimizing compiler.
Add support for basic instructions to implement these tests.
Change-Id: I3870bf9301599043b3511522bb49dc6364c9b4c0
Diffstat (limited to 'compiler/optimizing/code_generator_arm.cc')
-rw-r--r-- | compiler/optimizing/code_generator_arm.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/compiler/optimizing/code_generator_arm.cc b/compiler/optimizing/code_generator_arm.cc index 2364bc8..4e88765 100644 --- a/compiler/optimizing/code_generator_arm.cc +++ b/compiler/optimizing/code_generator_arm.cc @@ -149,7 +149,6 @@ void LocationsBuilderARM::VisitLocal(HLocal* local) { void InstructionCodeGeneratorARM::VisitLocal(HLocal* local) { DCHECK_EQ(local->GetBlock(), GetGraph()->GetEntryBlock()); - codegen_->SetFrameSize(codegen_->GetFrameSize() + kArmWordSize); } void LocationsBuilderARM::VisitLoadLocal(HLoadLocal* load) { @@ -384,5 +383,17 @@ void InstructionCodeGeneratorARM::VisitParameterValue(HParameterValue* instructi } } +void LocationsBuilderARM::VisitNot(HNot* instruction) { + LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction); + locations->SetInAt(0, Location(R0)); + locations->SetOut(Location(R0)); + instruction->SetLocations(locations); +} + +void InstructionCodeGeneratorARM::VisitNot(HNot* instruction) { + LocationSummary* locations = instruction->GetLocations(); + __ eor(locations->Out().reg<Register>(), locations->InAt(0).reg<Register>(), ShifterOperand(1)); +} + } // namespace arm } // namespace art |