Chromium Code Reviews| Index: src/ia32/codegen-ia32.cc |
| diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc |
| index 7dc302bf6f70e37eed28f4394606733320f4f89c..7869c128b7b2241f43c3f4857aeca0f79649b6ef 100644 |
| --- a/src/ia32/codegen-ia32.cc |
| +++ b/src/ia32/codegen-ia32.cc |
| @@ -357,7 +357,6 @@ void ElementsTransitionGenerator::GenerateSmiOnlyToDouble( |
| // esi: source FixedArray |
| // edi: number of elements to convert/copy |
|
Michael Starzinger
2011/10/27 13:33:07
At this point %edi is actually the index of the la
|
| __ bind(&loop); |
| - __ sub(edi, Immediate(Smi::FromInt(1))); |
| __ mov(ebx, FieldOperand(esi, edi, times_2, FixedArray::kHeaderSize)); |
| // ebx: current element from source |
| // edi: index of current element |
| @@ -390,8 +389,8 @@ void ElementsTransitionGenerator::GenerateSmiOnlyToDouble( |
| } |
| __ bind(&entry); |
| - __ test(edi, edi); |
| - __ j(not_zero, &loop); |
| + __ sub(edi, Immediate(Smi::FromInt(1))); |
| + __ j(not_sign, &loop); |
| __ pop(ebx); |
| __ pop(eax); |
| @@ -454,7 +453,6 @@ void ElementsTransitionGenerator::GenerateDoubleToObject( |
| // edi: source FixedDoubleArray |
| // eax: destination FixedArray |
| __ bind(&loop); |
| - __ sub(ebx, Immediate(Smi::FromInt(1))); |
| // ebx: index of current element (smi-tagged) |
| uint32_t offset = FixedDoubleArray::kHeaderSize + sizeof(kHoleNanLower32); |
| __ cmp(FieldOperand(edi, ebx, times_4, offset), Immediate(kHoleNanUpper32)); |
| @@ -490,8 +488,8 @@ void ElementsTransitionGenerator::GenerateDoubleToObject( |
| masm->isolate()->factory()->the_hole_value()); |
| __ bind(&entry); |
| - __ test(ebx, ebx); |
| - __ j(not_zero, &loop); |
| + __ sub(ebx, Immediate(Smi::FromInt(1))); |
| + __ j(not_sign, &loop); |
| __ pop(ebx); |
| __ pop(edx); |