| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index d8b65663e854cd0228e7b321fda9928057f3e098..07cc7f9ec2672927e3090a145418956db0beaccd 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -1563,19 +1563,27 @@ void MacroAssembler::Branch(Label* L, Condition cond, Register rs,
|
| if (is_near(L)) {
|
| BranchShort(L, cond, rs, rt, bdslot);
|
| } else {
|
| - Label skip;
|
| - Condition neg_cond = NegateCondition(cond);
|
| - BranchShort(&skip, neg_cond, rs, rt);
|
| - Jr(L, bdslot);
|
| - bind(&skip);
|
| + if (cond != cc_always) {
|
| + Label skip;
|
| + Condition neg_cond = NegateCondition(cond);
|
| + BranchShort(&skip, neg_cond, rs, rt);
|
| + Jr(L, bdslot);
|
| + bind(&skip);
|
| + } else {
|
| + Jr(L, bdslot);
|
| + }
|
| }
|
| } else {
|
| if (is_trampoline_emitted()) {
|
| - Label skip;
|
| - Condition neg_cond = NegateCondition(cond);
|
| - BranchShort(&skip, neg_cond, rs, rt);
|
| - Jr(L, bdslot);
|
| - bind(&skip);
|
| + if (cond != cc_always) {
|
| + Label skip;
|
| + Condition neg_cond = NegateCondition(cond);
|
| + BranchShort(&skip, neg_cond, rs, rt);
|
| + Jr(L, bdslot);
|
| + bind(&skip);
|
| + } else {
|
| + Jr(L, bdslot);
|
| + }
|
| } else {
|
| BranchShort(L, cond, rs, rt, bdslot);
|
| }
|
|
|