< prev index next >

src/hotspot/cpu/aarch64/register_aarch64.hpp

Print this page
rev 56895 : 8233948: AArch64: Incorrect mapping between OptoReg and VMReg for high 64 bits of Vector Register
Reviewed-by: duke

*** 42,52 **** class RegisterImpl: public AbstractRegisterImpl { public: enum { number_of_registers = 32, number_of_byte_registers = 32, ! number_of_registers_for_jvmci = 34 // Including SP and ZR. }; // derived registers, offsets, and addresses Register successor() const { return as_Register(encoding() + 1); } --- 42,53 ---- class RegisterImpl: public AbstractRegisterImpl { public: enum { number_of_registers = 32, number_of_byte_registers = 32, ! number_of_registers_for_jvmci = 34, // Including SP and ZR. ! max_slots_per_register = 2 }; // derived registers, offsets, and addresses Register successor() const { return as_Register(encoding() + 1); }
*** 125,135 **** // The implementation of floating point registers for the architecture class FloatRegisterImpl: public AbstractRegisterImpl { public: enum { ! number_of_registers = 32 }; // construction inline friend FloatRegister as_FloatRegister(int encoding); --- 126,137 ---- // The implementation of floating point registers for the architecture class FloatRegisterImpl: public AbstractRegisterImpl { public: enum { ! number_of_registers = 32, ! max_slots_per_register = 4 }; // construction inline friend FloatRegister as_FloatRegister(int encoding);
*** 191,202 **** // A big enough number for C2: all the registers plus flags // This number must be large enough to cover REG_COUNT (defined by c2) registers. // There is no requirement that any ordering here matches any ordering c2 gives // it's optoregs. ! number_of_registers = (2 * RegisterImpl::number_of_registers + ! 4 * FloatRegisterImpl::number_of_registers + 1) // flags }; // added to make it compile static const int max_gpr; --- 193,204 ---- // A big enough number for C2: all the registers plus flags // This number must be large enough to cover REG_COUNT (defined by c2) registers. // There is no requirement that any ordering here matches any ordering c2 gives // it's optoregs. ! number_of_registers = (RegisterImpl::max_slots_per_register * RegisterImpl::number_of_registers + ! FloatRegisterImpl::max_slots_per_register * FloatRegisterImpl::number_of_registers + 1) // flags }; // added to make it compile static const int max_gpr;
< prev index next >