< prev index next > src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/macos/MacOsAArch64Linker.java
Print this page
*/
package jdk.internal.foreign.abi.aarch64.macos;
import jdk.internal.foreign.abi.AbstractLinker;
import jdk.internal.foreign.abi.LinkerOptions;
+ import jdk.internal.foreign.abi.SharedUtils;
import jdk.internal.foreign.abi.aarch64.CallArranger;
import java.lang.foreign.FunctionDescriptor;
+ import java.lang.foreign.MemoryLayout;
+ import java.lang.foreign.ValueLayout;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodType;
import java.nio.ByteOrder;
+ import java.util.Map;
/**
* ABI implementation for macOS on Apple silicon. Based on AAPCS with
* changes to va_list and passing arguments on the stack.
*/
public final class MacOsAArch64Linker extends AbstractLinker {
+ static final Map<String, MemoryLayout> CANONICAL_LAYOUTS =
+ SharedUtils.canonicalLayouts(ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG, ValueLayout.JAVA_INT);
+
public static MacOsAArch64Linker getInstance() {
final class Holder {
private static final MacOsAArch64Linker INSTANCE = new MacOsAArch64Linker();
}
@Override
protected ByteOrder linkerByteOrder() {
return ByteOrder.LITTLE_ENDIAN;
}
+
+ @Override
+ public Map<String, MemoryLayout> canonicalLayouts() {
+ return CANONICAL_LAYOUTS;
+ }
}
< prev index next >