Fix saving/restoring return address on ARM
Summary:
The Vasm code being generated assumed the return address is pushed/popped
onto/from the native stack, which is not true on ARM. The phplogue Vasm
instruction already abstracts saving the return address from the CPU's
return-address location into a VM frame's m_savedRip, so use it instead of
popping the address from the native stack. There was no corresponding Vasm
instruction for restoring the return address into the proper CPU location, so
this diff adds a `restorerip` instruction and uses it.
Reviewed By: jano, mofarrell
Differential Revision:
D38411692
fbshipit-source-id:
ebff6c91dc89173fb0b5486c69ad373fbfffc23d