< prev index next >

test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadHelper.java

Print this page

 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  */
 23 package org.openjdk.bench.java.lang.foreign;
 24 
 25 import java.lang.foreign.*;
 26 
 27 import java.lang.invoke.MethodHandle;
 28 import java.lang.invoke.MethodType;
 29 
 30 import static java.lang.invoke.MethodHandles.insertArguments;
 31 
 32 public class CallOverheadHelper extends CLayouts {
 33 
 34     static final Linker abi = Linker.nativeLinker();
 35 
 36     static final MethodHandle func;
 37     static final MethodHandle func_trivial;
 38     static final MethodHandle func_v;
 39     static final MethodHandle func_trivial_v;
 40     static MemorySegment func_addr;
 41     static final MethodHandle identity;
 42     static final MethodHandle identity_trivial;
 43     static final MethodHandle identity_v;
 44     static final MethodHandle identity_trivial_v;
 45     static MemorySegment identity_addr;
 46     static final MethodHandle identity_struct;
 47     static final MethodHandle identity_struct_v;
 48     static MemorySegment identity_struct_addr;
 49     static final MethodHandle identity_struct_3;
 50     static final MethodHandle identity_struct_3_v;
 51     static MemorySegment identity_struct_3_addr;
 52     static final MethodHandle identity_memory_address;
 53     static final MethodHandle identity_memory_address_v;
 54     static MemorySegment identity_memory_address_addr;
 55     static final MethodHandle identity_memory_address_3;
 56     static final MethodHandle identity_memory_address_3_v;
 57     static MemorySegment identity_memory_address_3_addr;
 58     static final MethodHandle args1;
 59     static final MethodHandle args1_v;
 60     static MemorySegment args1_addr;
 61     static final MethodHandle args2;
 62     static final MethodHandle args2_v;
 63     static MemorySegment args2_addr;
 64     static final MethodHandle args3;

 96 
 97     static {
 98         Arena scope = Arena.ofAuto();
 99         point = scope.allocate(POINT_LAYOUT);
100     }
101 
102     static final SegmentAllocator recycling_allocator;
103 
104     static {
105         Arena scope = Arena.ofAuto();
106         recycling_allocator = SegmentAllocator.prefixAllocator(scope.allocate(POINT_LAYOUT));
107         System.loadLibrary("CallOverheadJNI");
108 
109         System.loadLibrary("CallOverhead");
110         SymbolLookup loaderLibs = SymbolLookup.loaderLookup();
111         {
112             func_addr = loaderLibs.find("func").orElseThrow();
113             MethodType mt = MethodType.methodType(void.class);
114             FunctionDescriptor fd = FunctionDescriptor.ofVoid();
115             func_v = abi.downcallHandle(fd);
116             func_trivial_v = abi.downcallHandle(fd, Linker.Option.isTrivial());
117             func = insertArguments(func_v, 0, func_addr);
118             func_trivial = insertArguments(func_trivial_v, 0, func_addr);
119         }
120         {
121             identity_addr = loaderLibs.find("identity").orElseThrow();
122             FunctionDescriptor fd = FunctionDescriptor.of(C_INT, C_INT);
123             identity_v = abi.downcallHandle(fd);
124             identity_trivial_v = abi.downcallHandle(fd, Linker.Option.isTrivial());
125             identity = insertArguments(identity_v, 0, identity_addr);
126             identity_trivial = insertArguments(identity_trivial_v, 0, identity_addr);
127         }
128         identity_struct_addr = loaderLibs.find("identity_struct").orElseThrow();
129         identity_struct_v = abi.downcallHandle(
130                 FunctionDescriptor.of(POINT_LAYOUT, POINT_LAYOUT));
131         identity_struct = insertArguments(identity_struct_v, 0, identity_struct_addr);
132 
133         identity_struct_3_addr = loaderLibs.find("identity_struct_3").orElseThrow();
134         identity_struct_3_v = abi.downcallHandle(
135                 FunctionDescriptor.of(POINT_LAYOUT, POINT_LAYOUT, POINT_LAYOUT, POINT_LAYOUT));
136         identity_struct_3 = insertArguments(identity_struct_3_v, 0, identity_struct_3_addr);
137 
138         identity_memory_address_addr = loaderLibs.find("identity_memory_address").orElseThrow();
139         identity_memory_address_v = abi.downcallHandle(
140                 FunctionDescriptor.of(C_POINTER, C_POINTER));
141         identity_memory_address = insertArguments(identity_memory_address_v, 0, identity_memory_address_addr);
142 
143         identity_memory_address_3_addr = loaderLibs.find("identity_memory_address_3").orElseThrow();
144         identity_memory_address_3_v = abi.downcallHandle(
145                 FunctionDescriptor.of(C_POINTER, C_POINTER, C_POINTER, C_POINTER));
146         identity_memory_address_3 = insertArguments(identity_memory_address_3_v, 0, identity_memory_address_3_addr);

 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  */
 23 package org.openjdk.bench.java.lang.foreign;
 24 
 25 import java.lang.foreign.*;
 26 
 27 import java.lang.invoke.MethodHandle;
 28 import java.lang.invoke.MethodType;
 29 
 30 import static java.lang.invoke.MethodHandles.insertArguments;
 31 
 32 public class CallOverheadHelper extends CLayouts {
 33 
 34     static final Linker abi = Linker.nativeLinker();
 35 
 36     static final MethodHandle func;
 37     static final MethodHandle func_critical;
 38     static final MethodHandle func_v;
 39     static final MethodHandle func_critical_v;
 40     static MemorySegment func_addr;
 41     static final MethodHandle identity;
 42     static final MethodHandle identity_critical;
 43     static final MethodHandle identity_v;
 44     static final MethodHandle identity_critical_v;
 45     static MemorySegment identity_addr;
 46     static final MethodHandle identity_struct;
 47     static final MethodHandle identity_struct_v;
 48     static MemorySegment identity_struct_addr;
 49     static final MethodHandle identity_struct_3;
 50     static final MethodHandle identity_struct_3_v;
 51     static MemorySegment identity_struct_3_addr;
 52     static final MethodHandle identity_memory_address;
 53     static final MethodHandle identity_memory_address_v;
 54     static MemorySegment identity_memory_address_addr;
 55     static final MethodHandle identity_memory_address_3;
 56     static final MethodHandle identity_memory_address_3_v;
 57     static MemorySegment identity_memory_address_3_addr;
 58     static final MethodHandle args1;
 59     static final MethodHandle args1_v;
 60     static MemorySegment args1_addr;
 61     static final MethodHandle args2;
 62     static final MethodHandle args2_v;
 63     static MemorySegment args2_addr;
 64     static final MethodHandle args3;

 96 
 97     static {
 98         Arena scope = Arena.ofAuto();
 99         point = scope.allocate(POINT_LAYOUT);
100     }
101 
102     static final SegmentAllocator recycling_allocator;
103 
104     static {
105         Arena scope = Arena.ofAuto();
106         recycling_allocator = SegmentAllocator.prefixAllocator(scope.allocate(POINT_LAYOUT));
107         System.loadLibrary("CallOverheadJNI");
108 
109         System.loadLibrary("CallOverhead");
110         SymbolLookup loaderLibs = SymbolLookup.loaderLookup();
111         {
112             func_addr = loaderLibs.find("func").orElseThrow();
113             MethodType mt = MethodType.methodType(void.class);
114             FunctionDescriptor fd = FunctionDescriptor.ofVoid();
115             func_v = abi.downcallHandle(fd);
116             func_critical_v = abi.downcallHandle(fd, Linker.Option.critical());
117             func = insertArguments(func_v, 0, func_addr);
118             func_critical = insertArguments(func_critical_v, 0, func_addr);
119         }
120         {
121             identity_addr = loaderLibs.find("identity").orElseThrow();
122             FunctionDescriptor fd = FunctionDescriptor.of(C_INT, C_INT);
123             identity_v = abi.downcallHandle(fd);
124             identity_critical_v = abi.downcallHandle(fd, Linker.Option.critical());
125             identity = insertArguments(identity_v, 0, identity_addr);
126             identity_critical = insertArguments(identity_critical_v, 0, identity_addr);
127         }
128         identity_struct_addr = loaderLibs.find("identity_struct").orElseThrow();
129         identity_struct_v = abi.downcallHandle(
130                 FunctionDescriptor.of(POINT_LAYOUT, POINT_LAYOUT));
131         identity_struct = insertArguments(identity_struct_v, 0, identity_struct_addr);
132 
133         identity_struct_3_addr = loaderLibs.find("identity_struct_3").orElseThrow();
134         identity_struct_3_v = abi.downcallHandle(
135                 FunctionDescriptor.of(POINT_LAYOUT, POINT_LAYOUT, POINT_LAYOUT, POINT_LAYOUT));
136         identity_struct_3 = insertArguments(identity_struct_3_v, 0, identity_struct_3_addr);
137 
138         identity_memory_address_addr = loaderLibs.find("identity_memory_address").orElseThrow();
139         identity_memory_address_v = abi.downcallHandle(
140                 FunctionDescriptor.of(C_POINTER, C_POINTER));
141         identity_memory_address = insertArguments(identity_memory_address_v, 0, identity_memory_address_addr);
142 
143         identity_memory_address_3_addr = loaderLibs.find("identity_memory_address_3").orElseThrow();
144         identity_memory_address_3_v = abi.downcallHandle(
145                 FunctionDescriptor.of(C_POINTER, C_POINTER, C_POINTER, C_POINTER));
146         identity_memory_address_3 = insertArguments(identity_memory_address_3_v, 0, identity_memory_address_3_addr);
< prev index next >