< prev index next >

src/hotspot/cpu/aarch64/register_aarch64.hpp

Print this page
8248238: Adding Windows support to OpenJDK on AArch64

Summary: LP64 vs LLP64 changes to add Windows support

Contributed-by: Monica Beckwith <monica.beckwith@microsoft.com>, Ludovic Henry <luhenry@microsoft.com>
Reviewed-by:


  48     max_slots_per_register = 2
  49   };
  50 
  51   // derived registers, offsets, and addresses
  52   Register successor() const                          { return as_Register(encoding() + 1); }
  53 
  54   // construction
  55   inline friend Register as_Register(int encoding);
  56 
  57   VMReg as_VMReg();
  58 
  59   // accessors
  60   int   encoding() const                         { assert(is_valid(), "invalid register"); return (intptr_t)this; }
  61   bool  is_valid() const                         { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
  62   bool  has_byte_register() const                { return 0 <= (intptr_t)this && (intptr_t)this < number_of_byte_registers; }
  63   const char* name() const;
  64   int   encoding_nocheck() const                 { return (intptr_t)this; }
  65 
  66   // Return the bit which represents this register.  This is intended
  67   // to be ORed into a bitmask: for usage see class RegSet below.
  68   unsigned long bit(bool should_set = true) const { return should_set ? 1 << encoding() : 0; }
  69 };
  70 
  71 // The integer registers of the aarch64 architecture
  72 
  73 CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1));
  74 
  75 
  76 CONSTANT_REGISTER_DECLARATION(Register, r0,    (0));
  77 CONSTANT_REGISTER_DECLARATION(Register, r1,    (1));
  78 CONSTANT_REGISTER_DECLARATION(Register, r2,    (2));
  79 CONSTANT_REGISTER_DECLARATION(Register, r3,    (3));
  80 CONSTANT_REGISTER_DECLARATION(Register, r4,    (4));
  81 CONSTANT_REGISTER_DECLARATION(Register, r5,    (5));
  82 CONSTANT_REGISTER_DECLARATION(Register, r6,    (6));
  83 CONSTANT_REGISTER_DECLARATION(Register, r7,    (7));
  84 CONSTANT_REGISTER_DECLARATION(Register, r8,    (8));
  85 CONSTANT_REGISTER_DECLARATION(Register, r9,    (9));
  86 CONSTANT_REGISTER_DECLARATION(Register, r10,  (10));
  87 CONSTANT_REGISTER_DECLARATION(Register, r11,  (11));
  88 CONSTANT_REGISTER_DECLARATION(Register, r12,  (12));




  48     max_slots_per_register = 2
  49   };
  50 
  51   // derived registers, offsets, and addresses
  52   Register successor() const                          { return as_Register(encoding() + 1); }
  53 
  54   // construction
  55   inline friend Register as_Register(int encoding);
  56 
  57   VMReg as_VMReg();
  58 
  59   // accessors
  60   int   encoding() const                         { assert(is_valid(), "invalid register"); return (intptr_t)this; }
  61   bool  is_valid() const                         { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
  62   bool  has_byte_register() const                { return 0 <= (intptr_t)this && (intptr_t)this < number_of_byte_registers; }
  63   const char* name() const;
  64   int   encoding_nocheck() const                 { return (intptr_t)this; }
  65 
  66   // Return the bit which represents this register.  This is intended
  67   // to be ORed into a bitmask: for usage see class RegSet below.
  68   uint64_t bit(bool should_set = true) const { return should_set ? 1 << encoding() : 0; }
  69 };
  70 
  71 // The integer registers of the aarch64 architecture
  72 
  73 CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1));
  74 
  75 
  76 CONSTANT_REGISTER_DECLARATION(Register, r0,    (0));
  77 CONSTANT_REGISTER_DECLARATION(Register, r1,    (1));
  78 CONSTANT_REGISTER_DECLARATION(Register, r2,    (2));
  79 CONSTANT_REGISTER_DECLARATION(Register, r3,    (3));
  80 CONSTANT_REGISTER_DECLARATION(Register, r4,    (4));
  81 CONSTANT_REGISTER_DECLARATION(Register, r5,    (5));
  82 CONSTANT_REGISTER_DECLARATION(Register, r6,    (6));
  83 CONSTANT_REGISTER_DECLARATION(Register, r7,    (7));
  84 CONSTANT_REGISTER_DECLARATION(Register, r8,    (8));
  85 CONSTANT_REGISTER_DECLARATION(Register, r9,    (9));
  86 CONSTANT_REGISTER_DECLARATION(Register, r10,  (10));
  87 CONSTANT_REGISTER_DECLARATION(Register, r11,  (11));
  88 CONSTANT_REGISTER_DECLARATION(Register, r12,  (12));


< prev index next >