Chromium Code Reviews| Index: src/mips/full-codegen-mips.cc |
| diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc |
| index 997aa3e3d97a98cd3aa1393a46fda7cbfb35be4a..7c0f687f334320dc21814dd54edcbc66a75d0a80 100644 |
| --- a/src/mips/full-codegen-mips.cc |
| +++ b/src/mips/full-codegen-mips.cc |
| @@ -1039,6 +1039,15 @@ void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) { |
| CallIC(ic, RelocInfo::CODE_TARGET, clause->CompareId()); |
| patch_site.EmitPatchInfo(); |
| + Label skip; |
| + __ b(&skip); |
| + PrepareForBailout(clause, TOS_REG); |
| + __ LoadRoot(at, Heap::kTrueValueRootIndex); |
| + __ Branch(&next_test, ne, v0, Operand(zero_reg)); |
|
Toon Verwaest
2013/12/18 15:14:16
Probably should compare v0 with at.
Hannes Payer (out of office)
2013/12/18 15:18:03
Done.
|
| + __ Drop(1); |
| + __ jmp(clause->body_target()); |
| + __ bind(&skip); |
| + |
| __ Branch(&next_test, ne, v0, Operand(zero_reg)); |
| __ Drop(1); // Switch value is no longer needed. |
| __ Branch(clause->body_target()); |