Replace Catch opcode with implicitly pushed Throwables
commitc080e0b61dbc04b6d80b218d1d9065fa209a5a42
authorJan Oravec <jan@fb.com>
Sun, 7 Apr 2019 01:25:09 +0000 (6 18:25 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Sun, 7 Apr 2019 01:41:27 +0000 (6 18:41 -0700)
tree4d33ef0b63a129fd0ed14bc193c56fb7611bc54b
parent2f231dd3207d6618cf68a6cd5f3e304970ad02eb
Replace Catch opcode with implicitly pushed Throwables

Summary:
Instead of starting exception handler with empty stack and using Catch opcode
to obtain the throwable from the stack of Faults, push the throwable explicitly
by the unwinder before entering exception handler.

Reviewed By: ricklavoie

Differential Revision: D14677951

fbshipit-source-id: 5c3d0a8a45f4c2c774da82613ccbdeff49dd1d06
24 files changed:
hphp/doc/bytecode.specification
hphp/hhbbc/dce.cpp
hphp/hhbbc/emit.cpp
hphp/hhbbc/interp-minstr.cpp
hphp/hhbbc/interp-state.cpp
hphp/hhbbc/interp-state.h
hphp/hhbbc/interp.cpp
hphp/hhbbc/parse.cpp
hphp/hhbbc/representation.h
hphp/runtime/vm/as.cpp
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/disas.cpp
hphp/runtime/vm/func-inl.h
hphp/runtime/vm/func.h
hphp/runtime/vm/hhbc.h
hphp/runtime/vm/jit/irgen-interpone.cpp
hphp/runtime/vm/jit/translator.cpp
hphp/runtime/vm/unwind.cpp
hphp/runtime/vm/unwind.h
hphp/runtime/vm/verifier/cfg.h
hphp/runtime/vm/verifier/check-func.cpp
hphp/test/quick/misplaced_catch.hhas [deleted file]
hphp/test/quick/misplaced_catch.hhas.expectf [deleted file]
hphp/test/quick/misplaced_catch.hhas.verify [deleted file]