OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 V(LoadField) \ | 100 V(LoadField) \ |
101 V(KeyedLoadField) | 101 V(KeyedLoadField) |
102 | 102 |
103 // List of code stubs only used on ARM platforms. | 103 // List of code stubs only used on ARM platforms. |
104 #if V8_TARGET_ARCH_ARM | 104 #if V8_TARGET_ARCH_ARM |
105 #define CODE_STUB_LIST_ARM(V) \ | 105 #define CODE_STUB_LIST_ARM(V) \ |
106 V(GetProperty) \ | 106 V(GetProperty) \ |
107 V(SetProperty) \ | 107 V(SetProperty) \ |
108 V(InvokeBuiltin) \ | 108 V(InvokeBuiltin) \ |
109 V(DirectCEntry) | 109 V(DirectCEntry) |
| 110 #elif V8_TARGET_ARCH_A64 |
| 111 #define CODE_STUB_LIST_ARM(V) \ |
| 112 V(GetProperty) \ |
| 113 V(SetProperty) \ |
| 114 V(InvokeBuiltin) \ |
| 115 V(DirectCEntry) |
110 #else | 116 #else |
111 #define CODE_STUB_LIST_ARM(V) | 117 #define CODE_STUB_LIST_ARM(V) |
112 #endif | 118 #endif |
113 | 119 |
114 // List of code stubs only used on MIPS platforms. | 120 // List of code stubs only used on MIPS platforms. |
115 #if V8_TARGET_ARCH_MIPS | 121 #if V8_TARGET_ARCH_MIPS |
116 #define CODE_STUB_LIST_MIPS(V) \ | 122 #define CODE_STUB_LIST_MIPS(V) \ |
117 V(RegExpCEntry) \ | 123 V(RegExpCEntry) \ |
118 V(DirectCEntry) \ | 124 V(DirectCEntry) \ |
119 V(StoreRegistersState) \ | 125 V(StoreRegistersState) \ |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 DISALLOW_COPY_AND_ASSIGN(RuntimeCallHelper); | 441 DISALLOW_COPY_AND_ASSIGN(RuntimeCallHelper); |
436 }; | 442 }; |
437 | 443 |
438 | 444 |
439 } } // namespace v8::internal | 445 } } // namespace v8::internal |
440 | 446 |
441 #if V8_TARGET_ARCH_IA32 | 447 #if V8_TARGET_ARCH_IA32 |
442 #include "ia32/code-stubs-ia32.h" | 448 #include "ia32/code-stubs-ia32.h" |
443 #elif V8_TARGET_ARCH_X64 | 449 #elif V8_TARGET_ARCH_X64 |
444 #include "x64/code-stubs-x64.h" | 450 #include "x64/code-stubs-x64.h" |
| 451 #elif V8_TARGET_ARCH_A64 |
| 452 #include "a64/code-stubs-a64.h" |
445 #elif V8_TARGET_ARCH_ARM | 453 #elif V8_TARGET_ARCH_ARM |
446 #include "arm/code-stubs-arm.h" | 454 #include "arm/code-stubs-arm.h" |
447 #elif V8_TARGET_ARCH_MIPS | 455 #elif V8_TARGET_ARCH_MIPS |
448 #include "mips/code-stubs-mips.h" | 456 #include "mips/code-stubs-mips.h" |
449 #else | 457 #else |
450 #error Unsupported target architecture. | 458 #error Unsupported target architecture. |
451 #endif | 459 #endif |
452 | 460 |
453 namespace v8 { | 461 namespace v8 { |
454 namespace internal { | 462 namespace internal { |
(...skipping 1404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1859 }; | 1867 }; |
1860 | 1868 |
1861 | 1869 |
1862 class DoubleToIStub : public PlatformCodeStub { | 1870 class DoubleToIStub : public PlatformCodeStub { |
1863 public: | 1871 public: |
1864 DoubleToIStub(Register source, | 1872 DoubleToIStub(Register source, |
1865 Register destination, | 1873 Register destination, |
1866 int offset, | 1874 int offset, |
1867 bool is_truncating, | 1875 bool is_truncating, |
1868 bool skip_fastpath = false) : bit_field_(0) { | 1876 bool skip_fastpath = false) : bit_field_(0) { |
1869 bit_field_ = SourceRegisterBits::encode(source.code_) | | 1877 bit_field_ = SourceRegisterBits::encode(source.code()) | |
1870 DestinationRegisterBits::encode(destination.code_) | | 1878 DestinationRegisterBits::encode(destination.code()) | |
1871 OffsetBits::encode(offset) | | 1879 OffsetBits::encode(offset) | |
1872 IsTruncatingBits::encode(is_truncating) | | 1880 IsTruncatingBits::encode(is_truncating) | |
1873 SkipFastPathBits::encode(skip_fastpath) | | 1881 SkipFastPathBits::encode(skip_fastpath) | |
1874 SSEBits::encode(CpuFeatures::IsSafeForSnapshot(SSE2) ? | 1882 SSEBits::encode(CpuFeatures::IsSafeForSnapshot(SSE2) ? |
1875 CpuFeatures::IsSafeForSnapshot(SSE3) ? 2 : 1 : 0); | 1883 CpuFeatures::IsSafeForSnapshot(SSE3) ? 2 : 1 : 0); |
1876 } | 1884 } |
1877 | 1885 |
1878 Register source() { | 1886 Register source() { |
1879 Register result = { SourceRegisterBits::decode(bit_field_) }; | 1887 return Register::from_code(SourceRegisterBits::decode(bit_field_)); |
1880 return result; | |
1881 } | 1888 } |
1882 | 1889 |
1883 Register destination() { | 1890 Register destination() { |
1884 Register result = { DestinationRegisterBits::decode(bit_field_) }; | 1891 return Register::from_code(DestinationRegisterBits::decode(bit_field_)); |
1885 return result; | |
1886 } | 1892 } |
1887 | 1893 |
1888 bool is_truncating() { | 1894 bool is_truncating() { |
1889 return IsTruncatingBits::decode(bit_field_); | 1895 return IsTruncatingBits::decode(bit_field_); |
1890 } | 1896 } |
1891 | 1897 |
1892 bool skip_fastpath() { | 1898 bool skip_fastpath() { |
1893 return SkipFastPathBits::decode(bit_field_); | 1899 return SkipFastPathBits::decode(bit_field_); |
1894 } | 1900 } |
1895 | 1901 |
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2476 | 2482 |
2477 | 2483 |
2478 class CallDescriptors { | 2484 class CallDescriptors { |
2479 public: | 2485 public: |
2480 static void InitializeForIsolate(Isolate* isolate); | 2486 static void InitializeForIsolate(Isolate* isolate); |
2481 }; | 2487 }; |
2482 | 2488 |
2483 } } // namespace v8::internal | 2489 } } // namespace v8::internal |
2484 | 2490 |
2485 #endif // V8_CODE_STUBS_H_ | 2491 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |