| Index: src/x64/full-codegen-x64.cc
|
| diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc
|
| index 90afd85717aed577a26ecdc83ee891f6270e82ce..d5aad91d297fe2dbc69497478469db0aadeeb16c 100644
|
| --- a/src/x64/full-codegen-x64.cc
|
| +++ b/src/x64/full-codegen-x64.cc
|
| @@ -2693,8 +2693,13 @@ void FullCodeGenerator::EmitRandomHeapNumber(ZoneList<Expression*>* args) {
|
|
|
| // Return a random uint32 number in rax.
|
| // The fresh HeapNumber is in rbx, which is callee-save on both x64 ABIs.
|
| - __ PrepareCallCFunction(0);
|
| - __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 0);
|
| + __ PrepareCallCFunction(1);
|
| +#ifdef _WIN64
|
| + __ LoadAddress(rcx, ExternalReference::isolate_address());
|
| +#else
|
| + __ LoadAddress(rdi, ExternalReference::isolate_address());
|
| +#endif
|
| + __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 1);
|
|
|
| // Convert 32 random bits in rax to 0.(32 random bits) in a double
|
| // by computing:
|
|
|