| Index: runtime/vm/flow_graph_compiler_mips.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_mips.cc (revision 24535)
|
| +++ runtime/vm/flow_graph_compiler_mips.cc (working copy)
|
| @@ -1613,6 +1613,7 @@
|
|
|
| switch (true_condition) {
|
| case EQ: assembler()->ceqd(left, right); break;
|
| + case NE: assembler()->ceqd(left, right); break;
|
| case LT: assembler()->coltd(left, right); break;
|
| case LE: assembler()->coled(left, right); break;
|
| case GT: assembler()->coltd(right, left); break;
|
| @@ -1625,8 +1626,13 @@
|
| }
|
|
|
| assembler()->LoadImmediate(TMP, 1);
|
| - assembler()->movf(CMPRES, TMP);
|
| - assembler()->movt(CMPRES, ZR);
|
| + if (true_condition == NE) {
|
| + assembler()->movf(CMPRES, ZR);
|
| + assembler()->movt(CMPRES, TMP);
|
| + } else {
|
| + assembler()->movf(CMPRES, TMP);
|
| + assembler()->movt(CMPRES, ZR);
|
| + }
|
| assembler()->mov(TMP, ZR);
|
|
|
| // EmitBranchOnCondition expects ordering to be described by CMPRES, TMP1.
|
| @@ -1646,6 +1652,7 @@
|
|
|
| switch (true_condition) {
|
| case EQ: assembler()->ceqd(left, right); break;
|
| + case NE: assembler()->ceqd(left, right); break;
|
| case LT: assembler()->coltd(left, right); break;
|
| case LE: assembler()->coled(left, right); break;
|
| case GT: assembler()->coltd(right, left); break;
|
| @@ -1657,7 +1664,11 @@
|
| }
|
| }
|
|
|
| - assembler()->bc1f(&done); // False is already in result.
|
| + if (true_condition == NE) {
|
| + assembler()->bc1t(&done); // False is already in result.
|
| + } else {
|
| + assembler()->bc1f(&done);
|
| + }
|
| assembler()->LoadObject(result, Bool::True());
|
| assembler()->Bind(&done);
|
| }
|
|
|