Better support for x86 XMM registers

Currently, ART Quick mode assumes that a double FP register is composed
of two single consecutive FP registers.  This is true for ARM and MIPS,
but not x86.  This means that only half of the 8 XMM registers are
available for use by x86 doubles.

This patch breaks the assumption that a wide FP RegisterLocation must be
a paired set of FP registers.   This is done by making some routines in
common code virtual and overriding them in the X86Mir2Lir class.  For
these wide fp locations, the high register is set to the same value as
the low register, in order to minimize changes to common code.  In a
couple of places, the common code checks for this case.

The changes are also supposed to allow the possibility of using the XMM
registers for vector operations,but that support is still WIP.

Change-Id: Ic6ef24ea764991c6f4d9fb88d483a619f5a468cb
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
15 files changed