| 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 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
| 8 | 8 |
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 2809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2820 if (!expr->IsSuperAccess()) { | 2820 if (!expr->IsSuperAccess()) { |
| 2821 VisitForAccumulatorValue(expr->obj()); | 2821 VisitForAccumulatorValue(expr->obj()); |
| 2822 __ Move(LoadDescriptor::ReceiverRegister(), r0); | 2822 __ Move(LoadDescriptor::ReceiverRegister(), r0); |
| 2823 EmitNamedPropertyLoad(expr); | 2823 EmitNamedPropertyLoad(expr); |
| 2824 } else { | 2824 } else { |
| 2825 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); | 2825 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); |
| 2826 EmitLoadHomeObject(expr->obj()->AsSuperReference()); | 2826 EmitLoadHomeObject(expr->obj()->AsSuperReference()); |
| 2827 __ Push(result_register()); | 2827 __ Push(result_register()); |
| 2828 EmitNamedSuperPropertyLoad(expr); | 2828 EmitNamedSuperPropertyLoad(expr); |
| 2829 } | 2829 } |
| 2830 PrepareForBailoutForId(expr->LoadId(), TOS_REG); | |
| 2831 context()->Plug(r0); | |
| 2832 } else { | 2830 } else { |
| 2833 if (!expr->IsSuperAccess()) { | 2831 if (!expr->IsSuperAccess()) { |
| 2834 VisitForStackValue(expr->obj()); | 2832 VisitForStackValue(expr->obj()); |
| 2835 VisitForAccumulatorValue(expr->key()); | 2833 VisitForAccumulatorValue(expr->key()); |
| 2836 __ Move(LoadDescriptor::NameRegister(), r0); | 2834 __ Move(LoadDescriptor::NameRegister(), r0); |
| 2837 __ pop(LoadDescriptor::ReceiverRegister()); | 2835 __ pop(LoadDescriptor::ReceiverRegister()); |
| 2838 EmitKeyedPropertyLoad(expr); | 2836 EmitKeyedPropertyLoad(expr); |
| 2839 } else { | 2837 } else { |
| 2840 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); | 2838 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); |
| 2841 EmitLoadHomeObject(expr->obj()->AsSuperReference()); | 2839 EmitLoadHomeObject(expr->obj()->AsSuperReference()); |
| 2842 __ Push(result_register()); | 2840 __ Push(result_register()); |
| 2843 VisitForStackValue(expr->key()); | 2841 VisitForStackValue(expr->key()); |
| 2844 EmitKeyedSuperPropertyLoad(expr); | 2842 EmitKeyedSuperPropertyLoad(expr); |
| 2845 } | 2843 } |
| 2846 context()->Plug(r0); | |
| 2847 } | 2844 } |
| 2845 PrepareForBailoutForId(expr->LoadId(), TOS_REG); |
| 2846 context()->Plug(r0); |
| 2848 } | 2847 } |
| 2849 | 2848 |
| 2850 | 2849 |
| 2851 void FullCodeGenerator::CallIC(Handle<Code> code, | 2850 void FullCodeGenerator::CallIC(Handle<Code> code, |
| 2852 TypeFeedbackId ast_id) { | 2851 TypeFeedbackId ast_id) { |
| 2853 ic_total_count_++; | 2852 ic_total_count_++; |
| 2854 // All calls must have a predictable size in full-codegen code to ensure that | 2853 // All calls must have a predictable size in full-codegen code to ensure that |
| 2855 // the debugger can patch them correctly. | 2854 // the debugger can patch them correctly. |
| 2856 __ Call(code, RelocInfo::CODE_TARGET, ast_id, al, | 2855 __ Call(code, RelocInfo::CODE_TARGET, ast_id, al, |
| 2857 NEVER_INLINE_TARGET_ADDRESS); | 2856 NEVER_INLINE_TARGET_ADDRESS); |
| (...skipping 2548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5406 | 5405 |
| 5407 DCHECK(interrupt_address == | 5406 DCHECK(interrupt_address == |
| 5408 isolate->builtins()->OsrAfterStackCheck()->entry()); | 5407 isolate->builtins()->OsrAfterStackCheck()->entry()); |
| 5409 return OSR_AFTER_STACK_CHECK; | 5408 return OSR_AFTER_STACK_CHECK; |
| 5410 } | 5409 } |
| 5411 | 5410 |
| 5412 | 5411 |
| 5413 } } // namespace v8::internal | 5412 } } // namespace v8::internal |
| 5414 | 5413 |
| 5415 #endif // V8_TARGET_ARCH_ARM | 5414 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |