Add infrastructure to allow prologues to operate in stublogue mode
commit7f0d5450d997943c60221909093a4d88040ffa10
authorJan Oravec <jan@fb.com>
Mon, 4 Nov 2019 16:48:36 +0000 (4 08:48 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Mon, 4 Nov 2019 16:54:03 +0000 (4 08:54 -0800)
tree8dd0bbb1bd825ab7d2d64d9d270afc72034f0bb5
parentf46f69437644763ccfc5944b6560c626ecd3e782
Add infrastructure to allow prologues to operate in stublogue mode

Summary:
Setup prologue in a stublogue context, then convert it to phplogue when
the frame gets written.

Keep track the duration of stublogue context, so that we can properly update
the native stack in JIT catch blocks.

The next diff will move most of the prologue logic to this section.

Reviewed By: ricklavoie

Differential Revision: D18054876

fbshipit-source-id: ec97917710695b3684b60684c7e63835cd0d19c6
20 files changed:
hphp/doc/ir.specification
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/frame-state.cpp
hphp/runtime/vm/jit/frame-state.h
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/irgen-builtin.cpp
hphp/runtime/vm/jit/irgen-func-prologue.cpp
hphp/runtime/vm/jit/irgen-internal.h
hphp/runtime/vm/jit/irgen-minstr.cpp
hphp/runtime/vm/jit/irlower-act-rec.cpp
hphp/runtime/vm/jit/irlower-call.cpp
hphp/runtime/vm/jit/irlower-exception.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/vasm-arm.cpp
hphp/runtime/vm/jit/vasm-info.cpp
hphp/runtime/vm/jit/vasm-instr.cpp
hphp/runtime/vm/jit/vasm-instr.h
hphp/runtime/vm/jit/vasm-ppc64.cpp
hphp/runtime/vm/jit/vasm-x64.cpp