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_X64 | 5 #if V8_TARGET_ARCH_X64 |
6 | 6 |
7 #include "src/interface-descriptors.h" | 7 #include "src/interface-descriptors.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 } | 107 } |
108 | 108 |
109 | 109 |
110 void TypeofDescriptor::InitializePlatformSpecific( | 110 void TypeofDescriptor::InitializePlatformSpecific( |
111 CallInterfaceDescriptorData* data) { | 111 CallInterfaceDescriptorData* data) { |
112 Register registers[] = {rbx}; | 112 Register registers[] = {rbx}; |
113 data->InitializePlatformSpecific(arraysize(registers), registers); | 113 data->InitializePlatformSpecific(arraysize(registers), registers); |
114 } | 114 } |
115 | 115 |
116 | 116 |
117 void ToNumberDescriptor::InitializePlatformSpecific( | |
118 CallInterfaceDescriptorData* data) { | |
119 // ToNumberStub invokes a function, and therefore needs a context. | |
120 Register registers[] = {rax}; | |
121 data->InitializePlatformSpecific(arraysize(registers), registers); | |
122 } | |
123 | |
124 | |
125 // static | 117 // static |
126 const Register ToLengthDescriptor::ReceiverRegister() { return rax; } | 118 const Register TypeConversionDescriptor::ArgumentRegister() { return rax; } |
127 | |
128 | |
129 // static | |
130 const Register ToStringDescriptor::ReceiverRegister() { return rax; } | |
131 | |
132 | |
133 // static | |
134 const Register ToNameDescriptor::ReceiverRegister() { return rax; } | |
135 | |
136 | |
137 // static | |
138 const Register ToObjectDescriptor::ReceiverRegister() { return rax; } | |
139 | |
140 | |
141 void NumberToStringDescriptor::InitializePlatformSpecific( | |
142 CallInterfaceDescriptorData* data) { | |
143 Register registers[] = {rax}; | |
144 data->InitializePlatformSpecific(arraysize(registers), registers); | |
145 } | |
146 | |
147 | 119 |
148 void FastCloneRegExpDescriptor::InitializePlatformSpecific( | 120 void FastCloneRegExpDescriptor::InitializePlatformSpecific( |
149 CallInterfaceDescriptorData* data) { | 121 CallInterfaceDescriptorData* data) { |
150 Register registers[] = {rdi, rax, rcx, rdx}; | 122 Register registers[] = {rdi, rax, rcx, rdx}; |
151 data->InitializePlatformSpecific(arraysize(registers), registers); | 123 data->InitializePlatformSpecific(arraysize(registers), registers); |
152 } | 124 } |
153 | 125 |
154 | 126 |
155 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific( | 127 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific( |
156 CallInterfaceDescriptorData* data) { | 128 CallInterfaceDescriptorData* data) { |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 } | 280 } |
309 | 281 |
310 | 282 |
311 void CompareDescriptor::InitializePlatformSpecific( | 283 void CompareDescriptor::InitializePlatformSpecific( |
312 CallInterfaceDescriptorData* data) { | 284 CallInterfaceDescriptorData* data) { |
313 Register registers[] = {rdx, rax}; | 285 Register registers[] = {rdx, rax}; |
314 data->InitializePlatformSpecific(arraysize(registers), registers); | 286 data->InitializePlatformSpecific(arraysize(registers), registers); |
315 } | 287 } |
316 | 288 |
317 | 289 |
318 void ToBooleanDescriptor::InitializePlatformSpecific( | |
319 CallInterfaceDescriptorData* data) { | |
320 Register registers[] = {rax}; | |
321 data->InitializePlatformSpecific(arraysize(registers), registers); | |
322 } | |
323 | |
324 | |
325 void BinaryOpDescriptor::InitializePlatformSpecific( | 290 void BinaryOpDescriptor::InitializePlatformSpecific( |
326 CallInterfaceDescriptorData* data) { | 291 CallInterfaceDescriptorData* data) { |
327 Register registers[] = {rdx, rax}; | 292 Register registers[] = {rdx, rax}; |
328 data->InitializePlatformSpecific(arraysize(registers), registers); | 293 data->InitializePlatformSpecific(arraysize(registers), registers); |
329 } | 294 } |
330 | 295 |
331 | 296 |
332 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific( | 297 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific( |
333 CallInterfaceDescriptorData* data) { | 298 CallInterfaceDescriptorData* data) { |
334 Register registers[] = {rcx, rdx, rax}; | 299 Register registers[] = {rcx, rdx, rax}; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 r15, // address of first argument (argv) | 394 r15, // address of first argument (argv) |
430 rbx // the runtime function to call | 395 rbx // the runtime function to call |
431 }; | 396 }; |
432 data->InitializePlatformSpecific(arraysize(registers), registers); | 397 data->InitializePlatformSpecific(arraysize(registers), registers); |
433 } | 398 } |
434 | 399 |
435 } // namespace internal | 400 } // namespace internal |
436 } // namespace v8 | 401 } // namespace v8 |
437 | 402 |
438 #endif // V8_TARGET_ARCH_X64 | 403 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |