Index: src/mips64/deoptimizer-mips64.cc |
diff --git a/src/mips64/deoptimizer-mips64.cc b/src/mips64/deoptimizer-mips64.cc |
index 9fc4c4730d63efadb22d078709acbc94fa772c67..43d6ff4b22404623bf34d10708a3141b8f122d2a 100644 |
--- a/src/mips64/deoptimizer-mips64.cc |
+++ b/src/mips64/deoptimizer-mips64.cc |
@@ -155,9 +155,14 @@ void Deoptimizer::TableEntryGenerator::Generate() { |
// Allocate a new deoptimizer object. |
__ PrepareCallCFunction(6, a5); |
- // Pass six arguments, according to O32 or n64 ABI. a0..a3 are same for both. |
- __ li(a1, Operand(type())); // bailout type, |
+ // Pass six arguments, according to n64 ABI. |
+ __ mov(a0, zero_reg); |
+ Label context_check; |
+ __ ld(a1, MemOperand(fp, CommonFrameConstants::kContextOrFrameTypeOffset)); |
+ __ JumpIfSmi(a1, &context_check); |
__ ld(a0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
+ __ bind(&context_check); |
+ __ li(a1, Operand(type())); // Bailout type. |
// a2: bailout id already loaded. |
// a3: code address or 0 already loaded. |
// a4: already has fp-to-sp delta. |