X87: [interpreter] Add basic framework for bytecode handler code generation.

port 7877c4e0c7 (r29814).

original commit message:

    Adds basic support for generation of interpreter bytecode handler code
    snippets. The InterpreterAssembler class exposes a set of low level,
    interpreter specific operations which can be used to build a Turbofan
    graph. The Interpreter class generates a bytecode handler snippet for
    each bytecode by assembling operations using an InterpreterAssembler.

    Currently only two simple bytecodes are supported: LoadLiteral0 and Return.

BUG=

Review URL: https://codereview.chromium.org/1256783002

Cr-Commit-Position: refs/heads/master@{#29838}
This commit is contained in:
chunyang.dai 2015-07-24 03:03:11 -07:00 committed by Commit bot
parent 2571c69dcb
commit c4cd117e2d

View File

@ -17,6 +17,8 @@ struct X87LinkageHelperTraits {
static Register ReturnValue2Reg() { return edx; }
static Register JSCallFunctionReg() { return edi; }
static Register ContextReg() { return esi; }
static Register InterpreterBytecodePointerReg() { return edi; }
static Register InterpreterDispatchTableReg() { return ebx; }
static Register RuntimeCallFunctionReg() { return ebx; }
static Register RuntimeCallArgCountReg() { return eax; }
static RegList CCalleeSaveRegisters() {
@ -61,9 +63,8 @@ CallDescriptor* Linkage::GetSimplifiedCDescriptor(Zone* zone,
}
CallDescriptor* Linkage::GetInterpreterDispatchDescriptor(
Zone* zone, const MachineSignature* sig) {
return LH::GetInterpreterDispatchDescriptor(zone, sig);
CallDescriptor* Linkage::GetInterpreterDispatchDescriptor(Zone* zone) {
return LH::GetInterpreterDispatchDescriptor(zone);
}
} // namespace compiler