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 |