1) Problem with VecX
For all vector types, we do the following on all platforms:
lrg.set_reg_pressure(1);
For 32-bit ARM, with a FLOATPRESSURE value of 30 and set_reg_pressure(1), we calculate 30 VecX vector registers,
but the hardware actually supports 15 VecX vector registers (actually 16, but accounting for S14/S15/D7 that we reserve).
2) Problem with RegD
We also calculate 15 RegD instead of the correct 30 RegD.
3) The above numbers assume that VM_Version::has_vfp3_32() returns true. If it returns false, the number of RegD,
VecD, and VecX available in C2 are cut in half, but the number of RegF and VecS stay the same. A single value for
FLOATPRESSURE and a static value for lrg.set_reg_pressure() makes it impossible to adjust for the
has_vfp3_32() value at runtime.
Rather than INTPRESSURE, FLOATPRESSURE, and platform-specific set_reg_pressure() values in shared code using
ifdefs, it seems better to define an interface to allow better tuning of these values.