Chromium Code Reviews| Index: src/code-stubs.h |
| =================================================================== |
| --- src/code-stubs.h (revision 9957) |
| +++ src/code-stubs.h (working copy) |
| @@ -193,6 +193,17 @@ |
| return UNINITIALIZED; |
| } |
| + // Add the code to a specialized cache, specific to an individual |
| + // stub type. Please note, this method must add the code object to a |
| + // roots object, otherwise we will remove the code during GC. |
| + virtual bool AddToSpecialCache(Handle<Code> new_object) { return false; } |
| + |
| + // Find code in a specialized cache, work is delegated to the specific stub. |
| + virtual bool FindCodeInSpecialCache(Code** code_out) { return false; } |
| + |
| + // If a stub uses a special cache override this. |
| + virtual bool UseSpecialCache() { return false; } |
| + |
| // Returns a name for logging/debugging purposes. |
| SmartArrayPointer<const char> GetName(); |
| virtual void PrintName(StringStream* stream); |
| @@ -437,6 +448,8 @@ |
| virtual void Generate(MacroAssembler* masm); |
| + void set_known_map(Handle<Map> map) { known_map_ = map; } |
| + |
| private: |
| class OpField: public BitField<int, 0, 3> { }; |
| class StateField: public BitField<int, 3, 5> { }; |
| @@ -454,12 +467,17 @@ |
| void GenerateStrings(MacroAssembler* masm); |
| void GenerateObjects(MacroAssembler* masm); |
| void GenerateMiss(MacroAssembler* masm); |
| + void GenerateKnownObjects(MacroAssembler* masm, Handle<Map> map); |
| bool strict() const { return op_ == Token::EQ_STRICT; } |
| Condition GetCondition() const { return CompareIC::ComputeCondition(op_); } |
| + bool AddToSpecialCache(Handle<Code> new_object); |
|
Kevin Millikin (Chromium)
2011/11/11 10:12:34
It seems better to declare these virtual.
Rico
2011/11/15 10:12:26
Done.
|
| + bool FindCodeInSpecialCache(Code** code_out); |
| + bool UseSpecialCache() { return state_ == CompareIC::KNOWN_OBJECTS; } |
| Token::Value op_; |
| CompareIC::State state_; |
| + Handle<Map> known_map_; |
| }; |