Index: src/arm/codegen-arm.cc |
diff --git a/src/arm/codegen-arm.cc b/src/arm/codegen-arm.cc |
index 91c47476caef315ea3ee2b75809ed4fb57d88cab..d5f6aed95ded06defeef04aaf3502d31903c3cf5 100644 |
--- a/src/arm/codegen-arm.cc |
+++ b/src/arm/codegen-arm.cc |
@@ -5361,8 +5361,9 @@ void CodeGenerator::GenerateRandomHeapNumber( |
// by computing: |
// ( 1.(20 0s)(32 random bits) x 2^20 ) - (1.0 x 2^20)). |
if (Isolate::Current()->cpu_features()->IsSupported(VFP3)) { |
- __ PrepareCallCFunction(0, r1); |
- __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 0); |
+ __ PrepareCallCFunction(1, r0); |
+ __ mov(r0, Operand(ExternalReference::isolate_address())); |
+ __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 1); |
CpuFeatures::Scope scope(VFP3); |
// 0x41300000 is the top half of 1.0 x 2^20 as a double. |
@@ -5380,10 +5381,11 @@ void CodeGenerator::GenerateRandomHeapNumber( |
__ vstr(d7, r0, HeapNumber::kValueOffset); |
frame_->EmitPush(r4); |
} else { |
+ __ PrepareCallCFunction(2, r0); |
__ mov(r0, Operand(r4)); |
- __ PrepareCallCFunction(1, r1); |
+ __ mov(r1, Operand(ExternalReference::isolate_address())); |
__ CallCFunction( |
- ExternalReference::fill_heap_number_with_random_function(isolate()), 1); |
+ ExternalReference::fill_heap_number_with_random_function(isolate()), 2); |
frame_->EmitPush(r0); |
} |
} |