Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index d45a9cdaeea3ab3725152056bb3a87ecde43e77d..a543916d06f11397f8ef09a3d7b765c5a9a9dedd 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -2781,9 +2781,10 @@ void FullCodeGenerator::EmitRandomHeapNumber(ZoneList<Expression*>* args) { |
__ bind(&heapnumber_allocated); |
__ PrepareCallCFunction(1, ebx); |
- __ mov(Operand(esp, 0), Immediate(ExternalReference::isolate_address())); |
- __ CallCFunction(ExternalReference::random_uint32_function(isolate()), |
- 1); |
+ __ mov(eax, ContextOperand(context_register(), Context::GLOBAL_INDEX)); |
+ __ mov(eax, FieldOperand(eax, GlobalObject::kGlobalContextOffset)); |
+ __ mov(Operand(esp, 0), eax); |
+ __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 1); |
// Convert 32 random bits in eax to 0.(32 random bits) in a double |
// by computing: |