| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index e2eee19c841bf223e2b1f45898cfcbd6e2a2ddce..4c83f8502cd6a762081e7f2d26bf827db31054c7 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -1715,10 +1715,14 @@ LInstruction* LChunkBuilder::DoPower(HPower* instr) {
|
|
|
| LInstruction* LChunkBuilder::DoRandom(HRandom* instr) {
|
| ASSERT(instr->representation().IsDouble());
|
| - ASSERT(instr->global_object()->representation().IsSmiOrTagged());
|
| - LOperand* global_object = UseFixed(instr->global_object(), eax);
|
| - LRandom* result = new(zone()) LRandom(global_object);
|
| - return MarkAsCall(DefineFixedDouble(result, xmm1), instr);
|
| + ASSERT(instr->global_object()->representation().IsTagged());
|
| + LOperand* global_object = UseTempRegister(instr->global_object());
|
| + LOperand* scratch = TempRegister();
|
| + LOperand* scratch2 = TempRegister();
|
| + LOperand* scratch3 = TempRegister();
|
| + LRandom* result = new(zone()) LRandom(
|
| + global_object, scratch, scratch2, scratch3);
|
| + return DefineFixedDouble(result, xmm1);
|
| }
|
|
|
|
|
|
|