Index: src/ia32/macro-assembler-ia32.cc |
=================================================================== |
--- src/ia32/macro-assembler-ia32.cc (revision 5685) |
+++ src/ia32/macro-assembler-ia32.cc (working copy) |
@@ -584,6 +584,20 @@ |
Register scratch, |
Label* gc_required, |
AllocationFlags flags) { |
+ if (!FLAG_inline_new) { |
+ if (FLAG_debug_code) { |
+ // Trash the registers to simulate an allocation failure. |
+ mov(result, Immediate(0x7091)); |
+ if (result_end.is_valid()) { |
+ mov(result_end, Immediate(0x7191)); |
+ } |
+ if (scratch.is_valid()) { |
+ mov(scratch, Immediate(0x7291)); |
+ } |
+ } |
+ jmp(gc_required); |
+ return; |
+ } |
ASSERT(!result.is(result_end)); |
// Load address of new object into result. |
@@ -627,6 +641,19 @@ |
Register scratch, |
Label* gc_required, |
AllocationFlags flags) { |
+ if (!FLAG_inline_new) { |
+ if (FLAG_debug_code) { |
+ // Trash the registers to simulate an allocation failure. |
+ mov(result, Immediate(0x7091)); |
+ mov(result_end, Immediate(0x7191)); |
+ if (scratch.is_valid()) { |
+ mov(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. |
@@ -655,6 +682,19 @@ |
Register scratch, |
Label* gc_required, |
AllocationFlags flags) { |
+ if (!FLAG_inline_new) { |
+ if (FLAG_debug_code) { |
+ // Trash the registers to simulate an allocation failure. |
+ mov(result, Immediate(0x7091)); |
+ mov(result_end, Immediate(0x7191)); |
+ if (scratch.is_valid()) { |
+ mov(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. |