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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
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 4754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4765 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof symbol_string"); | 4765 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof symbol_string"); |
4766 __ JumpIfSmi(x0, if_false); | 4766 __ JumpIfSmi(x0, if_false); |
4767 __ CompareObjectType(x0, x0, x1, SYMBOL_TYPE); | 4767 __ CompareObjectType(x0, x0, x1, SYMBOL_TYPE); |
4768 Split(eq, if_true, if_false, fall_through); | 4768 Split(eq, if_true, if_false, fall_through); |
4769 } else if (String::Equals(check, factory->float32x4_string())) { | 4769 } else if (String::Equals(check, factory->float32x4_string())) { |
4770 ASM_LOCATION( | 4770 ASM_LOCATION( |
4771 "FullCodeGenerator::EmitLiteralCompareTypeof float32x4_string"); | 4771 "FullCodeGenerator::EmitLiteralCompareTypeof float32x4_string"); |
4772 __ JumpIfSmi(x0, if_false); | 4772 __ JumpIfSmi(x0, if_false); |
4773 __ CompareObjectType(x0, x0, x1, FLOAT32X4_TYPE); | 4773 __ CompareObjectType(x0, x0, x1, FLOAT32X4_TYPE); |
4774 Split(eq, if_true, if_false, fall_through); | 4774 Split(eq, if_true, if_false, fall_through); |
| 4775 } else if (String::Equals(check, factory->int32x4_string())) { |
| 4776 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof int32x4_string"); |
| 4777 __ JumpIfSmi(x0, if_false); |
| 4778 __ CompareObjectType(x0, x0, x1, INT32X4_TYPE); |
| 4779 Split(eq, if_true, if_false, fall_through); |
| 4780 } else if (String::Equals(check, factory->bool32x4_string())) { |
| 4781 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof bool32x4_string"); |
| 4782 __ JumpIfSmi(x0, if_false); |
| 4783 __ CompareObjectType(x0, x0, x1, BOOL32X4_TYPE); |
| 4784 Split(eq, if_true, if_false, fall_through); |
| 4785 } else if (String::Equals(check, factory->int16x8_string())) { |
| 4786 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof int16x8_string"); |
| 4787 __ JumpIfSmi(x0, if_false); |
| 4788 __ CompareObjectType(x0, x0, x1, INT16X8_TYPE); |
| 4789 Split(eq, if_true, if_false, fall_through); |
| 4790 } else if (String::Equals(check, factory->bool16x8_string())) { |
| 4791 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof bool16x8_string"); |
| 4792 __ JumpIfSmi(x0, if_false); |
| 4793 __ CompareObjectType(x0, x0, x1, BOOL16X8_TYPE); |
| 4794 Split(eq, if_true, if_false, fall_through); |
| 4795 } else if (String::Equals(check, factory->int8x16_string())) { |
| 4796 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof int8x16_string"); |
| 4797 __ JumpIfSmi(x0, if_false); |
| 4798 __ CompareObjectType(x0, x0, x1, INT8X16_TYPE); |
| 4799 Split(eq, if_true, if_false, fall_through); |
| 4800 } else if (String::Equals(check, factory->bool8x16_string())) { |
| 4801 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof bool8x16_string"); |
| 4802 __ JumpIfSmi(x0, if_false); |
| 4803 __ CompareObjectType(x0, x0, x1, BOOL8X16_TYPE); |
| 4804 Split(eq, if_true, if_false, fall_through); |
4775 } else if (String::Equals(check, factory->boolean_string())) { | 4805 } else if (String::Equals(check, factory->boolean_string())) { |
4776 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof boolean_string"); | 4806 ASM_LOCATION("FullCodeGenerator::EmitLiteralCompareTypeof boolean_string"); |
4777 __ JumpIfRoot(x0, Heap::kTrueValueRootIndex, if_true); | 4807 __ JumpIfRoot(x0, Heap::kTrueValueRootIndex, if_true); |
4778 __ CompareRoot(x0, Heap::kFalseValueRootIndex); | 4808 __ CompareRoot(x0, Heap::kFalseValueRootIndex); |
4779 Split(eq, if_true, if_false, fall_through); | 4809 Split(eq, if_true, if_false, fall_through); |
4780 } else if (String::Equals(check, factory->undefined_string())) { | 4810 } else if (String::Equals(check, factory->undefined_string())) { |
4781 ASM_LOCATION( | 4811 ASM_LOCATION( |
4782 "FullCodeGenerator::EmitLiteralCompareTypeof undefined_string"); | 4812 "FullCodeGenerator::EmitLiteralCompareTypeof undefined_string"); |
4783 __ JumpIfRoot(x0, Heap::kUndefinedValueRootIndex, if_true); | 4813 __ JumpIfRoot(x0, Heap::kUndefinedValueRootIndex, if_true); |
4784 __ JumpIfSmi(x0, if_false); | 4814 __ JumpIfSmi(x0, if_false); |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5453 } | 5483 } |
5454 | 5484 |
5455 return INTERRUPT; | 5485 return INTERRUPT; |
5456 } | 5486 } |
5457 | 5487 |
5458 | 5488 |
5459 } // namespace internal | 5489 } // namespace internal |
5460 } // namespace v8 | 5490 } // namespace v8 |
5461 | 5491 |
5462 #endif // V8_TARGET_ARCH_ARM64 | 5492 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |