Chromium Code Reviews| Index: src/ia32/lithium-codegen-ia32.cc |
| diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
| index 54fb1877da23260b578664b08fd2e1e0ee2f7b26..359784eba595fa3365940d6fb63f31a4069e8f5e 100644 |
| --- a/src/ia32/lithium-codegen-ia32.cc |
| +++ b/src/ia32/lithium-codegen-ia32.cc |
| @@ -6051,6 +6051,23 @@ void LCodeGen::DoAllocate(LAllocate* instr) { |
| } |
| __ bind(deferred->exit()); |
| + |
| + if (instr->hydrogen()->MustPrefillWithFiller()) { |
| + if (instr->size()->IsConstantOperand()) { |
| + int32_t size = ToInteger32(LConstantOperand::cast(instr->size())); |
| + __ mov(temp, (size / kPointerSize) - 1); |
| + } else { |
| + temp = ToRegister(instr->size()); |
| + __ shr(temp, kPointerSizeLog2); |
| + __ dec(temp); |
| + } |
| + Label loop; |
| + __ bind(&loop); |
| + __ mov(MemOperand(result, temp, times_pointer_size, -1), |
|
Michael Starzinger
2013/07/22 09:04:31
Better use FieldOperand here instead of the MemOpe
Hannes Payer (out of office)
2013/07/22 11:05:41
Done.
|
| + isolate()->factory()->one_pointer_filler_map()); |
| + __ dec(temp); |
| + __ j(not_zero, &loop); |
| + } |
| } |