Index: src/x64/macro-assembler-x64.cc |
=================================================================== |
--- src/x64/macro-assembler-x64.cc (revision 5685) |
+++ src/x64/macro-assembler-x64.cc (working copy) |
@@ -1891,6 +1891,20 @@ |
Register scratch, |
Label* gc_required, |
AllocationFlags flags) { |
+ if (!FLAG_inline_new) { |
+ if (FLAG_debug_code) { |
+ // Trash the registers to simulate an allocation failure. |
+ movl(result, Immediate(0x7091)); |
+ if (result_end.is_valid()) { |
+ movl(result_end, Immediate(0x7191)); |
+ } |
+ if (scratch.is_valid()) { |
+ movl(scratch, Immediate(0x7291)); |
+ } |
+ } |
+ jmp(gc_required); |
+ return; |
+ } |
ASSERT(!result.is(result_end)); |
// Load address of new object into result. |
@@ -1935,6 +1949,19 @@ |
Register scratch, |
Label* gc_required, |
AllocationFlags flags) { |
+ if (!FLAG_inline_new) { |
+ if (FLAG_debug_code) { |
+ // Trash the registers to simulate an allocation failure. |
+ movl(result, Immediate(0x7091)); |
+ movl(result_end, Immediate(0x7191)); |
+ if (scratch.is_valid()) { |
+ movl(scratch, Immediate(0x7291)); |
+ } |
+ // Register element_count is not modified by the function. |
+ } |
+ jmp(gc_required); |
+ return; |
+ } |
ASSERT(!result.is(result_end)); |
// Load address of new object into result. |
@@ -1964,6 +1991,21 @@ |
Register scratch, |
Label* gc_required, |
AllocationFlags flags) { |
+ if (!FLAG_inline_new) { |
+ if (FLAG_debug_code) { |
+ // Trash the registers to simulate an allocation failure. |
+ movl(result, Immediate(0x7091)); |
+ movl(result_end, Immediate(0x7191)); |
+ if (scratch.is_valid()) { |
+ movl(scratch, Immediate(0x7291)); |
+ } |
+ // object_size is left unchanged by this function. |
+ } |
+ jmp(gc_required); |
+ return; |
+ } |
+ ASSERT(!result.is(result_end)); |
+ |
// Load address of new object into result. |
LoadAllocationTopHelper(result, result_end, scratch, flags); |