| Index: runtime/vm/intermediate_language_x64.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_x64.cc (revision 8212)
|
| +++ runtime/vm/intermediate_language_x64.cc (working copy)
|
| @@ -113,20 +113,17 @@
|
|
|
| LocationSummary* BranchInstr::MakeLocationSummary() const {
|
| const int kNumInputs = 1;
|
| - const int kNumTemps = 1;
|
| + const int kNumTemps = 0;
|
| LocationSummary* locs = new LocationSummary(kNumInputs, kNumTemps);
|
| locs->set_in(0, Location::RequiresRegister());
|
| - locs->set_temp(0, Location::RequiresRegister());
|
| return locs;
|
| }
|
|
|
|
|
| void BranchInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register value = locs()->in(0).reg();
|
| - Register temp = locs()->temp(0).reg();
|
|
|
| - __ LoadObject(temp, Bool::ZoneHandle(Bool::True()));
|
| - __ cmpq(value, temp);
|
| + __ CompareObject(value, Bool::ZoneHandle(Bool::True()));
|
| if (compiler->IsNextBlock(false_successor())) {
|
| // If the next block is the false sucessor we will fall through to it if
|
| // comparison with true fails.
|
| @@ -249,6 +246,7 @@
|
| if (kind() == Token::kEQ_STRICT) {
|
| __ j(EQUAL, &load_true, Assembler::kNearJump);
|
| } else {
|
| + ASSERT(kind() == Token::kNE_STRICT);
|
| __ j(NOT_EQUAL, &load_true, Assembler::kNearJump);
|
| }
|
| __ LoadObject(result, bool_false);
|
|
|