Index: src/full-codegen/s390/full-codegen-s390.cc |
diff --git a/src/full-codegen/s390/full-codegen-s390.cc b/src/full-codegen/s390/full-codegen-s390.cc |
index 8e92d89d2aae61ef0b584be3344f805ba1546cdd..5662f1c7ab717e1a1e4637fc4a65f1c327fa7e88 100644 |
--- a/src/full-codegen/s390/full-codegen-s390.cc |
+++ b/src/full-codegen/s390/full-codegen-s390.cc |
@@ -1758,11 +1758,10 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
__ b(&suspend); |
__ bind(&continuation); |
- // When we arrive here, the stack top is the resume mode and |
- // result_register() holds the input value (the argument given to the |
- // respective resume operation). |
+ // When we arrive here, r2 holds the generator object. |
__ RecordGeneratorContinuation(); |
- __ pop(r3); |
+ __ LoadP(r3, FieldMemOperand(r2, JSGeneratorObject::kResumeModeOffset)); |
+ __ LoadP(r2, FieldMemOperand(r2, JSGeneratorObject::kInputOffset)); |
STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn); |
STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn); |
__ CmpSmiLiteral(r3, Smi::FromInt(JSGeneratorObject::kReturn), r0); |