< prev index next >

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

Print this page

117     public static final VMStorage xmm31 = vectorRegister(31, "xmm31");
118 
119     private static VMStorage integerRegister(int index, String debugName) {
120         return new VMStorage(StorageClasses.INTEGER, index, debugName);
121     }
122 
123     private static VMStorage vectorRegister(int index, String debugName) {
124         return new VMStorage(StorageClasses.VECTOR, index, debugName);
125     }
126 
127     public static VMStorage stackStorage(int index) {
128         return new VMStorage(StorageClasses.STACK, index, "Stack@" + index);
129     }
130 
131     public static VMStorage x87Storage(int index) {
132         return new VMStorage(StorageClasses.X87, index, "X87(" + index + ")");
133     }
134 
135     public static ABIDescriptor abiFor(VMStorage[] inputIntRegs, VMStorage[] inputVectorRegs, VMStorage[] outputIntRegs,
136                                        VMStorage[] outputVectorRegs, int numX87Outputs, VMStorage[] volatileIntRegs,
137                                        VMStorage[] volatileVectorRegs, int stackAlignment, int shadowSpace) {

138         return new ABIDescriptor(
139             INSTANCE,
140             new VMStorage[][] {
141                 inputIntRegs,
142                 inputVectorRegs,
143             },
144             new VMStorage[][] {
145                 outputIntRegs,
146                 outputVectorRegs,
147                 IntStream.range(0, numX87Outputs).mapToObj(X86_64Architecture::x87Storage).toArray(VMStorage[]::new)
148             },
149             new VMStorage[][] {
150                 volatileIntRegs,
151                 volatileVectorRegs,
152             },
153             stackAlignment,
154             shadowSpace
155         );
156     }
157 
158 }

117     public static final VMStorage xmm31 = vectorRegister(31, "xmm31");
118 
119     private static VMStorage integerRegister(int index, String debugName) {
120         return new VMStorage(StorageClasses.INTEGER, index, debugName);
121     }
122 
123     private static VMStorage vectorRegister(int index, String debugName) {
124         return new VMStorage(StorageClasses.VECTOR, index, debugName);
125     }
126 
127     public static VMStorage stackStorage(int index) {
128         return new VMStorage(StorageClasses.STACK, index, "Stack@" + index);
129     }
130 
131     public static VMStorage x87Storage(int index) {
132         return new VMStorage(StorageClasses.X87, index, "X87(" + index + ")");
133     }
134 
135     public static ABIDescriptor abiFor(VMStorage[] inputIntRegs, VMStorage[] inputVectorRegs, VMStorage[] outputIntRegs,
136                                        VMStorage[] outputVectorRegs, int numX87Outputs, VMStorage[] volatileIntRegs,
137                                        VMStorage[] volatileVectorRegs, int stackAlignment, int shadowSpace,
138                                        VMStorage targetAddrStorage, VMStorage retBufAddrStorage) {
139         return new ABIDescriptor(
140             INSTANCE,
141             new VMStorage[][] {
142                 inputIntRegs,
143                 inputVectorRegs,
144             },
145             new VMStorage[][] {
146                 outputIntRegs,
147                 outputVectorRegs,
148                 IntStream.range(0, numX87Outputs).mapToObj(X86_64Architecture::x87Storage).toArray(VMStorage[]::new)
149             },
150             new VMStorage[][] {
151                 volatileIntRegs,
152                 volatileVectorRegs,
153             },
154             stackAlignment,
155             shadowSpace,
156                 targetAddrStorage, retBufAddrStorage);
157     }
158 
159 }
< prev index next >