Skip to content

Commit 5b63be8

Browse files
minborgsundararajana
authored andcommittedSep 22, 2022
Convert classes into records
Reviewed-by: jvernee, sundar
1 parent b30ae8f commit 5b63be8

File tree

10 files changed

+123
-202
lines changed

10 files changed

+123
-202
lines changed
 

‎src/java.base/share/classes/jdk/internal/foreign/abi/VMStorage.java

+16-75
Original file line numberDiff line numberDiff line change
@@ -24,82 +24,23 @@
2424
*/
2525
package jdk.internal.foreign.abi;
2626

27-
import java.util.Objects;
28-
29-
public class VMStorage {
30-
/**
31-
* Type of storage. e.g. stack, or which register type (GP, FP, vector)
32-
*/
33-
private final byte type;
34-
35-
/**
36-
* The (on stack) size in bytes when type = stack, a register mask otherwise.
37-
* The register mask indicates which segments of a register are used.
38-
*/
39-
private final short segmentMaskOrSize;
40-
41-
/**
42-
* The index is either a register number within a type, or
43-
* a stack offset in bytes if type = stack.
44-
* (a particular platform might add a bias to this in generate code)
45-
*/
46-
private final int indexOrOffset;
47-
48-
private final String debugName;
49-
50-
private VMStorage(byte type, short segmentMaskOrSize, int indexOrOffset, String debugName) {
51-
this.type = type;
52-
this.segmentMaskOrSize = segmentMaskOrSize;
53-
this.indexOrOffset = indexOrOffset;
54-
this.debugName = debugName;
55-
}
56-
57-
public static VMStorage stackStorage(byte type, short size, int byteOffset) {
58-
return new VMStorage(type, size, byteOffset, "Stack@" + byteOffset);
59-
}
60-
61-
public static VMStorage regStorage(byte type, short segmentMask, int index, String debugName) {
62-
return new VMStorage(type, segmentMask, index, debugName);
63-
}
64-
65-
public byte type() {
66-
return type;
67-
}
68-
69-
public short segmentMaskOrSize() {
70-
return segmentMaskOrSize;
71-
}
72-
73-
public int indexOrOffset() {
74-
return indexOrOffset;
75-
}
76-
77-
public String name() {
78-
return debugName;
79-
}
80-
81-
@Override
82-
public boolean equals(Object o) {
83-
if (this == o) return true;
84-
return (o instanceof VMStorage vmStorage)
85-
&& type == vmStorage.type
86-
&& segmentMaskOrSize == vmStorage.segmentMaskOrSize
87-
&& indexOrOffset == vmStorage.indexOrOffset
88-
&& Objects.equals(debugName, vmStorage.debugName);
89-
}
27+
/**
28+
*
29+
* @param type the type of storage. e.g. stack, or which register type (GP, FP, vector)
30+
* @param segmentMaskOrSize the (on stack) size in bytes when type = stack, a register mask otherwise,
31+
* the register mask indicates which segments of a register are used.
32+
* @param indexOrOffset the index is either a register number within a type, or
33+
* a stack offset in bytes if type = stack.
34+
* (a particular platform might add a bias to this in generate code)
35+
* @param debugName the debug name
36+
*/
37+
public record VMStorage(byte type,
38+
short segmentMaskOrSize,
39+
int indexOrOffset,
40+
String debugName) {
9041

91-
@Override
92-
public int hashCode() {
93-
return Objects.hash(type, segmentMaskOrSize, indexOrOffset, debugName);
42+
public VMStorage(byte type, short segmentMaskOrSize, int indexOrOffset) {
43+
this(type, segmentMaskOrSize, indexOrOffset, "Stack@" + indexOrOffset);
9444
}
9545

96-
@Override
97-
public String toString() {
98-
return "VMStorage{" +
99-
"type=" + type +
100-
", segmentMaskOrSize=" + segmentMaskOrSize +
101-
", indexOrOffset=" + indexOrOffset +
102-
", debugName='" + debugName + '\'' +
103-
'}';
104-
}
10546
}

‎src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/AArch64Architecture.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,15 @@ public static class Regs { // break circular dependency
129129
}
130130

131131
private static VMStorage integerRegister(int index) {
132-
return VMStorage.regStorage(StorageClasses.INTEGER, REG64_MASK, index, "r" + index);
132+
return new VMStorage(StorageClasses.INTEGER, REG64_MASK, index, "r" + index);
133133
}
134134

135135
private static VMStorage vectorRegister(int index) {
136-
return VMStorage.regStorage(StorageClasses.VECTOR, V128_MASK, index, "v" + index);
136+
return new VMStorage(StorageClasses.VECTOR, V128_MASK, index, "v" + index);
137137
}
138138

139139
public static VMStorage stackStorage(short size, int byteOffset) {
140-
return VMStorage.stackStorage(StorageClasses.STACK, size, byteOffset);
140+
return new VMStorage(StorageClasses.STACK, size, byteOffset);
141141
}
142142

143143
public static ABIDescriptor abiFor(VMStorage[] inputIntRegs,

‎src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/CallArranger.java

+2-9
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,8 @@ public abstract class CallArranger {
9292
r10 // return buffer addr reg
9393
);
9494

95-
// record
96-
public static class Bindings {
97-
public final CallingSequence callingSequence;
98-
public final boolean isInMemoryReturn;
99-
100-
Bindings(CallingSequence callingSequence, boolean isInMemoryReturn) {
101-
this.callingSequence = callingSequence;
102-
this.isInMemoryReturn = isInMemoryReturn;
103-
}
95+
public record Bindings(CallingSequence callingSequence,
96+
boolean isInMemoryReturn) {
10497
}
10598

10699
public static final CallArranger LINUX = new LinuxAArch64CallArranger();

‎src/java.base/share/classes/jdk/internal/foreign/abi/x64/X86_64Architecture.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -124,19 +124,19 @@ public static class Regs { // break circular dependency
124124
}
125125

126126
private static VMStorage integerRegister(int index, String debugName) {
127-
return VMStorage.regStorage(StorageClasses.INTEGER, REG64_MASK, index, debugName);
127+
return new VMStorage(StorageClasses.INTEGER, REG64_MASK, index, debugName);
128128
}
129129

130130
private static VMStorage vectorRegister(int index, String debugName) {
131-
return VMStorage.regStorage(StorageClasses.VECTOR, XMM_MASK, index, debugName);
131+
return new VMStorage(StorageClasses.VECTOR, XMM_MASK, index, debugName);
132132
}
133133

134134
public static VMStorage stackStorage(short size, int byteOffset) {
135-
return VMStorage.stackStorage(StorageClasses.STACK, size, byteOffset);
135+
return new VMStorage(StorageClasses.STACK, size, byteOffset);
136136
}
137137

138138
public static VMStorage x87Storage(int index) {
139-
return VMStorage.regStorage(StorageClasses.X87, STP_MASK, index, "X87(" + index + ")");
139+
return new VMStorage(StorageClasses.X87, STP_MASK, index, "X87(" + index + ")");
140140
}
141141

142142
public static ABIDescriptor abiFor(VMStorage[] inputIntRegs, VMStorage[] inputVectorRegs, VMStorage[] outputIntRegs,

‎src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/CallArranger.java

+4-11
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,10 @@ public class CallArranger {
7777
r11 // ret buf addr reg
7878
);
7979

80-
// record
81-
public static class Bindings {
82-
public final CallingSequence callingSequence;
83-
public final boolean isInMemoryReturn;
84-
public final int nVectorArgs;
85-
86-
Bindings(CallingSequence callingSequence, boolean isInMemoryReturn, int nVectorArgs) {
87-
this.callingSequence = callingSequence;
88-
this.isInMemoryReturn = isInMemoryReturn;
89-
this.nVectorArgs = nVectorArgs;
90-
}
80+
public record Bindings(
81+
CallingSequence callingSequence,
82+
boolean isInMemoryReturn,
83+
int nVectorArgs) {
9184
}
9285

9386
public static Bindings getBindings(MethodType mt, FunctionDescriptor cDesc, boolean forUpcall) {

‎src/java.base/share/classes/jdk/internal/foreign/abi/x64/windows/CallArranger.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,9 @@ public class CallArranger {
7373
r11 // ret buf addr reg
7474
);
7575

76-
// record
77-
public static class Bindings {
78-
public final CallingSequence callingSequence;
79-
public final boolean isInMemoryReturn;
80-
81-
Bindings(CallingSequence callingSequence, boolean isInMemoryReturn) {
82-
this.callingSequence = callingSequence;
83-
this.isInMemoryReturn = isInMemoryReturn;
84-
}
76+
public record Bindings(
77+
CallingSequence callingSequence,
78+
boolean isInMemoryReturn) {
8579
}
8680

8781
public static Bindings getBindings(MethodType mt, FunctionDescriptor cDesc, boolean forUpcall) {

‎src/java.base/share/classes/jdk/internal/foreign/abi/x64/windows/TypeClass.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ enum TypeClass {
3838
VARARG_FLOAT;
3939

4040
private static TypeClass classifyValueType(ValueLayout type, boolean isVararg) {
41-
// No 128 bit integers in the Windows C ABI. There are __m128(i|d) intrinsic types but they act just
41+
// No 128-bit integers in the Windows C ABI. There are __m128(i|d) intrinsic types but they act just
4242
// like a struct when passing as an argument (passed by pointer).
4343
// https://docs.microsoft.com/en-us/cpp/cpp/m128?view=vs-2019
4444

‎test/jdk/java/foreign/callarranger/TestAarch64CallArranger.java

+24-24
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ public void testEmpty() {
6262
FunctionDescriptor fd = FunctionDescriptor.ofVoid();
6363
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
6464

65-
assertFalse(bindings.isInMemoryReturn);
66-
CallingSequence callingSequence = bindings.callingSequence;
65+
assertFalse(bindings.isInMemoryReturn());
66+
CallingSequence callingSequence = bindings.callingSequence();
6767
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
6868
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
6969

@@ -86,8 +86,8 @@ public void testInteger() {
8686
C_INT, C_INT);
8787
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
8888

89-
assertFalse(bindings.isInMemoryReturn);
90-
CallingSequence callingSequence = bindings.callingSequence;
89+
assertFalse(bindings.isInMemoryReturn());
90+
CallingSequence callingSequence = bindings.callingSequence();
9191
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
9292
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
9393

@@ -116,8 +116,8 @@ public void testTwoIntTwoFloat() {
116116
C_INT, C_INT, C_FLOAT, C_FLOAT);
117117
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
118118

119-
assertFalse(bindings.isInMemoryReturn);
120-
CallingSequence callingSequence = bindings.callingSequence;
119+
assertFalse(bindings.isInMemoryReturn());
120+
CallingSequence callingSequence = bindings.callingSequence();
121121
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
122122
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
123123

@@ -138,8 +138,8 @@ public void testStruct(MemoryLayout struct, Binding[] expectedBindings) {
138138
FunctionDescriptor fd = FunctionDescriptor.ofVoid(struct);
139139
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
140140

141-
assertFalse(bindings.isInMemoryReturn);
142-
CallingSequence callingSequence = bindings.callingSequence;
141+
assertFalse(bindings.isInMemoryReturn());
142+
CallingSequence callingSequence = bindings.callingSequence();
143143
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
144144
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
145145

@@ -198,8 +198,8 @@ public void testMultipleStructs() {
198198
FunctionDescriptor fd = FunctionDescriptor.ofVoid(struct1, struct2, C_INT);
199199
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
200200

201-
assertFalse(bindings.isInMemoryReturn);
202-
CallingSequence callingSequence = bindings.callingSequence;
201+
assertFalse(bindings.isInMemoryReturn());
202+
CallingSequence callingSequence = bindings.callingSequence();
203203
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
204204
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
205205

@@ -229,8 +229,8 @@ public void testReturnStruct1() {
229229
FunctionDescriptor fd = FunctionDescriptor.of(struct);
230230
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
231231

232-
assertTrue(bindings.isInMemoryReturn);
233-
CallingSequence callingSequence = bindings.callingSequence;
232+
assertTrue(bindings.isInMemoryReturn());
233+
CallingSequence callingSequence = bindings.callingSequence();
234234
assertEquals(callingSequence.callerMethodType(), MethodType.methodType(void.class, MemorySegment.class, MemorySegment.class));
235235
assertEquals(callingSequence.functionDesc(), FunctionDescriptor.ofVoid(ADDRESS, C_POINTER));
236236

@@ -253,8 +253,8 @@ public void testReturnStruct2() {
253253
FunctionDescriptor fd = FunctionDescriptor.of(struct);
254254
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
255255

256-
assertFalse(bindings.isInMemoryReturn);
257-
CallingSequence callingSequence = bindings.callingSequence;
256+
assertFalse(bindings.isInMemoryReturn());
257+
CallingSequence callingSequence = bindings.callingSequence();
258258
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class, MemorySegment.class));
259259
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS, ADDRESS));
260260

@@ -282,8 +282,8 @@ public void testStructHFA1() {
282282
FunctionDescriptor fd = FunctionDescriptor.of(hfa, C_FLOAT, C_INT, hfa);
283283
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
284284

285-
assertFalse(bindings.isInMemoryReturn);
286-
CallingSequence callingSequence = bindings.callingSequence;
285+
assertFalse(bindings.isInMemoryReturn());
286+
CallingSequence callingSequence = bindings.callingSequence();
287287
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class, MemorySegment.class));
288288
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS, ADDRESS));
289289

@@ -320,8 +320,8 @@ public void testStructHFA3() {
320320
FunctionDescriptor fd = FunctionDescriptor.ofVoid(struct, struct, struct);
321321
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
322322

323-
assertFalse(bindings.isInMemoryReturn);
324-
CallingSequence callingSequence = bindings.callingSequence;
323+
assertFalse(bindings.isInMemoryReturn());
324+
CallingSequence callingSequence = bindings.callingSequence();
325325
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
326326
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
327327

@@ -374,8 +374,8 @@ public void testStructStackSpill() {
374374
struct, struct, C_INT, C_INT, C_INT, C_INT, C_INT, C_INT, struct, C_INT);
375375
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
376376

377-
assertFalse(bindings.isInMemoryReturn);
378-
CallingSequence callingSequence = bindings.callingSequence;
377+
assertFalse(bindings.isInMemoryReturn());
378+
CallingSequence callingSequence = bindings.callingSequence();
379379
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
380380
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
381381

@@ -403,8 +403,8 @@ public void testVarArgsInRegs() {
403403
FunctionDescriptor fdExpected = FunctionDescriptor.ofVoid(ADDRESS, C_INT, C_INT, C_FLOAT);
404404
CallArranger.Bindings bindings = CallArranger.LINUX.getBindings(mt, fd, false);
405405

406-
assertFalse(bindings.isInMemoryReturn);
407-
CallingSequence callingSequence = bindings.callingSequence;
406+
assertFalse(bindings.isInMemoryReturn());
407+
CallingSequence callingSequence = bindings.callingSequence();
408408
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
409409
assertEquals(callingSequence.functionDesc(), fdExpected);
410410

@@ -426,8 +426,8 @@ public void testVarArgsOnStack() {
426426
FunctionDescriptor fdExpected = FunctionDescriptor.ofVoid(ADDRESS, C_INT, C_INT, C_FLOAT);
427427
CallArranger.Bindings bindings = CallArranger.MACOS.getBindings(mt, fd, false);
428428

429-
assertFalse(bindings.isInMemoryReturn);
430-
CallingSequence callingSequence = bindings.callingSequence;
429+
assertFalse(bindings.isInMemoryReturn());
430+
CallingSequence callingSequence = bindings.callingSequence();
431431
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
432432
assertEquals(callingSequence.functionDesc(), fdExpected);
433433

‎test/jdk/java/foreign/callarranger/TestSysVCallArranger.java

+42-42
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ public void testEmpty() {
6363
FunctionDescriptor fd = FunctionDescriptor.ofVoid();
6464
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
6565

66-
assertFalse(bindings.isInMemoryReturn);
67-
CallingSequence callingSequence = bindings.callingSequence;
66+
assertFalse(bindings.isInMemoryReturn());
67+
CallingSequence callingSequence = bindings.callingSequence();
6868
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
6969
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
7070

@@ -75,7 +75,7 @@ public void testEmpty() {
7575

7676
checkReturnBindings(callingSequence, new Binding[]{});
7777

78-
assertEquals(bindings.nVectorArgs, 0);
78+
assertEquals(bindings.nVectorArgs(), 0);
7979
}
8080

8181
@Test
@@ -91,8 +91,8 @@ public void testNestedStructs() {
9191
FunctionDescriptor fd = FunctionDescriptor.ofVoid(POINT);
9292
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
9393

94-
assertFalse(bindings.isInMemoryReturn);
95-
CallingSequence callingSequence = bindings.callingSequence;
94+
assertFalse(bindings.isInMemoryReturn());
95+
CallingSequence callingSequence = bindings.callingSequence();
9696
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
9797
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
9898

@@ -105,7 +105,7 @@ public void testNestedStructs() {
105105

106106
checkReturnBindings(callingSequence, new Binding[]{});
107107

108-
assertEquals(bindings.nVectorArgs, 0);
108+
assertEquals(bindings.nVectorArgs(), 0);
109109
}
110110

111111
@Test
@@ -122,8 +122,8 @@ public void testNestedUnion() {
122122
FunctionDescriptor fd = FunctionDescriptor.ofVoid(POINT);
123123
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
124124

125-
assertFalse(bindings.isInMemoryReturn);
126-
CallingSequence callingSequence = bindings.callingSequence;
125+
assertFalse(bindings.isInMemoryReturn());
126+
CallingSequence callingSequence = bindings.callingSequence();
127127
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
128128
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
129129

@@ -136,7 +136,7 @@ public void testNestedUnion() {
136136

137137
checkReturnBindings(callingSequence, new Binding[]{});
138138

139-
assertEquals(bindings.nVectorArgs, 0);
139+
assertEquals(bindings.nVectorArgs(), 0);
140140
}
141141

142142
@Test
@@ -152,8 +152,8 @@ public void testNestedStructsUnaligned() {
152152
FunctionDescriptor fd = FunctionDescriptor.ofVoid(POINT);
153153
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
154154

155-
assertFalse(bindings.isInMemoryReturn);
156-
CallingSequence callingSequence = bindings.callingSequence;
155+
assertFalse(bindings.isInMemoryReturn());
156+
CallingSequence callingSequence = bindings.callingSequence();
157157
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
158158
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
159159

@@ -166,7 +166,7 @@ public void testNestedStructsUnaligned() {
166166

167167
checkReturnBindings(callingSequence, new Binding[]{});
168168

169-
assertEquals(bindings.nVectorArgs, 0);
169+
assertEquals(bindings.nVectorArgs(), 0);
170170
}
171171

172172
@Test
@@ -182,8 +182,8 @@ public void testNestedUnionUnaligned() {
182182
FunctionDescriptor fd = FunctionDescriptor.ofVoid(POINT);
183183
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
184184

185-
assertFalse(bindings.isInMemoryReturn);
186-
CallingSequence callingSequence = bindings.callingSequence;
185+
assertFalse(bindings.isInMemoryReturn());
186+
CallingSequence callingSequence = bindings.callingSequence();
187187
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
188188
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
189189

@@ -196,7 +196,7 @@ public void testNestedUnionUnaligned() {
196196

197197
checkReturnBindings(callingSequence, new Binding[]{});
198198

199-
assertEquals(bindings.nVectorArgs, 0);
199+
assertEquals(bindings.nVectorArgs(), 0);
200200
}
201201

202202
@Test
@@ -207,8 +207,8 @@ public void testIntegerRegs() {
207207
C_INT, C_INT, C_INT, C_INT, C_INT, C_INT);
208208
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
209209

210-
assertFalse(bindings.isInMemoryReturn);
211-
CallingSequence callingSequence = bindings.callingSequence;
210+
assertFalse(bindings.isInMemoryReturn());
211+
CallingSequence callingSequence = bindings.callingSequence();
212212
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
213213
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
214214

@@ -225,7 +225,7 @@ public void testIntegerRegs() {
225225

226226
checkReturnBindings(callingSequence, new Binding[]{});
227227

228-
assertEquals(bindings.nVectorArgs, 0);
228+
assertEquals(bindings.nVectorArgs(), 0);
229229
}
230230

231231
@Test
@@ -238,8 +238,8 @@ public void testDoubleRegs() {
238238
C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE);
239239
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
240240

241-
assertFalse(bindings.isInMemoryReturn);
242-
CallingSequence callingSequence = bindings.callingSequence;
241+
assertFalse(bindings.isInMemoryReturn());
242+
CallingSequence callingSequence = bindings.callingSequence();
243243
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
244244
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
245245

@@ -258,7 +258,7 @@ public void testDoubleRegs() {
258258

259259
checkReturnBindings(callingSequence, new Binding[]{});
260260

261-
assertEquals(bindings.nVectorArgs, 8);
261+
assertEquals(bindings.nVectorArgs(), 8);
262262
}
263263

264264
@Test
@@ -273,8 +273,8 @@ public void testMixed() {
273273
C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT);
274274
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
275275

276-
assertFalse(bindings.isInMemoryReturn);
277-
CallingSequence callingSequence = bindings.callingSequence;
276+
assertFalse(bindings.isInMemoryReturn());
277+
CallingSequence callingSequence = bindings.callingSequence();
278278
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
279279
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
280280

@@ -303,7 +303,7 @@ public void testMixed() {
303303

304304
checkReturnBindings(callingSequence, new Binding[]{});
305305

306-
assertEquals(bindings.nVectorArgs, 8);
306+
assertEquals(bindings.nVectorArgs(), 8);
307307
}
308308

309309
/**
@@ -330,8 +330,8 @@ public void testAbiExample() {
330330
C_INT, C_INT, struct, C_INT, C_INT, C_DOUBLE, C_DOUBLE, C_INT, C_INT, C_INT);
331331
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
332332

333-
assertFalse(bindings.isInMemoryReturn);
334-
CallingSequence callingSequence = bindings.callingSequence;
333+
assertFalse(bindings.isInMemoryReturn());
334+
CallingSequence callingSequence = bindings.callingSequence();
335335
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
336336
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
337337

@@ -356,7 +356,7 @@ public void testAbiExample() {
356356

357357
checkReturnBindings(callingSequence, new Binding[]{});
358358

359-
assertEquals(bindings.nVectorArgs, 3);
359+
assertEquals(bindings.nVectorArgs(), 3);
360360
}
361361

362362
/**
@@ -373,8 +373,8 @@ public void testMemoryAddress() {
373373
FunctionDescriptor fd = FunctionDescriptor.ofVoid( C_POINTER);
374374
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
375375

376-
assertFalse(bindings.isInMemoryReturn);
377-
CallingSequence callingSequence = bindings.callingSequence;
376+
assertFalse(bindings.isInMemoryReturn());
377+
CallingSequence callingSequence = bindings.callingSequence();
378378
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
379379
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
380380

@@ -386,7 +386,7 @@ public void testMemoryAddress() {
386386

387387
checkReturnBindings(callingSequence, new Binding[]{});
388388

389-
assertEquals(bindings.nVectorArgs, 0);
389+
assertEquals(bindings.nVectorArgs(), 0);
390390
}
391391

392392
@Test(dataProvider = "structs")
@@ -395,8 +395,8 @@ public void testStruct(MemoryLayout struct, Binding[] expectedBindings) {
395395
FunctionDescriptor fd = FunctionDescriptor.ofVoid(struct);
396396
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
397397

398-
assertFalse(bindings.isInMemoryReturn);
399-
CallingSequence callingSequence = bindings.callingSequence;
398+
assertFalse(bindings.isInMemoryReturn());
399+
CallingSequence callingSequence = bindings.callingSequence();
400400
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class));
401401
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS));
402402

@@ -408,7 +408,7 @@ public void testStruct(MemoryLayout struct, Binding[] expectedBindings) {
408408

409409
checkReturnBindings(callingSequence, new Binding[]{});
410410

411-
assertEquals(bindings.nVectorArgs, 0);
411+
assertEquals(bindings.nVectorArgs(), 0);
412412
}
413413

414414

@@ -454,8 +454,8 @@ public void testReturnRegisterStruct() {
454454
FunctionDescriptor fd = FunctionDescriptor.of(struct);
455455
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
456456

457-
assertFalse(bindings.isInMemoryReturn);
458-
CallingSequence callingSequence = bindings.callingSequence;
457+
assertFalse(bindings.isInMemoryReturn());
458+
CallingSequence callingSequence = bindings.callingSequence();
459459
assertEquals(callingSequence.callerMethodType(), mt.appendParameterTypes(long.class).insertParameterTypes(0, MemorySegment.class, MemorySegment.class));
460460
assertEquals(callingSequence.functionDesc(), fd.appendArgumentLayouts(C_LONG).insertArgumentLayouts(0, ADDRESS, ADDRESS));
461461

@@ -475,7 +475,7 @@ public void testReturnRegisterStruct() {
475475
bufferStore(8, long.class)
476476
});
477477

478-
assertEquals(bindings.nVectorArgs, 0);
478+
assertEquals(bindings.nVectorArgs(), 0);
479479
}
480480

481481
@Test
@@ -486,8 +486,8 @@ public void testIMR() {
486486
FunctionDescriptor fd = FunctionDescriptor.of(struct);
487487
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
488488

489-
assertTrue(bindings.isInMemoryReturn);
490-
CallingSequence callingSequence = bindings.callingSequence;
489+
assertTrue(bindings.isInMemoryReturn());
490+
CallingSequence callingSequence = bindings.callingSequence();
491491
assertEquals(callingSequence.callerMethodType(), MethodType.methodType(void.class, MemorySegment.class, MemorySegment.class, long.class));
492492
assertEquals(callingSequence.functionDesc(), FunctionDescriptor.ofVoid(ADDRESS, C_POINTER, C_LONG));
493493

@@ -499,7 +499,7 @@ public void testIMR() {
499499

500500
checkReturnBindings(callingSequence, new Binding[] {});
501501

502-
assertEquals(bindings.nVectorArgs, 0);
502+
assertEquals(bindings.nVectorArgs(), 0);
503503
}
504504

505505
@Test
@@ -510,8 +510,8 @@ public void testFloatStructsUpcall() {
510510
FunctionDescriptor fd = FunctionDescriptor.of(struct, struct);
511511
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, true);
512512

513-
assertFalse(bindings.isInMemoryReturn);
514-
CallingSequence callingSequence = bindings.callingSequence;
513+
assertFalse(bindings.isInMemoryReturn());
514+
CallingSequence callingSequence = bindings.callingSequence();
515515
assertEquals(callingSequence.calleeMethodType(), mt);
516516
assertEquals(callingSequence.functionDesc(), fd);
517517

@@ -523,7 +523,7 @@ public void testFloatStructsUpcall() {
523523
bufferLoad(0, float.class), vmStore(xmm0, float.class)
524524
});
525525

526-
assertEquals(bindings.nVectorArgs, 1);
526+
assertEquals(bindings.nVectorArgs(), 1);
527527
}
528528

529529
}

‎test/jdk/java/foreign/callarranger/TestWindowsCallArranger.java

+24-24
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ public void testEmpty() {
6161
FunctionDescriptor fd = FunctionDescriptor.ofVoid();
6262
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
6363

64-
assertFalse(bindings.isInMemoryReturn);
65-
CallingSequence callingSequence = bindings.callingSequence;
64+
assertFalse(bindings.isInMemoryReturn());
65+
CallingSequence callingSequence = bindings.callingSequence();
6666
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
6767
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
6868

@@ -78,8 +78,8 @@ public void testIntegerRegs() {
7878
FunctionDescriptor fd = FunctionDescriptor.ofVoid(C_INT, C_INT, C_INT, C_INT);
7979
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
8080

81-
assertFalse(bindings.isInMemoryReturn);
82-
CallingSequence callingSequence = bindings.callingSequence;
81+
assertFalse(bindings.isInMemoryReturn());
82+
CallingSequence callingSequence = bindings.callingSequence();
8383
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
8484
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
8585

@@ -100,8 +100,8 @@ public void testDoubleRegs() {
100100
FunctionDescriptor fd = FunctionDescriptor.ofVoid(C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE);
101101
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
102102

103-
assertFalse(bindings.isInMemoryReturn);
104-
CallingSequence callingSequence = bindings.callingSequence;
103+
assertFalse(bindings.isInMemoryReturn());
104+
CallingSequence callingSequence = bindings.callingSequence();
105105
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
106106
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
107107

@@ -124,8 +124,8 @@ public void testMixed() {
124124
C_LONG_LONG, C_LONG_LONG, C_FLOAT, C_FLOAT, C_LONG_LONG, C_LONG_LONG, C_FLOAT, C_FLOAT);
125125
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
126126

127-
assertFalse(bindings.isInMemoryReturn);
128-
CallingSequence callingSequence = bindings.callingSequence;
127+
assertFalse(bindings.isInMemoryReturn());
128+
CallingSequence callingSequence = bindings.callingSequence();
129129
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
130130
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
131131

@@ -155,8 +155,8 @@ public void testAbiExample() {
155155
C_DOUBLE, C_DOUBLE, C_DOUBLE, C_INT, C_INT, C_INT);
156156
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
157157

158-
assertFalse(bindings.isInMemoryReturn);
159-
CallingSequence callingSequence = bindings.callingSequence;
158+
assertFalse(bindings.isInMemoryReturn());
159+
CallingSequence callingSequence = bindings.callingSequence();
160160
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
161161
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
162162

@@ -192,8 +192,8 @@ public void testAbiExampleVarargs() {
192192
ADDRESS, C_INT, C_DOUBLE, C_INT, C_DOUBLE, C_DOUBLE);
193193
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
194194

195-
assertFalse(bindings.isInMemoryReturn);
196-
CallingSequence callingSequence = bindings.callingSequence;
195+
assertFalse(bindings.isInMemoryReturn());
196+
CallingSequence callingSequence = bindings.callingSequence();
197197
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
198198
assertEquals(callingSequence.functionDesc(), fdExpected);
199199

@@ -226,8 +226,8 @@ public void testStructRegister() {
226226
FunctionDescriptor fd = FunctionDescriptor.ofVoid(struct);
227227
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
228228

229-
assertFalse(bindings.isInMemoryReturn);
230-
CallingSequence callingSequence = bindings.callingSequence;
229+
assertFalse(bindings.isInMemoryReturn());
230+
CallingSequence callingSequence = bindings.callingSequence();
231231
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
232232
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
233233

@@ -256,8 +256,8 @@ public void testStructReference() {
256256
FunctionDescriptor fd = FunctionDescriptor.ofVoid(struct);
257257
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
258258

259-
assertFalse(bindings.isInMemoryReturn);
260-
CallingSequence callingSequence = bindings.callingSequence;
259+
assertFalse(bindings.isInMemoryReturn());
260+
CallingSequence callingSequence = bindings.callingSequence();
261261
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
262262
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
263263

@@ -287,8 +287,8 @@ public void testMemoryAddress() {
287287
FunctionDescriptor fd = FunctionDescriptor.ofVoid(C_POINTER);
288288
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
289289

290-
assertFalse(bindings.isInMemoryReturn);
291-
CallingSequence callingSequence = bindings.callingSequence;
290+
assertFalse(bindings.isInMemoryReturn());
291+
CallingSequence callingSequence = bindings.callingSequence();
292292
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
293293
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
294294

@@ -308,8 +308,8 @@ public void testReturnRegisterStruct() {
308308
FunctionDescriptor fd = FunctionDescriptor.of(struct);
309309
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
310310

311-
assertFalse(bindings.isInMemoryReturn);
312-
CallingSequence callingSequence = bindings.callingSequence;
311+
assertFalse(bindings.isInMemoryReturn());
312+
CallingSequence callingSequence = bindings.callingSequence();
313313
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
314314
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
315315

@@ -332,8 +332,8 @@ public void testIMR() {
332332
FunctionDescriptor fd = FunctionDescriptor.of(struct);
333333
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
334334

335-
assertTrue(bindings.isInMemoryReturn);
336-
CallingSequence callingSequence = bindings.callingSequence;
335+
assertTrue(bindings.isInMemoryReturn());
336+
CallingSequence callingSequence = bindings.callingSequence();
337337
assertEquals(callingSequence.callerMethodType(), MethodType.methodType(void.class, MemorySegment.class, MemorySegment.class));
338338
assertEquals(callingSequence.functionDesc(), FunctionDescriptor.ofVoid(ADDRESS, C_POINTER));
339339

@@ -361,8 +361,8 @@ public void testStackStruct() {
361361
struct, C_INT, C_DOUBLE, C_POINTER);
362362
CallArranger.Bindings bindings = CallArranger.getBindings(mt, fd, false);
363363

364-
assertFalse(bindings.isInMemoryReturn);
365-
CallingSequence callingSequence = bindings.callingSequence;
364+
assertFalse(bindings.isInMemoryReturn());
365+
CallingSequence callingSequence = bindings.callingSequence();
366366
assertEquals(callingSequence.callerMethodType(), mt.insertParameterTypes(0, MemorySegment.class));
367367
assertEquals(callingSequence.functionDesc(), fd.insertArgumentLayouts(0, ADDRESS));
368368

0 commit comments

Comments
 (0)
Please sign in to comment.