Skip to content

Commit 5ce46d9

Browse files
author
Paul Hohensee
committed
8248403: AArch64: Remove uses of kernel integer types
Reviewed-by: stuefe Backport-of: 6a91c73
1 parent 3db0637 commit 5ce46d9

File tree

7 files changed

+104
-103
lines changed

7 files changed

+104
-103
lines changed

src/hotspot/cpu/aarch64/aarch64.ad

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2968,7 +2968,7 @@ encode %{
29682968

29692969
enc_class aarch64_enc_movw_imm(iRegI dst, immI src) %{
29702970
MacroAssembler _masm(&cbuf);
2971-
u_int32_t con = (u_int32_t)$src$$constant;
2971+
uint32_t con = (uint32_t)$src$$constant;
29722972
Register dst_reg = as_Register($dst$$reg);
29732973
if (con == 0) {
29742974
__ movw(dst_reg, zr);
@@ -2980,7 +2980,7 @@ encode %{
29802980
enc_class aarch64_enc_mov_imm(iRegL dst, immL src) %{
29812981
MacroAssembler _masm(&cbuf);
29822982
Register dst_reg = as_Register($dst$$reg);
2983-
u_int64_t con = (u_int64_t)$src$$constant;
2983+
uint64_t con = (uint64_t)$src$$constant;
29842984
if (con == 0) {
29852985
__ mov(dst_reg, zr);
29862986
} else {
@@ -3022,7 +3022,7 @@ encode %{
30223022
enc_class aarch64_enc_mov_p1(iRegP dst, immP_1 src) %{
30233023
MacroAssembler _masm(&cbuf);
30243024
Register dst_reg = as_Register($dst$$reg);
3025-
__ mov(dst_reg, (u_int64_t)1);
3025+
__ mov(dst_reg, (uint64_t)1);
30263026
%}
30273027

30283028
enc_class aarch64_enc_mov_poll_page(iRegP dst, immPollPage src) %{
@@ -3156,7 +3156,7 @@ encode %{
31563156
enc_class aarch64_enc_cmpw_imm(iRegI src1, immI src2) %{
31573157
MacroAssembler _masm(&cbuf);
31583158
Register reg1 = as_Register($src1$$reg);
3159-
u_int32_t val = (u_int32_t)$src2$$constant;
3159+
uint32_t val = (uint32_t)$src2$$constant;
31603160
__ movw(rscratch1, val);
31613161
__ cmpw(reg1, rscratch1);
31623162
%}
@@ -3178,15 +3178,15 @@ encode %{
31783178
__ adds(zr, reg, -val);
31793179
} else {
31803180
// aargh, Long.MIN_VALUE is a special case
3181-
__ orr(rscratch1, zr, (u_int64_t)val);
3181+
__ orr(rscratch1, zr, (uint64_t)val);
31823182
__ subs(zr, reg, rscratch1);
31833183
}
31843184
%}
31853185

31863186
enc_class aarch64_enc_cmp_imm(iRegL src1, immL src2) %{
31873187
MacroAssembler _masm(&cbuf);
31883188
Register reg1 = as_Register($src1$$reg);
3189-
u_int64_t val = (u_int64_t)$src2$$constant;
3189+
uint64_t val = (uint64_t)$src2$$constant;
31903190
__ mov(rscratch1, val);
31913191
__ cmp(reg1, rscratch1);
31923192
%}
@@ -13444,16 +13444,16 @@ instruct clearArray_reg_reg(iRegL_R11 cnt, iRegP_R10 base, Universe dummy, rFlag
1344413444

1344513445
instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, Universe dummy, rFlagsReg cr)
1344613446
%{
13447-
predicate((u_int64_t)n->in(2)->get_long()
13448-
< (u_int64_t)(BlockZeroingLowLimit >> LogBytesPerWord));
13447+
predicate((uint64_t)n->in(2)->get_long()
13448+
< (uint64_t)(BlockZeroingLowLimit >> LogBytesPerWord));
1344913449
match(Set dummy (ClearArray cnt base));
1345013450
effect(USE_KILL base);
1345113451

1345213452
ins_cost(4 * INSN_COST);
1345313453
format %{ "ClearArray $cnt, $base" %}
1345413454

1345513455
ins_encode %{
13456-
__ zero_words($base$$Register, (u_int64_t)$cnt$$constant);
13456+
__ zero_words($base$$Register, (uint64_t)$cnt$$constant);
1345713457
%}
1345813458

1345913459
ins_pipe(pipe_class_memory);

src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2042,7 +2042,7 @@ void LIR_Assembler::comp_fl2i(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Op
20422042
} else if (code == lir_cmp_l2i) {
20432043
Label done;
20442044
__ cmp(left->as_register_lo(), right->as_register_lo());
2045-
__ mov(dst->as_register(), (u_int64_t)-1L);
2045+
__ mov(dst->as_register(), (uint64_t)-1L);
20462046
__ br(Assembler::LT, done);
20472047
__ csinc(dst->as_register(), zr, zr, Assembler::EQ);
20482048
__ bind(done);

src/hotspot/cpu/aarch64/immediate_aarch64.cpp

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
*/
2424

2525
#include <stdlib.h>
26+
#include <stdint.h>
2627
#include "immediate_aarch64.hpp"
2728

2829
// there are at most 2^13 possible logical immediate encodings
@@ -34,14 +35,14 @@ static int li_table_entry_count;
3435
// for forward lookup we just use a direct array lookup
3536
// and assume that the cient has supplied a valid encoding
3637
// table[encoding] = immediate
37-
static u_int64_t LITable[LI_TABLE_SIZE];
38+
static uint64_t LITable[LI_TABLE_SIZE];
3839

3940
// for reverse lookup we need a sparse map so we store a table of
4041
// immediate and encoding pairs sorted by immediate value
4142

4243
struct li_pair {
43-
u_int64_t immediate;
44-
u_int32_t encoding;
44+
uint64_t immediate;
45+
uint32_t encoding;
4546
};
4647

4748
static struct li_pair InverseLITable[LI_TABLE_SIZE];
@@ -63,71 +64,71 @@ int compare_immediate_pair(const void *i1, const void *i2)
6364
// helper functions used by expandLogicalImmediate
6465

6566
// for i = 1, ... N result<i-1> = 1 other bits are zero
66-
static inline u_int64_t ones(int N)
67+
static inline uint64_t ones(int N)
6768
{
68-
return (N == 64 ? (u_int64_t)-1UL : ((1UL << N) - 1));
69+
return (N == 64 ? (uint64_t)-1UL : ((1UL << N) - 1));
6970
}
7071

7172
/*
7273
* bit twiddling helpers for instruction decode
7374
*/
7475

7576
// 32 bit mask with bits [hi,...,lo] set
76-
static inline u_int32_t mask32(int hi = 31, int lo = 0)
77+
static inline uint32_t mask32(int hi = 31, int lo = 0)
7778
{
7879
int nbits = (hi + 1) - lo;
7980
return ((1 << nbits) - 1) << lo;
8081
}
8182

82-
static inline u_int64_t mask64(int hi = 63, int lo = 0)
83+
static inline uint64_t mask64(int hi = 63, int lo = 0)
8384
{
8485
int nbits = (hi + 1) - lo;
8586
return ((1L << nbits) - 1) << lo;
8687
}
8788

8889
// pick bits [hi,...,lo] from val
89-
static inline u_int32_t pick32(u_int32_t val, int hi = 31, int lo = 0)
90+
static inline uint32_t pick32(uint32_t val, int hi = 31, int lo = 0)
9091
{
9192
return (val & mask32(hi, lo));
9293
}
9394

9495
// pick bits [hi,...,lo] from val
95-
static inline u_int64_t pick64(u_int64_t val, int hi = 31, int lo = 0)
96+
static inline uint64_t pick64(uint64_t val, int hi = 31, int lo = 0)
9697
{
9798
return (val & mask64(hi, lo));
9899
}
99100

100101
// mask [hi,lo] and shift down to start at bit 0
101-
static inline u_int32_t pickbits32(u_int32_t val, int hi = 31, int lo = 0)
102+
static inline uint32_t pickbits32(uint32_t val, int hi = 31, int lo = 0)
102103
{
103104
return (pick32(val, hi, lo) >> lo);
104105
}
105106

106107
// mask [hi,lo] and shift down to start at bit 0
107-
static inline u_int64_t pickbits64(u_int64_t val, int hi = 63, int lo = 0)
108+
static inline uint64_t pickbits64(uint64_t val, int hi = 63, int lo = 0)
108109
{
109110
return (pick64(val, hi, lo) >> lo);
110111
}
111112

112113
// result<0> to val<N>
113-
static inline u_int64_t pickbit(u_int64_t val, int N)
114+
static inline uint64_t pickbit(uint64_t val, int N)
114115
{
115116
return pickbits64(val, N, N);
116117
}
117118

118-
static inline u_int32_t uimm(u_int32_t val, int hi, int lo)
119+
static inline uint32_t uimm(uint32_t val, int hi, int lo)
119120
{
120121
return pickbits32(val, hi, lo);
121122
}
122123

123124
// SPEC bits(M*N) Replicate(bits(M) x, integer N);
124125
// this is just an educated guess
125126

126-
u_int64_t replicate(u_int64_t bits, int nbits, int count)
127+
uint64_t replicate(uint64_t bits, int nbits, int count)
127128
{
128-
u_int64_t result = 0;
129+
uint64_t result = 0;
129130
// nbits may be 64 in which case we want mask to be -1
130-
u_int64_t mask = ones(nbits);
131+
uint64_t mask = ones(nbits);
131132
for (int i = 0; i < count ; i++) {
132133
result <<= nbits;
133134
result |= (bits & mask);
@@ -140,24 +141,24 @@ u_int64_t replicate(u_int64_t bits, int nbits, int count)
140141
// encoding must be treated as an UNALLOC instruction
141142

142143
// construct a 32 bit immediate value for a logical immediate operation
143-
int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
144-
u_int32_t imms, u_int64_t &bimm)
144+
int expandLogicalImmediate(uint32_t immN, uint32_t immr,
145+
uint32_t imms, uint64_t &bimm)
145146
{
146-
int len; // ought to be <= 6
147-
u_int32_t levels; // 6 bits
148-
u_int32_t tmask_and; // 6 bits
149-
u_int32_t wmask_and; // 6 bits
150-
u_int32_t tmask_or; // 6 bits
151-
u_int32_t wmask_or; // 6 bits
152-
u_int64_t imm64; // 64 bits
153-
u_int64_t tmask, wmask; // 64 bits
154-
u_int32_t S, R, diff; // 6 bits?
147+
int len; // ought to be <= 6
148+
uint32_t levels; // 6 bits
149+
uint32_t tmask_and; // 6 bits
150+
uint32_t wmask_and; // 6 bits
151+
uint32_t tmask_or; // 6 bits
152+
uint32_t wmask_or; // 6 bits
153+
uint64_t imm64; // 64 bits
154+
uint64_t tmask, wmask; // 64 bits
155+
uint32_t S, R, diff; // 6 bits?
155156

156157
if (immN == 1) {
157158
len = 6; // looks like 7 given the spec above but this cannot be!
158159
} else {
159160
len = 0;
160-
u_int32_t val = (~imms & 0x3f);
161+
uint32_t val = (~imms & 0x3f);
161162
for (int i = 5; i > 0; i--) {
162163
if (val & (1 << i)) {
163164
len = i;
@@ -170,7 +171,7 @@ int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
170171
// for valid inputs leading 1s in immr must be less than leading
171172
// zeros in imms
172173
int len2 = 0; // ought to be < len
173-
u_int32_t val2 = (~immr & 0x3f);
174+
uint32_t val2 = (~immr & 0x3f);
174175
for (int i = 5; i > 0; i--) {
175176
if (!(val2 & (1 << i))) {
176177
len2 = i;
@@ -199,12 +200,12 @@ int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
199200

200201
for (int i = 0; i < 6; i++) {
201202
int nbits = 1 << i;
202-
u_int64_t and_bit = pickbit(tmask_and, i);
203-
u_int64_t or_bit = pickbit(tmask_or, i);
204-
u_int64_t and_bits_sub = replicate(and_bit, 1, nbits);
205-
u_int64_t or_bits_sub = replicate(or_bit, 1, nbits);
206-
u_int64_t and_bits_top = (and_bits_sub << nbits) | ones(nbits);
207-
u_int64_t or_bits_top = (0 << nbits) | or_bits_sub;
203+
uint64_t and_bit = pickbit(tmask_and, i);
204+
uint64_t or_bit = pickbit(tmask_or, i);
205+
uint64_t and_bits_sub = replicate(and_bit, 1, nbits);
206+
uint64_t or_bits_sub = replicate(or_bit, 1, nbits);
207+
uint64_t and_bits_top = (and_bits_sub << nbits) | ones(nbits);
208+
uint64_t or_bits_top = (0 << nbits) | or_bits_sub;
208209

209210
tmask = ((tmask
210211
& (replicate(and_bits_top, 2 * nbits, 32 / nbits)))
@@ -218,12 +219,12 @@ int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
218219

219220
for (int i = 0; i < 6; i++) {
220221
int nbits = 1 << i;
221-
u_int64_t and_bit = pickbit(wmask_and, i);
222-
u_int64_t or_bit = pickbit(wmask_or, i);
223-
u_int64_t and_bits_sub = replicate(and_bit, 1, nbits);
224-
u_int64_t or_bits_sub = replicate(or_bit, 1, nbits);
225-
u_int64_t and_bits_top = (ones(nbits) << nbits) | and_bits_sub;
226-
u_int64_t or_bits_top = (or_bits_sub << nbits) | 0;
222+
uint64_t and_bit = pickbit(wmask_and, i);
223+
uint64_t or_bit = pickbit(wmask_or, i);
224+
uint64_t and_bits_sub = replicate(and_bit, 1, nbits);
225+
uint64_t or_bits_sub = replicate(or_bit, 1, nbits);
226+
uint64_t and_bits_top = (ones(nbits) << nbits) | and_bits_sub;
227+
uint64_t or_bits_top = (or_bits_sub << nbits) | 0;
227228

228229
wmask = ((wmask
229230
& (replicate(and_bits_top, 2 * nbits, 32 / nbits)))
@@ -248,9 +249,9 @@ static void initLITables()
248249
{
249250
li_table_entry_count = 0;
250251
for (unsigned index = 0; index < LI_TABLE_SIZE; index++) {
251-
u_int32_t N = uimm(index, 12, 12);
252-
u_int32_t immr = uimm(index, 11, 6);
253-
u_int32_t imms = uimm(index, 5, 0);
252+
uint32_t N = uimm(index, 12, 12);
253+
uint32_t immr = uimm(index, 11, 6);
254+
uint32_t imms = uimm(index, 5, 0);
254255
if (expandLogicalImmediate(N, immr, imms, LITable[index])) {
255256
InverseLITable[li_table_entry_count].immediate = LITable[index];
256257
InverseLITable[li_table_entry_count].encoding = index;
@@ -264,12 +265,12 @@ static void initLITables()
264265

265266
// public APIs provided for logical immediate lookup and reverse lookup
266267

267-
u_int64_t logical_immediate_for_encoding(u_int32_t encoding)
268+
uint64_t logical_immediate_for_encoding(uint32_t encoding)
268269
{
269270
return LITable[encoding];
270271
}
271272

272-
u_int32_t encoding_for_logical_immediate(u_int64_t immediate)
273+
uint32_t encoding_for_logical_immediate(uint64_t immediate)
273274
{
274275
struct li_pair pair;
275276
struct li_pair *result;
@@ -293,15 +294,15 @@ u_int32_t encoding_for_logical_immediate(u_int64_t immediate)
293294
// fpimm[3:0] = fraction (assuming leading 1)
294295
// i.e. F = s * 1.f * 2^(e - b)
295296

296-
u_int64_t fp_immediate_for_encoding(u_int32_t imm8, int is_dp)
297+
uint64_t fp_immediate_for_encoding(uint32_t imm8, int is_dp)
297298
{
298299
union {
299300
float fpval;
300301
double dpval;
301-
u_int64_t val;
302+
uint64_t val;
302303
};
303304

304-
u_int32_t s, e, f;
305+
uint32_t s, e, f;
305306
s = (imm8 >> 7 ) & 0x1;
306307
e = (imm8 >> 4) & 0x7;
307308
f = imm8 & 0xf;
@@ -329,7 +330,7 @@ u_int64_t fp_immediate_for_encoding(u_int32_t imm8, int is_dp)
329330
return val;
330331
}
331332

332-
u_int32_t encoding_for_fp_immediate(float immediate)
333+
uint32_t encoding_for_fp_immediate(float immediate)
333334
{
334335
// given a float which is of the form
335336
//
@@ -341,10 +342,10 @@ u_int32_t encoding_for_fp_immediate(float immediate)
341342

342343
union {
343344
float fpval;
344-
u_int32_t val;
345+
uint32_t val;
345346
};
346347
fpval = immediate;
347-
u_int32_t s, r, f, res;
348+
uint32_t s, r, f, res;
348349
// sign bit is 31
349350
s = (val >> 31) & 0x1;
350351
// exponent is bits 30-23 but we only want the bottom 3 bits

src/hotspot/cpu/aarch64/immediate_aarch64.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
* encoding then a map lookup will return 0xffffffff.
4747
*/
4848

49-
u_int64_t logical_immediate_for_encoding(u_int32_t encoding);
50-
u_int32_t encoding_for_logical_immediate(u_int64_t immediate);
51-
u_int64_t fp_immediate_for_encoding(u_int32_t imm8, int is_dp);
52-
u_int32_t encoding_for_fp_immediate(float immediate);
49+
uint64_t logical_immediate_for_encoding(uint32_t encoding);
50+
uint32_t encoding_for_logical_immediate(uint64_t immediate);
51+
uint64_t fp_immediate_for_encoding(uint32_t imm8, int is_dp);
52+
uint32_t encoding_for_fp_immediate(float immediate);
5353

5454
#endif // _IMMEDIATE_H

0 commit comments

Comments
 (0)