hotspot/src/cpu/aarch64/vm/register_aarch64.hpp
changeset 42605 c127902170ee
parent 36562 4d1e93624d6a
equal deleted inserted replaced
42604:4665d74c6843 42605:c127902170ee
    40 }
    40 }
    41 
    41 
    42 class RegisterImpl: public AbstractRegisterImpl {
    42 class RegisterImpl: public AbstractRegisterImpl {
    43  public:
    43  public:
    44   enum {
    44   enum {
    45     number_of_registers      = 32,
    45     number_of_registers         =   32,
    46     number_of_byte_registers = 32
    46     number_of_byte_registers      = 32,
       
    47     number_of_registers_for_jvmci = 34   // Including SP and ZR.
    47   };
    48   };
    48 
    49 
    49   // derived registers, offsets, and addresses
    50   // derived registers, offsets, and addresses
    50   Register successor() const                          { return as_Register(encoding() + 1); }
    51   Register successor() const                          { return as_Register(encoding() + 1); }
    51 
    52 
   101 CONSTANT_REGISTER_DECLARATION(Register, r27,  (27));
   102 CONSTANT_REGISTER_DECLARATION(Register, r27,  (27));
   102 CONSTANT_REGISTER_DECLARATION(Register, r28,  (28));
   103 CONSTANT_REGISTER_DECLARATION(Register, r28,  (28));
   103 CONSTANT_REGISTER_DECLARATION(Register, r29,  (29));
   104 CONSTANT_REGISTER_DECLARATION(Register, r29,  (29));
   104 CONSTANT_REGISTER_DECLARATION(Register, r30,  (30));
   105 CONSTANT_REGISTER_DECLARATION(Register, r30,  (30));
   105 
   106 
       
   107 
       
   108 // r31 is not a general purpose register, but represents either the
       
   109 // stack pointer or the zero/discard register depending on the
       
   110 // instruction.
   106 CONSTANT_REGISTER_DECLARATION(Register, r31_sp, (31));
   111 CONSTANT_REGISTER_DECLARATION(Register, r31_sp, (31));
   107 CONSTANT_REGISTER_DECLARATION(Register, zr,  (32));
   112 CONSTANT_REGISTER_DECLARATION(Register, zr,  (32));
   108 CONSTANT_REGISTER_DECLARATION(Register, sp,  (33));
   113 CONSTANT_REGISTER_DECLARATION(Register, sp,  (33));
   109 
   114 
   110 // Used as a filler in instructions where a register field is unused.
   115 // Used as a filler in instructions where a register field is unused.