OLD | NEW |
---|---|
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_S390 | 5 #if V8_TARGET_ARCH_S390 |
6 | 6 |
7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" |
9 #include "src/deoptimizer.h" | 9 #include "src/deoptimizer.h" |
10 #include "src/full-codegen/full-codegen.h" | 10 #include "src/full-codegen/full-codegen.h" |
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
663 // -- r4 : the resume mode (tagged) | 663 // -- r4 : the resume mode (tagged) |
664 // -- r5 : the SuspendFlags of the earlier suspend call (tagged) | 664 // -- r5 : the SuspendFlags of the earlier suspend call (tagged) |
665 // -- lr : return address | 665 // -- lr : return address |
666 // ----------------------------------- | 666 // ----------------------------------- |
667 __ SmiUntag(r5); | 667 __ SmiUntag(r5); |
668 __ AssertGeneratorObject(r3, r5); | 668 __ AssertGeneratorObject(r3, r5); |
669 | 669 |
670 // Store input value into generator object. | 670 // Store input value into generator object. |
671 Label async_await, done_store_input; | 671 Label async_await, done_store_input; |
672 | 672 |
673 __ And(r5, r5, Operand(static_cast<int>(SuspendFlags::kAsyncGeneratorAwait))); | 673 __ AndP(r5, r5, |
674 Operand(static_cast<int>(SuspendFlags::kAsyncGeneratorAwait))); | |
john.yan
2017/04/11 17:30:41
use tmll?
JaideepBajwa
2017/04/11 22:45:01
I tried changing to
__ tmll(r5, Operand(static_c
| |
674 __ CmpP(r5, Operand(static_cast<int>(SuspendFlags::kAsyncGeneratorAwait))); | 675 __ CmpP(r5, Operand(static_cast<int>(SuspendFlags::kAsyncGeneratorAwait))); |
675 __ beq(&async_await); | 676 __ beq(&async_await); |
676 | 677 |
677 __ StoreP(r2, FieldMemOperand(r3, JSGeneratorObject::kInputOrDebugPosOffset), | 678 __ StoreP(r2, FieldMemOperand(r3, JSGeneratorObject::kInputOrDebugPosOffset), |
678 r0); | 679 r0); |
679 __ RecordWriteField(r3, JSGeneratorObject::kInputOrDebugPosOffset, r2, r5, | 680 __ RecordWriteField(r3, JSGeneratorObject::kInputOrDebugPosOffset, r2, r5, |
680 kLRHasNotBeenSaved, kDontSaveFPRegs); | 681 kLRHasNotBeenSaved, kDontSaveFPRegs); |
681 __ b(&done_store_input); | 682 __ b(&done_store_input); |
682 | 683 |
683 __ bind(&async_await); | 684 __ bind(&async_await); |
(...skipping 2408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3092 // Now jump to the instructions of the returned code object. | 3093 // Now jump to the instructions of the returned code object. |
3093 __ Jump(ip); | 3094 __ Jump(ip); |
3094 } | 3095 } |
3095 | 3096 |
3096 #undef __ | 3097 #undef __ |
3097 | 3098 |
3098 } // namespace internal | 3099 } // namespace internal |
3099 } // namespace v8 | 3100 } // namespace v8 |
3100 | 3101 |
3101 #endif // V8_TARGET_ARCH_S390 | 3102 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |