Index: runtime/vm/intermediate_language_arm.cc |
=================================================================== |
--- runtime/vm/intermediate_language_arm.cc (revision 21676) |
+++ runtime/vm/intermediate_language_arm.cc (working copy) |
@@ -2243,13 +2243,22 @@ |
LocationSummary* BooleanNegateInstr::MakeLocationSummary() const { |
- UNIMPLEMENTED(); |
- return NULL; |
+ return LocationSummary::Make(1, |
+ Location::RequiresRegister(), |
+ LocationSummary::kNoCall); |
} |
void BooleanNegateInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
- UNIMPLEMENTED(); |
+ Register value = locs()->in(0).reg(); |
+ Register result = locs()->out().reg(); |
+ |
+ Label done; |
+ __ LoadObject(result, Bool::True()); |
+ __ cmp(result, ShifterOperand(value)); |
+ __ b(&done, NE); |
+ __ LoadObject(result, Bool::False()); |
+ __ Bind(&done); |
} |