Index: src/full-codegen/ppc/full-codegen-ppc.cc |
diff --git a/src/full-codegen/ppc/full-codegen-ppc.cc b/src/full-codegen/ppc/full-codegen-ppc.cc |
index a6eedbd8b853a89549781f59181b93008966690d..f014951ca5c36fc04b690d39fb6c17ed56485b60 100644 |
--- a/src/full-codegen/ppc/full-codegen-ppc.cc |
+++ b/src/full-codegen/ppc/full-codegen-ppc.cc |
@@ -1732,57 +1732,8 @@ void FullCodeGenerator::VisitAssignment(Assignment* expr) { |
void FullCodeGenerator::VisitYield(Yield* expr) { |
- Comment cmnt(masm_, "[ Yield"); |
- SetExpressionPosition(expr); |
- |
- // Evaluate yielded value first; the initial iterator definition depends on |
- // this. It stays on the stack while we update the iterator. |
- VisitForStackValue(expr->expression()); |
- |
- Label suspend, continuation, post_runtime, resume, exception; |
- |
- __ b(&suspend); |
- __ bind(&continuation); |
- // When we arrive here, r3 holds the generator object. |
- __ RecordGeneratorContinuation(); |
- __ LoadP(r4, FieldMemOperand(r3, JSGeneratorObject::kResumeModeOffset)); |
- __ LoadP(r3, FieldMemOperand(r3, JSGeneratorObject::kInputOrDebugPosOffset)); |
- STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn); |
- STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn); |
- __ CmpSmiLiteral(r4, Smi::FromInt(JSGeneratorObject::kReturn), r0); |
- __ blt(&resume); |
- __ Push(result_register()); |
- __ bgt(&exception); |
- EmitCreateIteratorResult(true); |
- EmitUnwindAndReturn(); |
- |
- __ bind(&exception); |
- __ CallRuntime(expr->rethrow_on_exception() ? Runtime::kReThrow |
- : Runtime::kThrow); |
- |
- __ bind(&suspend); |
- OperandStackDepthIncrement(1); // Not popped on this path. |
- VisitForAccumulatorValue(expr->generator_object()); |
- DCHECK(continuation.pos() > 0 && Smi::IsValid(continuation.pos())); |
- __ LoadSmiLiteral(r4, Smi::FromInt(continuation.pos())); |
- __ StoreP(r4, FieldMemOperand(r3, JSGeneratorObject::kContinuationOffset), |
- r0); |
- __ StoreP(cp, FieldMemOperand(r3, JSGeneratorObject::kContextOffset), r0); |
- __ mr(r4, cp); |
- __ RecordWriteField(r3, JSGeneratorObject::kContextOffset, r4, r5, |
- kLRHasBeenSaved, kDontSaveFPRegs); |
- __ addi(r4, fp, Operand(StandardFrameConstants::kExpressionsOffset)); |
- __ cmp(sp, r4); |
- __ beq(&post_runtime); |
- __ push(r3); // generator object |
- __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1); |
- RestoreContext(); |
- __ bind(&post_runtime); |
- PopOperand(result_register()); |
- EmitReturnSequence(); |
- |
- __ bind(&resume); |
- context()->Plug(result_register()); |
+ // Resumable functions are not supported. |
+ UNREACHABLE(); |
} |
void FullCodeGenerator::PushOperands(Register reg1, Register reg2) { |