| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_ARM | 5 #if V8_TARGET_ARCH_ARM |
| 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 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 | 730 |
| 731 // Store input value into generator object. | 731 // Store input value into generator object. |
| 732 __ str(r0, FieldMemOperand(r1, JSGeneratorObject::kInputOrDebugPosOffset)); | 732 __ str(r0, FieldMemOperand(r1, JSGeneratorObject::kInputOrDebugPosOffset)); |
| 733 __ RecordWriteField(r1, JSGeneratorObject::kInputOrDebugPosOffset, r0, r3, | 733 __ RecordWriteField(r1, JSGeneratorObject::kInputOrDebugPosOffset, r0, r3, |
| 734 kLRHasNotBeenSaved, kDontSaveFPRegs); | 734 kLRHasNotBeenSaved, kDontSaveFPRegs); |
| 735 | 735 |
| 736 // Store resume mode into generator object. | 736 // Store resume mode into generator object. |
| 737 __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kResumeModeOffset)); | 737 __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kResumeModeOffset)); |
| 738 | 738 |
| 739 // Load suspended function and context. | 739 // Load suspended function and context. |
| 740 __ ldr(cp, FieldMemOperand(r1, JSGeneratorObject::kContextOffset)); | |
| 741 __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset)); | 740 __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset)); |
| 741 __ ldr(cp, FieldMemOperand(r4, JSFunction::kContextOffset)); |
| 742 | 742 |
| 743 // Flood function if we are stepping. | 743 // Flood function if we are stepping. |
| 744 Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator; | 744 Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator; |
| 745 Label stepping_prepared; | 745 Label stepping_prepared; |
| 746 ExternalReference debug_hook = | 746 ExternalReference debug_hook = |
| 747 ExternalReference::debug_hook_on_function_call_address(masm->isolate()); | 747 ExternalReference::debug_hook_on_function_call_address(masm->isolate()); |
| 748 __ mov(ip, Operand(debug_hook)); | 748 __ mov(ip, Operand(debug_hook)); |
| 749 __ ldrsb(ip, MemOperand(ip)); | 749 __ ldrsb(ip, MemOperand(ip)); |
| 750 __ cmp(ip, Operand(0)); | 750 __ cmp(ip, Operand(0)); |
| 751 __ b(ne, &prepare_step_in_if_stepping); | 751 __ b(ne, &prepare_step_in_if_stepping); |
| (...skipping 2126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2878 __ bkpt(0); | 2878 __ bkpt(0); |
| 2879 } | 2879 } |
| 2880 } | 2880 } |
| 2881 | 2881 |
| 2882 #undef __ | 2882 #undef __ |
| 2883 | 2883 |
| 2884 } // namespace internal | 2884 } // namespace internal |
| 2885 } // namespace v8 | 2885 } // namespace v8 |
| 2886 | 2886 |
| 2887 #endif // V8_TARGET_ARCH_ARM | 2887 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |