Chromium Code Reviews| Index: src/arm/code-stubs-arm.h |
| diff --git a/src/arm/code-stubs-arm.h b/src/arm/code-stubs-arm.h |
| index 2ca7b7a8a1b5c80d51c90b028f1bfb10b8f5e624..29c897cd63065f3ab7e37389fbbd30efe5f698f8 100644 |
| --- a/src/arm/code-stubs-arm.h |
| +++ b/src/arm/code-stubs-arm.h |
| @@ -597,6 +597,61 @@ class FloatingPointHelper : public AllStatic { |
| }; |
| +class StringDictionaryLookupStub: public CodeStub { |
| + public: |
| + enum LookupMode { POSITIVE_LOOKUP, NEGATIVE_LOOKUP }; |
| + |
| + StringDictionaryLookupStub(LookupMode mode) : mode_(mode) { } |
| + |
| + void Generate(MacroAssembler* masm); |
| + |
| + static void GenerateNegativeLookup(MacroAssembler* masm, |
| + Label* miss, |
| + Label* done, |
| + Register receiver, |
| + Register properties, |
| + String* name, |
| + Register scratch0) ; |
| + |
| + static void GeneratePositiveLookup(MacroAssembler* masm, |
| + Label* miss, |
| + Label* done, |
| + Register elements, |
| + Register name, |
| + Register r0, |
| + Register r1); |
| + private: |
|
Mads Ager (chromium)
2011/05/05 11:54:56
Could you leave line 623 blank and move this to li
Vyacheslav Egorov (Chromium)
2011/05/05 12:30:16
Done.
|
| + |
| + static const int kInlinedProbes = 4; |
| + static const int kTotalProbes = 20; |
| + |
| + static const int kCapacityOffset = |
| + StringDictionary::kHeaderSize + |
| + StringDictionary::kCapacityIndex * kPointerSize; |
| + |
| + static const int kElementsStartOffset = |
| + StringDictionary::kHeaderSize + |
| + StringDictionary::kElementsStartIndex * kPointerSize; |
| + |
| + |
| +#ifdef DEBUG |
| + void Print() { |
| + PrintF("StringDictionaryLookupStub\n"); |
| + } |
| +#endif |
| + |
| + Major MajorKey() { return StringDictionaryNegativeLookup; } |
| + |
| + int MinorKey() { |
| + return LookupModeBits::encode(mode_); |
| + } |
| + |
| + class LookupModeBits: public BitField<LookupMode, 0, 1> {}; |
| + |
| + LookupMode mode_; |
| +}; |
| + |
| + |
| } } // namespace v8::internal |
| #endif // V8_ARM_CODE_STUBS_ARM_H_ |