| 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_X64 | 7 #if V8_TARGET_ARCH_X64 | 
| 8 | 8 | 
| 9 #include "src/interface-descriptors.h" | 9 #include "src/interface-descriptors.h" | 
| 10 | 10 | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 59   return MathPowTaggedDescriptor::exponent(); | 59   return MathPowTaggedDescriptor::exponent(); | 
| 60 } | 60 } | 
| 61 | 61 | 
| 62 | 62 | 
| 63 const Register GrowArrayElementsDescriptor::ObjectRegister() { return rax; } | 63 const Register GrowArrayElementsDescriptor::ObjectRegister() { return rax; } | 
| 64 const Register GrowArrayElementsDescriptor::KeyRegister() { return rbx; } | 64 const Register GrowArrayElementsDescriptor::KeyRegister() { return rbx; } | 
| 65 | 65 | 
| 66 | 66 | 
| 67 void FastNewClosureDescriptor::InitializePlatformSpecific( | 67 void FastNewClosureDescriptor::InitializePlatformSpecific( | 
| 68     CallInterfaceDescriptorData* data) { | 68     CallInterfaceDescriptorData* data) { | 
| 69   Register registers[] = {rsi, rbx}; | 69   Register registers[] = {rbx}; | 
| 70   data->InitializePlatformSpecific(arraysize(registers), registers); | 70   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 71 } | 71 } | 
| 72 | 72 | 
| 73 | 73 | 
| 74 void FastNewContextDescriptor::InitializePlatformSpecific( | 74 void FastNewContextDescriptor::InitializePlatformSpecific( | 
| 75     CallInterfaceDescriptorData* data) { | 75     CallInterfaceDescriptorData* data) { | 
| 76   Register registers[] = {rsi, rdi}; | 76   Register registers[] = {rdi}; | 
| 77   data->InitializePlatformSpecific(arraysize(registers), registers); | 77   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 78 } | 78 } | 
| 79 | 79 | 
| 80 | 80 | 
| 81 void TypeofDescriptor::InitializePlatformSpecific( | 81 void TypeofDescriptor::InitializePlatformSpecific( | 
| 82     CallInterfaceDescriptorData* data) { | 82     CallInterfaceDescriptorData* data) { | 
| 83   Register registers[] = {rsi, rbx}; | 83   Register registers[] = {rbx}; | 
| 84   data->InitializePlatformSpecific(arraysize(registers), registers); | 84   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 85 } | 85 } | 
| 86 | 86 | 
| 87 | 87 | 
| 88 void ToNumberDescriptor::InitializePlatformSpecific( | 88 void ToNumberDescriptor::InitializePlatformSpecific( | 
| 89     CallInterfaceDescriptorData* data) { | 89     CallInterfaceDescriptorData* data) { | 
| 90   // ToNumberStub invokes a function, and therefore needs a context. | 90   // ToNumberStub invokes a function, and therefore needs a context. | 
| 91   Register registers[] = {rsi, rax}; | 91   Register registers[] = {rax}; | 
| 92   data->InitializePlatformSpecific(arraysize(registers), registers); | 92   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 93 } | 93 } | 
| 94 | 94 | 
| 95 | 95 | 
| 96 void NumberToStringDescriptor::InitializePlatformSpecific( | 96 void NumberToStringDescriptor::InitializePlatformSpecific( | 
| 97     CallInterfaceDescriptorData* data) { | 97     CallInterfaceDescriptorData* data) { | 
| 98   Register registers[] = {rsi, rax}; | 98   Register registers[] = {rax}; | 
| 99   data->InitializePlatformSpecific(arraysize(registers), registers); | 99   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 100 } | 100 } | 
| 101 | 101 | 
| 102 | 102 | 
| 103 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific( | 103 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific( | 
| 104     CallInterfaceDescriptorData* data) { | 104     CallInterfaceDescriptorData* data) { | 
| 105   Register registers[] = {rsi, rax, rbx, rcx}; | 105   Register registers[] = {rax, rbx, rcx}; | 
| 106   data->InitializePlatformSpecific(arraysize(registers), registers); | 106   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 107 } | 107 } | 
| 108 | 108 | 
| 109 | 109 | 
| 110 void FastCloneShallowObjectDescriptor::InitializePlatformSpecific( | 110 void FastCloneShallowObjectDescriptor::InitializePlatformSpecific( | 
| 111     CallInterfaceDescriptorData* data) { | 111     CallInterfaceDescriptorData* data) { | 
| 112   Register registers[] = {rsi, rax, rbx, rcx, rdx}; | 112   Register registers[] = {rax, rbx, rcx, rdx}; | 
| 113   data->InitializePlatformSpecific(arraysize(registers), registers); | 113   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 114 } | 114 } | 
| 115 | 115 | 
| 116 | 116 | 
| 117 void CreateAllocationSiteDescriptor::InitializePlatformSpecific( | 117 void CreateAllocationSiteDescriptor::InitializePlatformSpecific( | 
| 118     CallInterfaceDescriptorData* data) { | 118     CallInterfaceDescriptorData* data) { | 
| 119   Register registers[] = {rsi, rbx, rdx}; | 119   Register registers[] = {rbx, rdx}; | 
| 120   data->InitializePlatformSpecific(arraysize(registers), registers); | 120   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 121 } | 121 } | 
| 122 | 122 | 
| 123 | 123 | 
| 124 void CreateWeakCellDescriptor::InitializePlatformSpecific( | 124 void CreateWeakCellDescriptor::InitializePlatformSpecific( | 
| 125     CallInterfaceDescriptorData* data) { | 125     CallInterfaceDescriptorData* data) { | 
| 126   Register registers[] = {rsi, rbx, rdx, rdi}; | 126   Register registers[] = {rbx, rdx, rdi}; | 
| 127   data->InitializePlatformSpecific(arraysize(registers), registers); | 127   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 128 } | 128 } | 
| 129 | 129 | 
| 130 | 130 | 
| 131 void StoreArrayLiteralElementDescriptor::InitializePlatformSpecific( | 131 void StoreArrayLiteralElementDescriptor::InitializePlatformSpecific( | 
| 132     CallInterfaceDescriptorData* data) { | 132     CallInterfaceDescriptorData* data) { | 
| 133   Register registers[] = {rsi, rcx, rax}; | 133   Register registers[] = {rcx, rax}; | 
| 134   data->InitializePlatformSpecific(arraysize(registers), registers); | 134   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 135 } | 135 } | 
| 136 | 136 | 
| 137 | 137 | 
| 138 void CallFunctionDescriptor::InitializePlatformSpecific( | 138 void CallFunctionDescriptor::InitializePlatformSpecific( | 
| 139     CallInterfaceDescriptorData* data) { | 139     CallInterfaceDescriptorData* data) { | 
| 140   Register registers[] = {rsi, rdi}; | 140   Register registers[] = {rdi}; | 
| 141   data->InitializePlatformSpecific(arraysize(registers), registers); | 141   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 142 } | 142 } | 
| 143 | 143 | 
| 144 | 144 | 
| 145 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific( | 145 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific( | 
| 146     CallInterfaceDescriptorData* data) { | 146     CallInterfaceDescriptorData* data) { | 
| 147   Register registers[] = {rsi, rdi, rdx}; | 147   Register registers[] = {rdi, rdx}; | 
| 148   data->InitializePlatformSpecific(arraysize(registers), registers); | 148   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 149 } | 149 } | 
| 150 | 150 | 
| 151 | 151 | 
| 152 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific( | 152 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific( | 
| 153     CallInterfaceDescriptorData* data) { | 153     CallInterfaceDescriptorData* data) { | 
| 154   Register registers[] = {rsi, rdi, rdx, rbx}; | 154   Register registers[] = {rdi, rdx, rbx}; | 
| 155   data->InitializePlatformSpecific(arraysize(registers), registers); | 155   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 156 } | 156 } | 
| 157 | 157 | 
| 158 | 158 | 
| 159 void CallConstructDescriptor::InitializePlatformSpecific( | 159 void CallConstructDescriptor::InitializePlatformSpecific( | 
| 160     CallInterfaceDescriptorData* data) { | 160     CallInterfaceDescriptorData* data) { | 
| 161   // rax : number of arguments | 161   // rax : number of arguments | 
| 162   // rbx : feedback vector | 162   // rbx : feedback vector | 
| 163   // rdx : (only if rbx is not the megamorphic symbol) slot in feedback | 163   // rdx : (only if rbx is not the megamorphic symbol) slot in feedback | 
| 164   //       vector (Smi) | 164   //       vector (Smi) | 
| 165   // rdi : constructor function | 165   // rdi : constructor function | 
| 166   // TODO(turbofan): So far we don't gather type feedback and hence skip the | 166   // TODO(turbofan): So far we don't gather type feedback and hence skip the | 
| 167   // slot parameter, but ArrayConstructStub needs the vector to be undefined. | 167   // slot parameter, but ArrayConstructStub needs the vector to be undefined. | 
| 168   Register registers[] = {rsi, rax, rdi, rbx}; | 168   Register registers[] = {rax, rdi, rbx}; | 
| 169   data->InitializePlatformSpecific(arraysize(registers), registers); | 169   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 170 } | 170 } | 
| 171 | 171 | 
| 172 | 172 | 
| 173 void RegExpConstructResultDescriptor::InitializePlatformSpecific( | 173 void RegExpConstructResultDescriptor::InitializePlatformSpecific( | 
| 174     CallInterfaceDescriptorData* data) { | 174     CallInterfaceDescriptorData* data) { | 
| 175   Register registers[] = {rsi, rcx, rbx, rax}; | 175   Register registers[] = {rcx, rbx, rax}; | 
| 176   data->InitializePlatformSpecific(arraysize(registers), registers); | 176   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 177 } | 177 } | 
| 178 | 178 | 
| 179 | 179 | 
| 180 void TransitionElementsKindDescriptor::InitializePlatformSpecific( | 180 void TransitionElementsKindDescriptor::InitializePlatformSpecific( | 
| 181     CallInterfaceDescriptorData* data) { | 181     CallInterfaceDescriptorData* data) { | 
| 182   Register registers[] = {rsi, rax, rbx}; | 182   Register registers[] = {rax, rbx}; | 
| 183   data->InitializePlatformSpecific(arraysize(registers), registers); | 183   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 184 } | 184 } | 
| 185 | 185 | 
| 186 | 186 | 
| 187 void AllocateHeapNumberDescriptor::InitializePlatformSpecific( | 187 void AllocateHeapNumberDescriptor::InitializePlatformSpecific( | 
| 188     CallInterfaceDescriptorData* data) { | 188     CallInterfaceDescriptorData* data) { | 
| 189   // register state | 189   data->InitializePlatformSpecific(0, nullptr, nullptr); | 
| 190   // rsi -- context |  | 
| 191   Register registers[] = {rsi}; |  | 
| 192   data->InitializePlatformSpecific(arraysize(registers), registers, nullptr); |  | 
| 193 } | 190 } | 
| 194 | 191 | 
| 195 | 192 | 
| 196 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific( | 193 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific( | 
| 197     CallInterfaceDescriptorData* data) { | 194     CallInterfaceDescriptorData* data) { | 
| 198   // register state | 195   // register state | 
| 199   // rax -- number of arguments | 196   // rax -- number of arguments | 
| 200   // rdi -- function | 197   // rdi -- function | 
| 201   // rbx -- allocation site with elements kind | 198   // rbx -- allocation site with elements kind | 
| 202   Register registers[] = {rsi, rdi, rbx}; | 199   Register registers[] = {rdi, rbx}; | 
| 203   data->InitializePlatformSpecific(arraysize(registers), registers); | 200   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 204 } | 201 } | 
| 205 | 202 | 
| 206 | 203 | 
| 207 void ArrayConstructorDescriptor::InitializePlatformSpecific( | 204 void ArrayConstructorDescriptor::InitializePlatformSpecific( | 
| 208     CallInterfaceDescriptorData* data) { | 205     CallInterfaceDescriptorData* data) { | 
| 209   // stack param count needs (constructor pointer, and single argument) | 206   // stack param count needs (constructor pointer, and single argument) | 
| 210   Register registers[] = {rsi, rdi, rbx, rax}; | 207   Register registers[] = {rdi, rbx, rax}; | 
| 211   data->InitializePlatformSpecific(arraysize(registers), registers); | 208   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 212 } | 209 } | 
| 213 | 210 | 
| 214 | 211 | 
| 215 void InternalArrayConstructorConstantArgCountDescriptor:: | 212 void InternalArrayConstructorConstantArgCountDescriptor:: | 
| 216     InitializePlatformSpecific(CallInterfaceDescriptorData* data) { | 213     InitializePlatformSpecific(CallInterfaceDescriptorData* data) { | 
| 217   // register state | 214   // register state | 
| 218   // rsi -- context |  | 
| 219   // rax -- number of arguments | 215   // rax -- number of arguments | 
| 220   // rdi -- constructor function | 216   // rdi -- constructor function | 
| 221   Register registers[] = {rsi, rdi}; | 217   Register registers[] = {rdi}; | 
| 222   data->InitializePlatformSpecific(arraysize(registers), registers); | 218   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 223 } | 219 } | 
| 224 | 220 | 
| 225 | 221 | 
| 226 void InternalArrayConstructorDescriptor::InitializePlatformSpecific( | 222 void InternalArrayConstructorDescriptor::InitializePlatformSpecific( | 
| 227     CallInterfaceDescriptorData* data) { | 223     CallInterfaceDescriptorData* data) { | 
| 228   // stack param count needs (constructor pointer, and single argument) | 224   // stack param count needs (constructor pointer, and single argument) | 
| 229   Register registers[] = {rsi, rdi, rax}; | 225   Register registers[] = {rdi, rax}; | 
| 230   data->InitializePlatformSpecific(arraysize(registers), registers); | 226   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 231 } | 227 } | 
| 232 | 228 | 
| 233 | 229 | 
| 234 void CompareDescriptor::InitializePlatformSpecific( | 230 void CompareDescriptor::InitializePlatformSpecific( | 
| 235     CallInterfaceDescriptorData* data) { | 231     CallInterfaceDescriptorData* data) { | 
| 236   Register registers[] = {rsi, rdx, rax}; | 232   Register registers[] = {rdx, rax}; | 
| 237   data->InitializePlatformSpecific(arraysize(registers), registers); | 233   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 238 } | 234 } | 
| 239 | 235 | 
| 240 | 236 | 
| 241 void CompareNilDescriptor::InitializePlatformSpecific( | 237 void CompareNilDescriptor::InitializePlatformSpecific( | 
| 242     CallInterfaceDescriptorData* data) { | 238     CallInterfaceDescriptorData* data) { | 
| 243   Register registers[] = {rsi, rax}; | 239   Register registers[] = {rax}; | 
| 244   data->InitializePlatformSpecific(arraysize(registers), registers); | 240   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 245 } | 241 } | 
| 246 | 242 | 
| 247 | 243 | 
| 248 void ToBooleanDescriptor::InitializePlatformSpecific( | 244 void ToBooleanDescriptor::InitializePlatformSpecific( | 
| 249     CallInterfaceDescriptorData* data) { | 245     CallInterfaceDescriptorData* data) { | 
| 250   Register registers[] = {rsi, rax}; | 246   Register registers[] = {rax}; | 
| 251   data->InitializePlatformSpecific(arraysize(registers), registers); | 247   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 252 } | 248 } | 
| 253 | 249 | 
| 254 | 250 | 
| 255 void BinaryOpDescriptor::InitializePlatformSpecific( | 251 void BinaryOpDescriptor::InitializePlatformSpecific( | 
| 256     CallInterfaceDescriptorData* data) { | 252     CallInterfaceDescriptorData* data) { | 
| 257   Register registers[] = {rsi, rdx, rax}; | 253   Register registers[] = {rdx, rax}; | 
| 258   data->InitializePlatformSpecific(arraysize(registers), registers); | 254   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 259 } | 255 } | 
| 260 | 256 | 
| 261 | 257 | 
| 262 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific( | 258 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific( | 
| 263     CallInterfaceDescriptorData* data) { | 259     CallInterfaceDescriptorData* data) { | 
| 264   Register registers[] = {rsi, rcx, rdx, rax}; | 260   Register registers[] = {rcx, rdx, rax}; | 
| 265   data->InitializePlatformSpecific(arraysize(registers), registers); | 261   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 266 } | 262 } | 
| 267 | 263 | 
| 268 | 264 | 
| 269 void StringAddDescriptor::InitializePlatformSpecific( | 265 void StringAddDescriptor::InitializePlatformSpecific( | 
| 270     CallInterfaceDescriptorData* data) { | 266     CallInterfaceDescriptorData* data) { | 
| 271   Register registers[] = {rsi, rdx, rax}; | 267   Register registers[] = {rdx, rax}; | 
| 272   data->InitializePlatformSpecific(arraysize(registers), registers); | 268   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 273 } | 269 } | 
| 274 | 270 | 
| 275 | 271 | 
| 276 void KeyedDescriptor::InitializePlatformSpecific( | 272 void KeyedDescriptor::InitializePlatformSpecific( | 
| 277     CallInterfaceDescriptorData* data) { | 273     CallInterfaceDescriptorData* data) { | 
| 278   Register registers[] = { | 274   Register registers[] = { | 
| 279       rsi,  // context |  | 
| 280       rcx,  // key | 275       rcx,  // key | 
| 281   }; | 276   }; | 
| 282   data->InitializePlatformSpecific(arraysize(registers), registers); | 277   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 283 } | 278 } | 
| 284 | 279 | 
| 285 | 280 | 
| 286 void NamedDescriptor::InitializePlatformSpecific( | 281 void NamedDescriptor::InitializePlatformSpecific( | 
| 287     CallInterfaceDescriptorData* data) { | 282     CallInterfaceDescriptorData* data) { | 
| 288   Register registers[] = { | 283   Register registers[] = { | 
| 289       rsi,  // context |  | 
| 290       rcx,  // name | 284       rcx,  // name | 
| 291   }; | 285   }; | 
| 292   data->InitializePlatformSpecific(arraysize(registers), registers); | 286   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 293 } | 287 } | 
| 294 | 288 | 
| 295 | 289 | 
| 296 void CallHandlerDescriptor::InitializePlatformSpecific( | 290 void CallHandlerDescriptor::InitializePlatformSpecific( | 
| 297     CallInterfaceDescriptorData* data) { | 291     CallInterfaceDescriptorData* data) { | 
| 298   Register registers[] = { | 292   Register registers[] = { | 
| 299       rsi,  // context |  | 
| 300       rdx,  // receiver | 293       rdx,  // receiver | 
| 301   }; | 294   }; | 
| 302   data->InitializePlatformSpecific(arraysize(registers), registers); | 295   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 303 } | 296 } | 
| 304 | 297 | 
| 305 | 298 | 
| 306 void ArgumentAdaptorDescriptor::InitializePlatformSpecific( | 299 void ArgumentAdaptorDescriptor::InitializePlatformSpecific( | 
| 307     CallInterfaceDescriptorData* data) { | 300     CallInterfaceDescriptorData* data) { | 
| 308   Register registers[] = { | 301   Register registers[] = { | 
| 309       rsi,  // context |  | 
| 310       rdi,  // JSFunction | 302       rdi,  // JSFunction | 
| 311       rax,  // actual number of arguments | 303       rax,  // actual number of arguments | 
| 312       rbx,  // expected number of arguments | 304       rbx,  // expected number of arguments | 
| 313   }; | 305   }; | 
| 314   data->InitializePlatformSpecific(arraysize(registers), registers); | 306   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 315 } | 307 } | 
| 316 | 308 | 
| 317 | 309 | 
| 318 void ApiFunctionDescriptor::InitializePlatformSpecific( | 310 void ApiFunctionDescriptor::InitializePlatformSpecific( | 
| 319     CallInterfaceDescriptorData* data) { | 311     CallInterfaceDescriptorData* data) { | 
| 320   Register registers[] = { | 312   Register registers[] = { | 
| 321       rsi,  // context |  | 
| 322       rdi,  // callee | 313       rdi,  // callee | 
| 323       rbx,  // call_data | 314       rbx,  // call_data | 
| 324       rcx,  // holder | 315       rcx,  // holder | 
| 325       rdx,  // api_function_address | 316       rdx,  // api_function_address | 
| 326       rax,  // actual number of arguments | 317       rax,  // actual number of arguments | 
| 327   }; | 318   }; | 
| 328   data->InitializePlatformSpecific(arraysize(registers), registers); | 319   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 329 } | 320 } | 
| 330 | 321 | 
| 331 | 322 | 
| 332 void ApiAccessorDescriptor::InitializePlatformSpecific( | 323 void ApiAccessorDescriptor::InitializePlatformSpecific( | 
| 333     CallInterfaceDescriptorData* data) { | 324     CallInterfaceDescriptorData* data) { | 
| 334   Register registers[] = { | 325   Register registers[] = { | 
| 335       rsi,  // context |  | 
| 336       rdi,  // callee | 326       rdi,  // callee | 
| 337       rbx,  // call_data | 327       rbx,  // call_data | 
| 338       rcx,  // holder | 328       rcx,  // holder | 
| 339       rdx,  // api_function_address | 329       rdx,  // api_function_address | 
| 340   }; | 330   }; | 
| 341   data->InitializePlatformSpecific(arraysize(registers), registers); | 331   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 342 } | 332 } | 
| 343 | 333 | 
| 344 | 334 | 
| 345 void MathRoundVariantDescriptor::InitializePlatformSpecific( | 335 void MathRoundVariantDescriptor::InitializePlatformSpecific( | 
| 346     CallInterfaceDescriptorData* data) { | 336     CallInterfaceDescriptorData* data) { | 
| 347   Register registers[] = { | 337   Register registers[] = { | 
| 348       rsi,  // context |  | 
| 349       rdi,  // math rounding function | 338       rdi,  // math rounding function | 
| 350       rdx,  // vector slot id | 339       rdx,  // vector slot id | 
| 351   }; | 340   }; | 
| 352   data->InitializePlatformSpecific(arraysize(registers), registers); | 341   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 353 } | 342 } | 
| 354 }  // namespace internal | 343 }  // namespace internal | 
| 355 }  // namespace v8 | 344 }  // namespace v8 | 
| 356 | 345 | 
| 357 #endif  // V8_TARGET_ARCH_X64 | 346 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW | 
|---|