Index: src/ic.h |
=================================================================== |
--- src/ic.h (revision 1804) |
+++ src/ic.h (working copy) |
@@ -216,6 +216,11 @@ |
static void GenerateStringLength(MacroAssembler* masm); |
static void GenerateFunctionPrototype(MacroAssembler* masm); |
+ // The offset from the inlined patch site to the start of the |
+ // inlined load instruction. It is 7 bytes (test eax, imm) plus |
+ // 6 bytes (jne slow_label). |
+ static const int kOffsetToLoadInstruction = 13; |
+ |
private: |
static void Generate(MacroAssembler* masm, const ExternalReference& f); |
@@ -238,6 +243,12 @@ |
} |
static void Clear(Address address, Code* target); |
+ |
+ // Clear the use of the inlined version. |
+ static void ClearInlinedVersion(Address address); |
+ |
+ static bool PatchInlinedLoad(Address address, Object* map, int index); |
+ |
friend class IC; |
}; |
@@ -254,9 +265,6 @@ |
static void GeneratePreMonomorphic(MacroAssembler* masm); |
static void GenerateGeneric(MacroAssembler* masm); |
- // Check if this IC corresponds to an inlined version. |
- static bool HasInlinedVersion(Address address); |
- |
// Clear the use of the inlined version. |
static void ClearInlinedVersion(Address address); |
@@ -287,7 +295,7 @@ |
// Support for patching the map that is checked in an inlined |
// version of keyed load. |
- static void PatchInlinedMapCheck(Address address, Object* map); |
+ static bool PatchInlinedLoad(Address address, Object* map); |
friend class IC; |
}; |