Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 088ba583eaef6d03fbce771e8f4630faf11ddbbb..065ccb5408aa85967fdae39e116000044878c5a9 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2803,8 +2803,9 @@ void FullCodeGenerator::EmitRandomHeapNumber(ZoneList<Expression*>* args) { |
// by computing: |
// ( 1.(20 0s)(32 random bits) x 2^20 ) - (1.0 x 2^20)). |
if (isolate()->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. |
@@ -2822,10 +2823,11 @@ void FullCodeGenerator::EmitRandomHeapNumber(ZoneList<Expression*>* args) { |
__ vstr(d7, r0, HeapNumber::kValueOffset); |
__ mov(r0, 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); |
} |
context()->Plug(r0); |