Chromium Code Reviews| Index: src/x64/lithium-codegen-x64.cc |
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
| index e52dfff2ff6bc989703ec267ab8471809020bfbf..3fb61c4e640a393e2bab34beac368bb1ee844692 100644 |
| --- a/src/x64/lithium-codegen-x64.cc |
| +++ b/src/x64/lithium-codegen-x64.cc |
| @@ -5080,6 +5080,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())); |
| + __ movl(temp, Immediate((size / kPointerSize) - 1)); |
| + } else { |
| + temp = ToRegister(instr->size()); |
| + __ sar(temp, Immediate(kPointerSizeLog2)); |
| + __ decl(tem); |
| + } |
| + Label loop; |
| + __ bind(&loop); |
| + __ Move(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()); |
| + __ decl(temp); |
| + __ j(not_zero, &loop); |
| + } |
| } |