diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc index 1975a13d9d..8d4431cb73 100644 --- a/src/arm/macro-assembler-arm.cc +++ b/src/arm/macro-assembler-arm.cc @@ -496,13 +496,10 @@ void MacroAssembler::RecordWrite(Register object, // registers are cp. ASSERT(!address.is(cp) && !value.is(cp)); - if (FLAG_debug_code) { - Label ok; + if (emit_debug_code()) { ldr(ip, MemOperand(address)); cmp(ip, value); - b(eq, &ok); - stop("Wrong address or value passed to RecordWrite"); - bind(&ok); + Check(eq, "Wrong address or value passed to RecordWrite"); } Label done; @@ -551,7 +548,7 @@ void MacroAssembler::RememberedSetHelper(Register object, // For debug tests. SaveFPRegsMode fp_mode, RememberedSetFinalAction and_then) { Label done; - if (FLAG_debug_code) { + if (emit_debug_code()) { Label ok; JumpIfNotInNewSpace(object, scratch, &ok); stop("Remembered set pointer is in new space"); @@ -3504,7 +3501,7 @@ void MacroAssembler::EnsureNotWhite( tst(mask_scratch, load_scratch); b(ne, &done); - if (FLAG_debug_code) { + if (emit_debug_code()) { // Check for impossible bit pattern. Label ok; // LSL may overflow, making the check conservative. diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc index e6567044f8..98b4121ed9 100644 --- a/src/mips/macro-assembler-mips.cc +++ b/src/mips/macro-assembler-mips.cc @@ -252,6 +252,12 @@ void MacroAssembler::RecordWrite(Register object, // registers are cp. ASSERT(!address.is(cp) && !value.is(cp)); + if (emit_debug_code()) { + lw(at, MemOperand(address)); + Assert( + eq, "Wrong address or value passed to RecordWrite", at, Operand(value)); + } + Label done; if (smi_check == INLINE_SMI_CHECK) { @@ -297,7 +303,7 @@ void MacroAssembler::RememberedSetHelper(Register object, // For debug tests. SaveFPRegsMode fp_mode, RememberedSetFinalAction and_then) { Label done; - if (FLAG_debug_code) { + if (emit_debug_code()) { Label ok; JumpIfNotInNewSpace(object, scratch, &ok); stop("Remembered set pointer is in new space"); @@ -4838,7 +4844,7 @@ void MacroAssembler::EnsureNotWhite( And(t8, mask_scratch, load_scratch); Branch(&done, ne, t8, Operand(zero_reg)); - if (FLAG_debug_code) { + if (emit_debug_code()) { // Check for impossible bit pattern. Label ok; // sll may overflow, making the check conservative.