Get ARM mode passing again
commit4fd0be47e6ff00c451510f87602894bdf0aa49f9
authorOwen Yamauchi <oyamauchi@fb.com>
Tue, 3 Dec 2013 17:05:36 +0000 (3 09:05 -0800)
committerSara Golemon <sgolemon@fb.com>
Wed, 4 Dec 2013 22:30:55 +0000 (4 14:30 -0800)
treee2c6de87e059e152642500fab07042511b357222
parent5acc30fd9360c03d30b69a306222261b238d5e7a
Get ARM mode passing again

quick, slow, and zend/good almost all pass with this diff, after a bunch of
lockdown breakage. I say "almost" because strtotime_leak.php still
fails. I believe that's a consequence of interp'ing everything, although
there may be a real memory leak there. I'll deal with that in an
upcoming diff.

- Since InterpOne has catch traces now, we can't punt on BeginCatch and
  EndCatch anymore. It seems that for the time being, we can skate by
  without actually implementing catch traces, though. The stack is
  always spilled before InterpOne, and because everything is InterpOne'd
  we're not actually holding anything in registers (so we don't need to
  restore them).

- NewStructArray wasn't accounted for in all places in translator.cpp.

- I reduced the amount of work that mixedbag.php does, so that it
  completes in a reasonable amount of time in ARM mode. It's still
  executing all the same code, just fewer times.

Reviewed By: @jdelong

Differential Revision: D1080648
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/translator.cpp
hphp/test/quick/mixedbag.php
hphp/test/quick/mixedbag.php.expect