| 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 580 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 591         ASSERT(GetMode(stub) == STORE_BUFFER_ONLY); | 591         ASSERT(GetMode(stub) == STORE_BUFFER_ONLY); | 
| 592         stub->instruction_start()[0] = kTwoByteJumpInstruction; | 592         stub->instruction_start()[0] = kTwoByteJumpInstruction; | 
| 593         break; | 593         break; | 
| 594       case INCREMENTAL_COMPACTION: | 594       case INCREMENTAL_COMPACTION: | 
| 595         ASSERT(GetMode(stub) == STORE_BUFFER_ONLY); | 595         ASSERT(GetMode(stub) == STORE_BUFFER_ONLY); | 
| 596         stub->instruction_start()[0] = kTwoByteNopInstruction; | 596         stub->instruction_start()[0] = kTwoByteNopInstruction; | 
| 597         stub->instruction_start()[2] = kFiveByteJumpInstruction; | 597         stub->instruction_start()[2] = kFiveByteJumpInstruction; | 
| 598         break; | 598         break; | 
| 599     } | 599     } | 
| 600     ASSERT(GetMode(stub) == mode); | 600     ASSERT(GetMode(stub) == mode); | 
|  | 601     CPU::FlushICache(stub->instruction_start(), 7); | 
| 601   } | 602   } | 
| 602 | 603 | 
| 603  private: | 604  private: | 
| 604   // This is a helper class for freeing up 3 scratch registers, where the third | 605   // This is a helper class for freeing up 3 scratch registers, where the third | 
| 605   // is always rcx (needed for shift operations).  The input is two registers | 606   // is always rcx (needed for shift operations).  The input is two registers | 
| 606   // that must be preserved and one scratch register provided by the caller. | 607   // that must be preserved and one scratch register provided by the caller. | 
| 607   class RegisterAllocation { | 608   class RegisterAllocation { | 
| 608    public: | 609    public: | 
| 609     RegisterAllocation(Register object, | 610     RegisterAllocation(Register object, | 
| 610                        Register address, | 611                        Register address, | 
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 758   RememberedSetAction remembered_set_action_; | 759   RememberedSetAction remembered_set_action_; | 
| 759   SaveFPRegsMode save_fp_regs_mode_; | 760   SaveFPRegsMode save_fp_regs_mode_; | 
| 760   Label slow_; | 761   Label slow_; | 
| 761   RegisterAllocation regs_; | 762   RegisterAllocation regs_; | 
| 762 }; | 763 }; | 
| 763 | 764 | 
| 764 | 765 | 
| 765 } }  // namespace v8::internal | 766 } }  // namespace v8::internal | 
| 766 | 767 | 
| 767 #endif  // V8_X64_CODE_STUBS_X64_H_ | 768 #endif  // V8_X64_CODE_STUBS_X64_H_ | 
| OLD | NEW | 
|---|