| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 6592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6603 __ ret(0); | 6603 __ ret(0); |
| 6604 } | 6604 } |
| 6605 | 6605 |
| 6606 | 6606 |
| 6607 void RecordWriteStub:: | 6607 void RecordWriteStub:: |
| 6608 GenerateIncrementalValueIsInNewSpaceObjectIsInOldSpaceRememberedSet( | 6608 GenerateIncrementalValueIsInNewSpaceObjectIsInOldSpaceRememberedSet( |
| 6609 MacroAssembler* masm) { | 6609 MacroAssembler* masm) { |
| 6610 NearLabel object_is_black, must_inform_both; | 6610 NearLabel object_is_black, must_inform_both; |
| 6611 Label must_inform_both_far; | 6611 Label must_inform_both_far; |
| 6612 | 6612 |
| 6613 __ jmp(&must_inform_both_far); | |
| 6614 | |
| 6615 // Lets look at the colour of the object: If it is not black we don't have to | 6613 // Lets look at the colour of the object: If it is not black we don't have to |
| 6616 // inform the incremental marker. | 6614 // inform the incremental marker. |
| 6617 __ InOldSpaceIsBlack(regs_.object(), | 6615 __ InOldSpaceIsBlack(regs_.object(), |
| 6618 regs_.scratch0(), | 6616 regs_.scratch0(), |
| 6619 regs_.scratch1(), | 6617 regs_.scratch1(), |
| 6620 &object_is_black); | 6618 &object_is_black); |
| 6621 regs_.Restore(masm); | 6619 regs_.Restore(masm); |
| 6622 __ RememberedSetHelper(address_, value_, save_fp_regs_mode_); | 6620 __ RememberedSetHelper(address_, value_, save_fp_regs_mode_); |
| 6623 __ ret(0); | 6621 __ ret(0); |
| 6624 | 6622 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 6655 __ ret(0); | 6653 __ ret(0); |
| 6656 } | 6654 } |
| 6657 | 6655 |
| 6658 | 6656 |
| 6659 void RecordWriteStub:: | 6657 void RecordWriteStub:: |
| 6660 GenerateIncrementalValueIsInNewSpaceObjectIsInOldSpaceNoRememberedSet( | 6658 GenerateIncrementalValueIsInNewSpaceObjectIsInOldSpaceNoRememberedSet( |
| 6661 MacroAssembler* masm, | 6659 MacroAssembler* masm, |
| 6662 Label* value_in_new_space_object_is_black_no_remembered_set) { | 6660 Label* value_in_new_space_object_is_black_no_remembered_set) { |
| 6663 NearLabel object_is_black, inform_incremental_marker; | 6661 NearLabel object_is_black, inform_incremental_marker; |
| 6664 | 6662 |
| 6665 __ jmp(&slow_); | |
| 6666 | |
| 6667 __ InOldSpaceIsBlack(regs_.object(), | 6663 __ InOldSpaceIsBlack(regs_.object(), |
| 6668 regs_.scratch0(), | 6664 regs_.scratch0(), |
| 6669 regs_.scratch1(), | 6665 regs_.scratch1(), |
| 6670 &object_is_black); | 6666 &object_is_black); |
| 6671 regs_.Restore(masm); | 6667 regs_.Restore(masm); |
| 6672 __ ret(0); | 6668 __ ret(0); |
| 6673 | 6669 |
| 6674 __ bind(&object_is_black); | 6670 __ bind(&object_is_black); |
| 6675 __ bind(value_in_new_space_object_is_black_no_remembered_set); | 6671 __ bind(value_in_new_space_object_is_black_no_remembered_set); |
| 6676 | 6672 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6741 regs_.Restore(masm); | 6737 regs_.Restore(masm); |
| 6742 __ ret(0); | 6738 __ ret(0); |
| 6743 } | 6739 } |
| 6744 | 6740 |
| 6745 | 6741 |
| 6746 #undef __ | 6742 #undef __ |
| 6747 | 6743 |
| 6748 } } // namespace v8::internal | 6744 } } // namespace v8::internal |
| 6749 | 6745 |
| 6750 #endif // V8_TARGET_ARCH_IA32 | 6746 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |