Why we call JSEntryTrampoline from JSEntryStub? We can just do same work in 
JSEntryStub:
handle arguments and build v8's internal frame from c++ arguments.

Why do you use once more indirections level?

// Invoke the function by calling through JS entry trampoline builtin and
// pop the faked function when we return. We load the address from an
// external reference instead of inlining the call target address directly
// in the code, because the builtin stubs may not have been generated yet
// at the time this code is generated.
if (type() == StackFrame::ENTRY_CONSTRUCT) {
  ExternalReference construct_entry(Builtins::kJSConstructEntryTrampoline,
                                      isolate());
  __ Load(rax, construct_entry);
} else {
  ExternalReference entry(Builtins::kJSEntryTrampoline, isolate());
  __ Load(rax, entry);
}
__ leap(kScratchRegister, FieldOperand(rax, Code::kHeaderSize));
__ call(kScratchRegister);

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to