Allocate SIMD regs for doubles on ARM
commit26efdd8ddc8abb06cd650315e87ec56a63100beb
authorOwen Yamauchi <oyamauchi@fb.com>
Tue, 8 Apr 2014 20:46:37 +0000 (8 13:46 -0700)
committerSara Golemon <sgolemon@fb.com>
Wed, 9 Apr 2014 16:42:41 +0000 (9 09:42 -0700)
treefd7368d464df153ce1ab5ef2d468cfd8dba22c45
parent84fa8a4f86fe394507f5f5d9464fc033e2e6ca50
Allocate SIMD regs for doubles on ARM

Turns out vixl already had gpr<->simd and simd<->mem instructions for
the uses cases we need. This was just a matter of making the SIMD
registers available to the register allocator and handling them in a few
places in codegen.

We're not allocating SIMD registers to hold Cells yet. vixl has no
support at all for 128-bit-wide SIMD registers, so I'll have to
implement that separately. This diff also doesn't add support for
passing doubles to builtins on ARM; that'll come next.

I also got rid of some now-useless isConst handling from ARM codegen.

Reviewed By: @edwinsmith

Differential Revision: D1262941
hphp/runtime/vm/jit/abi-arm.h
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/code-gen-helpers-arm.cpp
hphp/runtime/vm/jit/code-gen-helpers-arm.h
hphp/runtime/vm/jit/phys-reg.h
hphp/runtime/vm/jit/reg-alloc.cpp
hphp/runtime/vm/jit/xls.cpp
hphp/vixl/a64/assembler-a64.h
hphp/vixl/a64/macro-assembler-a64.h