< prev index next >

src/hotspot/cpu/aarch64/register_aarch64.hpp

Print this page




 119 class FloatRegisterImpl;
 120 typedef FloatRegisterImpl* FloatRegister;
 121 
 122 inline FloatRegister as_FloatRegister(int encoding) {
 123   return (FloatRegister)(intptr_t) encoding;
 124 }
 125 
 126 // The implementation of floating point registers for the architecture
 127 class FloatRegisterImpl: public AbstractRegisterImpl {
 128  public:
 129   enum {
 130     number_of_registers = 32
 131   };
 132 
 133   // construction
 134   inline friend FloatRegister as_FloatRegister(int encoding);
 135 
 136   VMReg as_VMReg();
 137 
 138   // derived registers, offsets, and addresses
 139   FloatRegister successor() const                          { return as_FloatRegister((encoding() + 1) % 32); }
 140 
 141   // accessors
 142   int   encoding() const                          { assert(is_valid(), "invalid register"); return (intptr_t)this; }
 143   int   encoding_nocheck() const                         { return (intptr_t)this; }
 144   bool  is_valid() const                          { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
 145   const char* name() const;
 146 
 147 };
 148 
 149 // The float registers of the AARCH64 architecture
 150 
 151 CONSTANT_REGISTER_DECLARATION(FloatRegister, fnoreg , (-1));
 152 
 153 CONSTANT_REGISTER_DECLARATION(FloatRegister, v0     , ( 0));
 154 CONSTANT_REGISTER_DECLARATION(FloatRegister, v1     , ( 1));
 155 CONSTANT_REGISTER_DECLARATION(FloatRegister, v2     , ( 2));
 156 CONSTANT_REGISTER_DECLARATION(FloatRegister, v3     , ( 3));
 157 CONSTANT_REGISTER_DECLARATION(FloatRegister, v4     , ( 4));
 158 CONSTANT_REGISTER_DECLARATION(FloatRegister, v5     , ( 5));
 159 CONSTANT_REGISTER_DECLARATION(FloatRegister, v6     , ( 6));




 119 class FloatRegisterImpl;
 120 typedef FloatRegisterImpl* FloatRegister;
 121 
 122 inline FloatRegister as_FloatRegister(int encoding) {
 123   return (FloatRegister)(intptr_t) encoding;
 124 }
 125 
 126 // The implementation of floating point registers for the architecture
 127 class FloatRegisterImpl: public AbstractRegisterImpl {
 128  public:
 129   enum {
 130     number_of_registers = 32
 131   };
 132 
 133   // construction
 134   inline friend FloatRegister as_FloatRegister(int encoding);
 135 
 136   VMReg as_VMReg();
 137 
 138   // derived registers, offsets, and addresses
 139   FloatRegister successor() const                          { return as_FloatRegister(encoding() + 1); }
 140 
 141   // accessors
 142   int   encoding() const                          { assert(is_valid(), "invalid register"); return (intptr_t)this; }
 143   int   encoding_nocheck() const                         { return (intptr_t)this; }
 144   bool  is_valid() const                          { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
 145   const char* name() const;
 146 
 147 };
 148 
 149 // The float registers of the AARCH64 architecture
 150 
 151 CONSTANT_REGISTER_DECLARATION(FloatRegister, fnoreg , (-1));
 152 
 153 CONSTANT_REGISTER_DECLARATION(FloatRegister, v0     , ( 0));
 154 CONSTANT_REGISTER_DECLARATION(FloatRegister, v1     , ( 1));
 155 CONSTANT_REGISTER_DECLARATION(FloatRegister, v2     , ( 2));
 156 CONSTANT_REGISTER_DECLARATION(FloatRegister, v3     , ( 3));
 157 CONSTANT_REGISTER_DECLARATION(FloatRegister, v4     , ( 4));
 158 CONSTANT_REGISTER_DECLARATION(FloatRegister, v5     , ( 5));
 159 CONSTANT_REGISTER_DECLARATION(FloatRegister, v6     , ( 6));


< prev index next >