Add `recordbasenativesp` instr and support it in vasm-xls
commit843ef651accdf41cf592f75d2cb9bbee9e173031
authorMichael O'Farrell <michaelofarrell@fb.com>
Mon, 31 Aug 2020 15:12:03 +0000 (31 08:12 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Mon, 31 Aug 2020 15:14:23 +0000 (31 08:14 -0700)
treeee6b9faf7d271b243d9e4e451379b0c499fe26bf
parentbac37a3ed3e5f33e72d07801d57363fbc758fd0a
Add `recordbasenativesp` instr and support it in vasm-xls

Summary:
Introduce a vasm operation `recordbasenativesp`.  `recordbasenativesp` is used
to mark the transition from operating on the stack prior to allocation of spill
space, to operating on the stack after the allocation of spill space.  It could
be considered an enable spills instruction.  The main purpose is to allow
manipulation of the native frame (`rip` pushed by a call) at the start of a
unit.  Classically in units that perform such manipulations of the stack
(prologues) we have simply forbidden spilling.  This diff and stack lifts this
restriction

Reviewed By: ricklavoie

Differential Revision: D23318592

fbshipit-source-id: 9603074bca13520ccd3bee74f353bfd9755212a8
hphp/runtime/base/runtime-option.h
hphp/runtime/vm/jit/irlower.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-internal-inl.h
hphp/runtime/vm/jit/vasm-xls.cpp