OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_X64 | 5 #if V8_TARGET_ARCH_X64 |
6 | 6 |
7 #include "src/bootstrapper.h" | 7 #include "src/bootstrapper.h" |
8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/ic/handler-compiler.h" | 10 #include "src/ic/handler-compiler.h" |
(...skipping 3985 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3996 MemoryChunk::kSkipEvacuationSlotsRecordingMask, | 3996 MemoryChunk::kSkipEvacuationSlotsRecordingMask, |
3997 zero, | 3997 zero, |
3998 &need_incremental); | 3998 &need_incremental); |
3999 | 3999 |
4000 __ bind(&ensure_not_white); | 4000 __ bind(&ensure_not_white); |
4001 } | 4001 } |
4002 | 4002 |
4003 // We need an extra register for this, so we push the object register | 4003 // We need an extra register for this, so we push the object register |
4004 // temporarily. | 4004 // temporarily. |
4005 __ Push(regs_.object()); | 4005 __ Push(regs_.object()); |
4006 __ EnsureNotWhite(regs_.scratch0(), // The value. | 4006 __ JumpIfWhite(regs_.scratch0(), // The value. |
4007 regs_.scratch1(), // Scratch. | 4007 regs_.scratch1(), // Scratch. |
4008 regs_.object(), // Scratch. | 4008 regs_.object(), // Scratch. |
4009 &need_incremental_pop_object, | 4009 &need_incremental_pop_object, Label::kNear); |
4010 Label::kNear); | |
4011 __ Pop(regs_.object()); | 4010 __ Pop(regs_.object()); |
4012 | 4011 |
4013 regs_.Restore(masm); | 4012 regs_.Restore(masm); |
4014 if (on_no_need == kUpdateRememberedSetOnNoNeedToInformIncrementalMarker) { | 4013 if (on_no_need == kUpdateRememberedSetOnNoNeedToInformIncrementalMarker) { |
4015 __ RememberedSetHelper(object(), address(), value(), save_fp_regs_mode(), | 4014 __ RememberedSetHelper(object(), address(), value(), save_fp_regs_mode(), |
4016 MacroAssembler::kReturnAtEnd); | 4015 MacroAssembler::kReturnAtEnd); |
4017 } else { | 4016 } else { |
4018 __ ret(0); | 4017 __ ret(0); |
4019 } | 4018 } |
4020 | 4019 |
(...skipping 1377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5398 kStackSpace, nullptr, return_value_operand, NULL); | 5397 kStackSpace, nullptr, return_value_operand, NULL); |
5399 } | 5398 } |
5400 | 5399 |
5401 | 5400 |
5402 #undef __ | 5401 #undef __ |
5403 | 5402 |
5404 } // namespace internal | 5403 } // namespace internal |
5405 } // namespace v8 | 5404 } // namespace v8 |
5406 | 5405 |
5407 #endif // V8_TARGET_ARCH_X64 | 5406 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |