Implement function prologues in ARM
This is mainly what's holding us back in test/quick. There's a lot of
stuff going on here:
- Adding code-gen-helpers-arm.cpp. There's a practical need for this:
we're starting to write out a lot of calls to C++ functions, which
should be abstracted out because it happens differently depending on
whether we're simulating ARM or running on native ARM.
- Initialize rStashedAR when starting the simulator. This was a bug.
- Change the order of pushing x29 and x30 around calls to properly mimic
the x64 stack frame.
- Implement fcallHelperThunk.
- Templatize a couple of vixl functions to let us move pointers into
registers without reinterpret_cast. Also fill the simulator stack with
junk before starting up a simulator; in an early version of this diff
we were actually reading from the stack out-of-bounds. It wasn't
causing any bugs, but let's get out ahead of that.
Reviewed By: @jdelong
Differential Revision:
D1019980