@@ -62,23 +62,23 @@ class Argument {
6262 };
6363};
6464
65- REGISTER_DECLARATION ( Register, c_rarg0, r0) ;
66- REGISTER_DECLARATION ( Register, c_rarg1, r1) ;
67- REGISTER_DECLARATION ( Register, c_rarg2, r2) ;
68- REGISTER_DECLARATION ( Register, c_rarg3, r3) ;
69- REGISTER_DECLARATION ( Register, c_rarg4, r4) ;
70- REGISTER_DECLARATION ( Register, c_rarg5, r5) ;
71- REGISTER_DECLARATION ( Register, c_rarg6, r6) ;
72- REGISTER_DECLARATION ( Register, c_rarg7, r7) ;
73-
74- REGISTER_DECLARATION ( FloatRegister, c_farg0, v0) ;
75- REGISTER_DECLARATION ( FloatRegister, c_farg1, v1) ;
76- REGISTER_DECLARATION ( FloatRegister, c_farg2, v2) ;
77- REGISTER_DECLARATION ( FloatRegister, c_farg3, v3) ;
78- REGISTER_DECLARATION ( FloatRegister, c_farg4, v4) ;
79- REGISTER_DECLARATION ( FloatRegister, c_farg5, v5) ;
80- REGISTER_DECLARATION ( FloatRegister, c_farg6, v6) ;
81- REGISTER_DECLARATION ( FloatRegister, c_farg7, v7) ;
65+ constexpr Register c_rarg0 = r0 ;
66+ constexpr Register c_rarg1 = r1 ;
67+ constexpr Register c_rarg2 = r2 ;
68+ constexpr Register c_rarg3 = r3 ;
69+ constexpr Register c_rarg4 = r4 ;
70+ constexpr Register c_rarg5 = r5 ;
71+ constexpr Register c_rarg6 = r6 ;
72+ constexpr Register c_rarg7 = r7 ;
73+
74+ constexpr FloatRegister c_farg0 = v0 ;
75+ constexpr FloatRegister c_farg1 = v1 ;
76+ constexpr FloatRegister c_farg2 = v2 ;
77+ constexpr FloatRegister c_farg3 = v3 ;
78+ constexpr FloatRegister c_farg4 = v4 ;
79+ constexpr FloatRegister c_farg5 = v5 ;
80+ constexpr FloatRegister c_farg6 = v6 ;
81+ constexpr FloatRegister c_farg7 = v7 ;
8282
8383// Symbolically name the register arguments used by the Java calling convention.
8484// We have control over the convention for java so we can do what we please.
@@ -96,25 +96,25 @@ REGISTER_DECLARATION(FloatRegister, c_farg7, v7);
9696// |--------------------------------------------------------------------|
9797
9898
99- REGISTER_DECLARATION ( Register, j_rarg0, c_rarg1) ;
100- REGISTER_DECLARATION ( Register, j_rarg1, c_rarg2) ;
101- REGISTER_DECLARATION ( Register, j_rarg2, c_rarg3) ;
102- REGISTER_DECLARATION ( Register, j_rarg3, c_rarg4) ;
103- REGISTER_DECLARATION ( Register, j_rarg4, c_rarg5) ;
104- REGISTER_DECLARATION ( Register, j_rarg5, c_rarg6) ;
105- REGISTER_DECLARATION ( Register, j_rarg6, c_rarg7) ;
106- REGISTER_DECLARATION ( Register, j_rarg7, c_rarg0) ;
99+ constexpr Register j_rarg0 = c_rarg1;
100+ constexpr Register j_rarg1 = c_rarg2;
101+ constexpr Register j_rarg2 = c_rarg3;
102+ constexpr Register j_rarg3 = c_rarg4;
103+ constexpr Register j_rarg4 = c_rarg5;
104+ constexpr Register j_rarg5 = c_rarg6;
105+ constexpr Register j_rarg6 = c_rarg7;
106+ constexpr Register j_rarg7 = c_rarg0;
107107
108108// Java floating args are passed as per C
109109
110- REGISTER_DECLARATION ( FloatRegister, j_farg0, v0) ;
111- REGISTER_DECLARATION ( FloatRegister, j_farg1, v1) ;
112- REGISTER_DECLARATION ( FloatRegister, j_farg2, v2) ;
113- REGISTER_DECLARATION ( FloatRegister, j_farg3, v3) ;
114- REGISTER_DECLARATION ( FloatRegister, j_farg4, v4) ;
115- REGISTER_DECLARATION ( FloatRegister, j_farg5, v5) ;
116- REGISTER_DECLARATION ( FloatRegister, j_farg6, v6) ;
117- REGISTER_DECLARATION ( FloatRegister, j_farg7, v7) ;
110+ constexpr FloatRegister j_farg0 = v0 ;
111+ constexpr FloatRegister j_farg1 = v1 ;
112+ constexpr FloatRegister j_farg2 = v2 ;
113+ constexpr FloatRegister j_farg3 = v3 ;
114+ constexpr FloatRegister j_farg4 = v4 ;
115+ constexpr FloatRegister j_farg5 = v5 ;
116+ constexpr FloatRegister j_farg6 = v6 ;
117+ constexpr FloatRegister j_farg7 = v7 ;
118118
119119// registers used to hold VM data either temporarily within a method
120120// or across method calls
@@ -123,40 +123,28 @@ REGISTER_DECLARATION(FloatRegister, j_farg7, v7);
123123
124124// r8 is used for indirect result location return
125125// we use it and r9 as scratch registers
126- REGISTER_DECLARATION ( Register, rscratch1, r8) ;
127- REGISTER_DECLARATION ( Register, rscratch2, r9) ;
126+ constexpr Register rscratch1 = r8 ;
127+ constexpr Register rscratch2 = r9 ;
128128
129129// current method -- must be in a call-clobbered register
130- REGISTER_DECLARATION ( Register, rmethod, r12) ;
130+ constexpr Register rmethod = r12;
131131
132132// non-volatile (callee-save) registers are r16-29
133133// of which the following are dedicated global state
134134
135- // link register
136- REGISTER_DECLARATION (Register, lr, r30);
137- // frame pointer
138- REGISTER_DECLARATION (Register, rfp, r29);
139- // current thread
140- REGISTER_DECLARATION (Register, rthread, r28);
141- // base of heap
142- REGISTER_DECLARATION (Register, rheapbase, r27);
143- // constant pool cache
144- REGISTER_DECLARATION (Register, rcpool, r26);
145- // r25 is a callee-saved temp
146- // REGISTER_DECLARATION(Register, unused, r25);
147- // locals on stack
148- REGISTER_DECLARATION (Register, rlocals, r24);
149- // bytecode pointer
150- REGISTER_DECLARATION (Register, rbcp, r22);
151- // Dispatch table base
152- REGISTER_DECLARATION (Register, rdispatch, r21);
153- // Java expression stack pointer
154- REGISTER_DECLARATION (Register, esp, r20);
155- // Sender's SP while in interpreter
156- REGISTER_DECLARATION (Register, r19_sender_sp, r19);
135+ constexpr Register lr = r30; // link register
136+ constexpr Register rfp = r29; // frame pointer
137+ constexpr Register rthread = r28; // current thread
138+ constexpr Register rheapbase = r27; // base of heap
139+ constexpr Register rcpool = r26; // constant pool cache
140+ constexpr Register rlocals = r24; // locals on stack
141+ constexpr Register rbcp = r22; // bytecode pointer
142+ constexpr Register rdispatch = r21; // dispatch table base
143+ constexpr Register esp = r20; // Java expression stack pointer
144+ constexpr Register r19_sender_sp = r19; // sender's SP while in interpreter
157145
158146// Preserved predicate register with all elements set TRUE.
159- REGISTER_DECLARATION ( PRegister, ptrue, p7) ;
147+ constexpr PRegister ptrue = p7 ;
160148
161149#define assert_cond (ARG1 ) assert (ARG1, #ARG1)
162150
@@ -277,29 +265,29 @@ class Instruction_aarch64 {
277265 }
278266
279267 void rf (Register r, int lsb) {
280- f (r->encoding_nocheck (), lsb + 4 , lsb);
268+ f (r->raw_encoding (), lsb + 4 , lsb);
281269 }
282270
283271 // reg|ZR
284272 void zrf (Register r, int lsb) {
285- f (r->encoding_nocheck () - (r == zr), lsb + 4 , lsb);
273+ f (r->raw_encoding () - (r == zr), lsb + 4 , lsb);
286274 }
287275
288276 // reg|SP
289277 void srf (Register r, int lsb) {
290- f (r == sp ? 31 : r->encoding_nocheck (), lsb + 4 , lsb);
278+ f (r == sp ? 31 : r->raw_encoding (), lsb + 4 , lsb);
291279 }
292280
293281 void rf (FloatRegister r, int lsb) {
294- f (r->encoding_nocheck (), lsb + 4 , lsb);
282+ f (r->raw_encoding (), lsb + 4 , lsb);
295283 }
296284
297285 void prf (PRegister r, int lsb) {
298- f (r->encoding_nocheck (), lsb + 3 , lsb);
286+ f (r->raw_encoding (), lsb + 3 , lsb);
299287 }
300288
301289 void pgrf (PRegister r, int lsb) {
302- f (r->encoding_nocheck (), lsb + 2 , lsb);
290+ f (r->raw_encoding (), lsb + 2 , lsb);
303291 }
304292
305293 unsigned get (int msb = 31 , int lsb = 0 ) {
@@ -329,7 +317,7 @@ class Post : public PrePost {
329317 Register _idx;
330318 bool _is_postreg;
331319public:
332- Post (Register reg, int o) : PrePost(reg, o) { _idx = NULL ; _is_postreg = false ; }
320+ Post (Register reg, int o) : PrePost(reg, o) { _idx = noreg ; _is_postreg = false ; }
333321 Post (Register reg, Register idx) : PrePost(reg, 0 ) { _idx = idx; _is_postreg = true ; }
334322 Register idx_reg () { return _idx; }
335323 bool is_postreg () {return _is_postreg; }
@@ -627,8 +615,7 @@ class InternalAddress: public Address {
627615 InternalAddress (address target) : Address(target, relocInfo::internal_word_type) {}
628616};
629617
630- const int FPUStateSizeInWords = FloatRegisterImpl::number_of_registers *
631- FloatRegisterImpl::save_slots_per_register;
618+ const int FPUStateSizeInWords = FloatRegister::number_of_registers * FloatRegister::save_slots_per_register;
632619
633620typedef enum {
634621 PLDL1KEEP = 0b00000 , PLDL1STRM, PLDL2KEEP, PLDL2STRM, PLDL3KEEP, PLDL3STRM,
0 commit comments