New version of v8 from bleeding edge at revision 3649
diff --git a/src/code-stubs.h b/src/code-stubs.h
index 25a2d0f..052c1ca 100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -37,18 +37,24 @@
V(CallFunction) \
V(GenericBinaryOp) \
V(StringAdd) \
+ V(SubString) \
+ V(StringCompare) \
V(SmiOp) \
V(Compare) \
V(RecordWrite) \
V(ConvertToDouble) \
V(WriteInt32ToHeapNumber) \
V(StackCheck) \
- V(UnarySub) \
+ V(FastNewClosure) \
+ V(FastNewContext) \
+ V(FastCloneShallowArray) \
+ V(GenericUnaryOp) \
V(RevertToNumber) \
V(ToBoolean) \
V(Instanceof) \
V(CounterOp) \
V(ArgumentsAccess) \
+ V(RegExpExec) \
V(Runtime) \
V(CEntry) \
V(JSEntry)
@@ -83,6 +89,11 @@
// Retrieve the code for the stub. Generate the code if needed.
Handle<Code> GetCode();
+ // Retrieve the code for the stub if already generated. Do not
+ // generate the code if not already generated and instead return a
+ // retry after GC Failure object.
+ Object* TryGetCode();
+
static Major MajorKeyFromKey(uint32_t key) {
return static_cast<Major>(MajorKeyBits::decode(key));
};
@@ -104,9 +115,20 @@
static const int kMinorBits = kBitsPerInt - kSmiTagSize - kMajorBits;
private:
+ // Lookup the code in the (possibly custom) cache.
+ bool FindCodeInCache(Code** code_out);
+
+ // Nonvirtual wrapper around the stub-specific Generate function. Call
+ // this function to set up the macro assembler and generate the code.
+ void GenerateCode(MacroAssembler* masm);
+
// Generates the assembler code for the stub.
virtual void Generate(MacroAssembler* masm) = 0;
+ // Perform bookkeeping required after code generation when stub code is
+ // initially generated.
+ void RecordCodeGeneration(Code* code, MacroAssembler* masm);
+
// Returns information for computing the number key.
virtual Major MajorKey() = 0;
virtual int MinorKey() = 0;