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 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 // Store resume mode into generator object. | 703 // Store resume mode into generator object. |
704 __ StoreP(r4, FieldMemOperand(r3, JSGeneratorObject::kResumeModeOffset)); | 704 __ StoreP(r4, FieldMemOperand(r3, JSGeneratorObject::kResumeModeOffset)); |
705 | 705 |
706 // Load suspended function and context. | 706 // Load suspended function and context. |
707 __ LoadP(cp, FieldMemOperand(r3, JSGeneratorObject::kContextOffset)); | 707 __ LoadP(cp, FieldMemOperand(r3, JSGeneratorObject::kContextOffset)); |
708 __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset)); | 708 __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset)); |
709 | 709 |
710 // Flood function if we are stepping. | 710 // Flood function if we are stepping. |
711 Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator; | 711 Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator; |
712 Label stepping_prepared; | 712 Label stepping_prepared; |
713 ExternalReference step_in_enabled = | 713 ExternalReference last_step_action = |
714 ExternalReference::debug_step_in_enabled_address(masm->isolate()); | 714 ExternalReference::debug_last_step_action_address(masm->isolate()); |
715 __ mov(ip, Operand(step_in_enabled)); | 715 STATIC_ASSERT(StepFrame > StepIn); |
716 __ LoadlB(ip, MemOperand(ip)); | 716 __ mov(ip, Operand(last_step_action)); |
717 __ CmpP(ip, Operand::Zero()); | 717 __ LoadB(ip, MemOperand(ip)); |
718 __ bne(&prepare_step_in_if_stepping); | 718 __ CmpP(ip, Operand(StepIn)); |
| 719 __ bge(&prepare_step_in_if_stepping); |
719 | 720 |
720 // Flood function if we need to continue stepping in the suspended generator. | 721 // Flood function if we need to continue stepping in the suspended generator. |
721 | 722 |
722 ExternalReference debug_suspended_generator = | 723 ExternalReference debug_suspended_generator = |
723 ExternalReference::debug_suspended_generator_address(masm->isolate()); | 724 ExternalReference::debug_suspended_generator_address(masm->isolate()); |
724 | 725 |
725 __ mov(ip, Operand(debug_suspended_generator)); | 726 __ mov(ip, Operand(debug_suspended_generator)); |
726 __ LoadP(ip, MemOperand(ip)); | 727 __ LoadP(ip, MemOperand(ip)); |
727 __ CmpP(ip, r3); | 728 __ CmpP(ip, r3); |
728 __ beq(&prepare_step_in_suspended_generator); | 729 __ beq(&prepare_step_in_suspended_generator); |
(...skipping 2171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2900 __ bkpt(0); | 2901 __ bkpt(0); |
2901 } | 2902 } |
2902 } | 2903 } |
2903 | 2904 |
2904 #undef __ | 2905 #undef __ |
2905 | 2906 |
2906 } // namespace internal | 2907 } // namespace internal |
2907 } // namespace v8 | 2908 } // namespace v8 |
2908 | 2909 |
2909 #endif // V8_TARGET_ARCH_S390 | 2910 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |