| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 #ifndef V8_X87_CODE_STUBS_X87_H_ | 5 #ifndef V8_X87_CODE_STUBS_X87_H_ |
| 6 #define V8_X87_CODE_STUBS_X87_H_ | 6 #define V8_X87_CODE_STUBS_X87_H_ |
| 7 | 7 |
| 8 namespace v8 { | 8 namespace v8 { |
| 9 namespace internal { | 9 namespace internal { |
| 10 | 10 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 enum LookupMode { POSITIVE_LOOKUP, NEGATIVE_LOOKUP }; | 59 enum LookupMode { POSITIVE_LOOKUP, NEGATIVE_LOOKUP }; |
| 60 | 60 |
| 61 NameDictionaryLookupStub(Isolate* isolate, Register dictionary, | 61 NameDictionaryLookupStub(Isolate* isolate, Register dictionary, |
| 62 Register result, Register index, LookupMode mode) | 62 Register result, Register index, LookupMode mode) |
| 63 : PlatformCodeStub(isolate) { | 63 : PlatformCodeStub(isolate) { |
| 64 minor_key_ = DictionaryBits::encode(dictionary.code()) | | 64 minor_key_ = DictionaryBits::encode(dictionary.code()) | |
| 65 ResultBits::encode(result.code()) | | 65 ResultBits::encode(result.code()) | |
| 66 IndexBits::encode(index.code()) | LookupModeBits::encode(mode); | 66 IndexBits::encode(index.code()) | LookupModeBits::encode(mode); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void Generate(MacroAssembler* masm); | |
| 70 | |
| 71 static void GenerateNegativeLookup(MacroAssembler* masm, | 69 static void GenerateNegativeLookup(MacroAssembler* masm, |
| 72 Label* miss, | 70 Label* miss, |
| 73 Label* done, | 71 Label* done, |
| 74 Register properties, | 72 Register properties, |
| 75 Handle<Name> name, | 73 Handle<Name> name, |
| 76 Register r0); | 74 Register r0); |
| 77 | 75 |
| 78 static void GeneratePositiveLookup(MacroAssembler* masm, | 76 static void GeneratePositiveLookup(MacroAssembler* masm, |
| 79 Label* miss, | 77 Label* miss, |
| 80 Label* done, | 78 Label* done, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 109 return Register::from_code(IndexBits::decode(minor_key_)); | 107 return Register::from_code(IndexBits::decode(minor_key_)); |
| 110 } | 108 } |
| 111 | 109 |
| 112 LookupMode mode() const { return LookupModeBits::decode(minor_key_); } | 110 LookupMode mode() const { return LookupModeBits::decode(minor_key_); } |
| 113 | 111 |
| 114 class DictionaryBits: public BitField<int, 0, 3> {}; | 112 class DictionaryBits: public BitField<int, 0, 3> {}; |
| 115 class ResultBits: public BitField<int, 3, 3> {}; | 113 class ResultBits: public BitField<int, 3, 3> {}; |
| 116 class IndexBits: public BitField<int, 6, 3> {}; | 114 class IndexBits: public BitField<int, 6, 3> {}; |
| 117 class LookupModeBits: public BitField<LookupMode, 9, 1> {}; | 115 class LookupModeBits: public BitField<LookupMode, 9, 1> {}; |
| 118 | 116 |
| 119 DEFINE_CODE_STUB(NameDictionaryLookup, PlatformCodeStub); | 117 DEFINE_PLATFORM_CODE_STUB(NameDictionaryLookup, PlatformCodeStub); |
| 120 }; | 118 }; |
| 121 | 119 |
| 122 | 120 |
| 123 class RecordWriteStub: public PlatformCodeStub { | 121 class RecordWriteStub: public PlatformCodeStub { |
| 124 public: | 122 public: |
| 125 RecordWriteStub(Isolate* isolate, | 123 RecordWriteStub(Isolate* isolate, |
| 126 Register object, | 124 Register object, |
| 127 Register value, | 125 Register value, |
| 128 Register address, | 126 Register address, |
| 129 RememberedSetAction remembered_set_action) | 127 RememberedSetAction remembered_set_action) |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 friend class RecordWriteStub; | 315 friend class RecordWriteStub; |
| 318 }; | 316 }; |
| 319 | 317 |
| 320 enum OnNoNeedToInformIncrementalMarker { | 318 enum OnNoNeedToInformIncrementalMarker { |
| 321 kReturnOnNoNeedToInformIncrementalMarker, | 319 kReturnOnNoNeedToInformIncrementalMarker, |
| 322 kUpdateRememberedSetOnNoNeedToInformIncrementalMarker | 320 kUpdateRememberedSetOnNoNeedToInformIncrementalMarker |
| 323 }; | 321 }; |
| 324 | 322 |
| 325 virtual inline Major MajorKey() const FINAL OVERRIDE { return RecordWrite; } | 323 virtual inline Major MajorKey() const FINAL OVERRIDE { return RecordWrite; } |
| 326 | 324 |
| 327 void Generate(MacroAssembler* masm); | 325 virtual void Generate(MacroAssembler* masm) OVERRIDE; |
| 328 void GenerateIncremental(MacroAssembler* masm, Mode mode); | 326 void GenerateIncremental(MacroAssembler* masm, Mode mode); |
| 329 void CheckNeedsToInformIncrementalMarker( | 327 void CheckNeedsToInformIncrementalMarker( |
| 330 MacroAssembler* masm, | 328 MacroAssembler* masm, |
| 331 OnNoNeedToInformIncrementalMarker on_no_need, | 329 OnNoNeedToInformIncrementalMarker on_no_need, |
| 332 Mode mode); | 330 Mode mode); |
| 333 void InformIncrementalMarker(MacroAssembler* masm); | 331 void InformIncrementalMarker(MacroAssembler* masm); |
| 334 | 332 |
| 335 void Activate(Code* code) { | 333 void Activate(Code* code) { |
| 336 code->GetHeap()->incremental_marking()->ActivateGeneratedStub(code); | 334 code->GetHeap()->incremental_marking()->ActivateGeneratedStub(code); |
| 337 } | 335 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 359 | 357 |
| 360 RegisterAllocation regs_; | 358 RegisterAllocation regs_; |
| 361 | 359 |
| 362 DISALLOW_COPY_AND_ASSIGN(RecordWriteStub); | 360 DISALLOW_COPY_AND_ASSIGN(RecordWriteStub); |
| 363 }; | 361 }; |
| 364 | 362 |
| 365 | 363 |
| 366 } } // namespace v8::internal | 364 } } // namespace v8::internal |
| 367 | 365 |
| 368 #endif // V8_X87_CODE_STUBS_X87_H_ | 366 #endif // V8_X87_CODE_STUBS_X87_H_ |
| OLD | NEW |