| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #if V8_TARGET_ARCH_X87 | 5 #if V8_TARGET_ARCH_X87 |
| 6 | 6 |
| 7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
| 8 #include "src/bootstrapper.h" | 8 #include "src/bootstrapper.h" |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 3740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3751 Label::kNear); | 3751 Label::kNear); |
| 3752 | 3752 |
| 3753 __ jmp(&need_incremental); | 3753 __ jmp(&need_incremental); |
| 3754 | 3754 |
| 3755 __ bind(&ensure_not_white); | 3755 __ bind(&ensure_not_white); |
| 3756 } | 3756 } |
| 3757 | 3757 |
| 3758 // We need an extra register for this, so we push the object register | 3758 // We need an extra register for this, so we push the object register |
| 3759 // temporarily. | 3759 // temporarily. |
| 3760 __ push(regs_.object()); | 3760 __ push(regs_.object()); |
| 3761 __ EnsureNotWhite(regs_.scratch0(), // The value. | 3761 __ JumpIfWhite(regs_.scratch0(), // The value. |
| 3762 regs_.scratch1(), // Scratch. | 3762 regs_.scratch1(), // Scratch. |
| 3763 regs_.object(), // Scratch. | 3763 regs_.object(), // Scratch. |
| 3764 &need_incremental_pop_object, | 3764 &need_incremental_pop_object, Label::kNear); |
| 3765 Label::kNear); | |
| 3766 __ pop(regs_.object()); | 3765 __ pop(regs_.object()); |
| 3767 | 3766 |
| 3768 regs_.Restore(masm); | 3767 regs_.Restore(masm); |
| 3769 if (on_no_need == kUpdateRememberedSetOnNoNeedToInformIncrementalMarker) { | 3768 if (on_no_need == kUpdateRememberedSetOnNoNeedToInformIncrementalMarker) { |
| 3770 __ RememberedSetHelper(object(), address(), value(), save_fp_regs_mode(), | 3769 __ RememberedSetHelper(object(), address(), value(), save_fp_regs_mode(), |
| 3771 MacroAssembler::kReturnAtEnd); | 3770 MacroAssembler::kReturnAtEnd); |
| 3772 } else { | 3771 } else { |
| 3773 __ ret(0); | 3772 __ ret(0); |
| 3774 } | 3773 } |
| 3775 | 3774 |
| (...skipping 1558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5334 Operand(ebp, 7 * kPointerSize), NULL); | 5333 Operand(ebp, 7 * kPointerSize), NULL); |
| 5335 } | 5334 } |
| 5336 | 5335 |
| 5337 | 5336 |
| 5338 #undef __ | 5337 #undef __ |
| 5339 | 5338 |
| 5340 } // namespace internal | 5339 } // namespace internal |
| 5341 } // namespace v8 | 5340 } // namespace v8 |
| 5342 | 5341 |
| 5343 #endif // V8_TARGET_ARCH_X87 | 5342 #endif // V8_TARGET_ARCH_X87 |
| OLD | NEW |