OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/ast/compile-time-value.h" | 7 #include "src/ast/compile-time-value.h" |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/builtins/builtins-constructor.h" | 9 #include "src/builtins/builtins-constructor.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 2616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2627 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL); | 2627 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL); |
2628 __ CompareRoot(x0, Heap::kTrueValueRootIndex); | 2628 __ CompareRoot(x0, Heap::kTrueValueRootIndex); |
2629 Split(eq, if_true, if_false, fall_through); | 2629 Split(eq, if_true, if_false, fall_through); |
2630 break; | 2630 break; |
2631 | 2631 |
2632 case Token::INSTANCEOF: { | 2632 case Token::INSTANCEOF: { |
2633 VisitForAccumulatorValue(expr->right()); | 2633 VisitForAccumulatorValue(expr->right()); |
2634 SetExpressionPosition(expr); | 2634 SetExpressionPosition(expr); |
2635 PopOperand(x1); | 2635 PopOperand(x1); |
2636 __ Call(isolate()->builtins()->InstanceOf(), RelocInfo::CODE_TARGET); | 2636 __ Call(isolate()->builtins()->InstanceOf(), RelocInfo::CODE_TARGET); |
| 2637 RestoreContext(); |
2637 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL); | 2638 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL); |
2638 __ CompareRoot(x0, Heap::kTrueValueRootIndex); | 2639 __ CompareRoot(x0, Heap::kTrueValueRootIndex); |
2639 Split(eq, if_true, if_false, fall_through); | 2640 Split(eq, if_true, if_false, fall_through); |
2640 break; | 2641 break; |
2641 } | 2642 } |
2642 | 2643 |
2643 default: { | 2644 default: { |
2644 VisitForAccumulatorValue(expr->right()); | 2645 VisitForAccumulatorValue(expr->right()); |
2645 SetExpressionPosition(expr); | 2646 SetExpressionPosition(expr); |
2646 Condition cond = CompareIC::ComputeCondition(op); | 2647 Condition cond = CompareIC::ComputeCondition(op); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2910 } | 2911 } |
2911 | 2912 |
2912 return INTERRUPT; | 2913 return INTERRUPT; |
2913 } | 2914 } |
2914 | 2915 |
2915 | 2916 |
2916 } // namespace internal | 2917 } // namespace internal |
2917 } // namespace v8 | 2918 } // namespace v8 |
2918 | 2919 |
2919 #endif // V8_TARGET_ARCH_ARM64 | 2920 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |