Make caller reffiness checks usable by merged FPush/FCall opcodes
commit90df46ae5835ca2022b1a984646d1c28ff454d63
authorJan Oravec <jan@fb.com>
Tue, 14 May 2019 00:09:00 +0000 (13 17:09 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Tue, 14 May 2019 00:16:44 +0000 (13 17:16 -0700)
tree8d807111eb0a2e4cca1d2489bcd3022e3b28945b
parent492e562782b6e2c06018ff319c1ec800beb4194d
Make caller reffiness checks usable by merged FPush/FCall opcodes

Summary:
Split caller reffiness checks into separate code paths for known and unknown
callee. Replace interpreter exits with opcode that throws an exception on
reffiness mismatch.

Reviewed By: oulgen

Differential Revision: D15323575

fbshipit-source-id: e49b76b0ced5157a2ebad6e55d190307746f4e01
12 files changed:
hphp/doc/ir.specification
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/ir-unit.cpp
hphp/runtime/vm/jit/irgen-call.cpp
hphp/runtime/vm/jit/irlower-exception.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/native-calls.cpp
hphp/runtime/vm/runtime.cpp
hphp/runtime/vm/runtime.h