Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 42 additions & 13 deletions sdk/src/org.graalvm.nativeimage/snapshot.sigtest
Original file line number Diff line number Diff line change
Expand Up @@ -217,16 +217,21 @@ innr public abstract interface static AARCH64
innr public abstract interface static AMD64
innr public abstract interface static ANDROID
innr public abstract interface static DARWIN
innr public abstract interface static DARWIN_AARCH64
innr public abstract interface static DARWIN_AMD64
innr public abstract interface static IOS
innr public abstract interface static LINUX
innr public abstract interface static LINUX_AARCH64_BASE
innr public abstract interface static LINUX_AMD64_BASE
innr public abstract interface static MACOS
innr public abstract interface static WINDOWS
innr public final static ANDROID_AARCH64
innr public final static DARWIN_AARCH64
innr public final static DARWIN_AMD64
innr public final static HOSTED_ONLY
innr public final static IOS_AARCH64
innr public final static IOS_AMD64
innr public final static LINUX_AARCH64
innr public final static MACOS_AARCH64
innr public final static MACOS_AMD64
innr public final static WINDOWS_AARCH64
innr public final static WINDOWS_AMD64
innr public static LINUX_AMD64
Expand All @@ -252,28 +257,23 @@ meth public java.lang.String getOS()
CLSS public final static org.graalvm.nativeimage.Platform$ANDROID_AARCH64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$AARCH64
intf org.graalvm.nativeimage.Platform$ANDROID
intf org.graalvm.nativeimage.Platform$LINUX_AARCH64_BASE
supr java.lang.Object

CLSS public abstract interface static org.graalvm.nativeimage.Platform$DARWIN
outer org.graalvm.nativeimage.Platform
intf org.graalvm.nativeimage.impl.InternalPlatform$PLATFORM_JNI
meth public java.lang.String getOS()

CLSS public final static org.graalvm.nativeimage.Platform$DARWIN_AARCH64
CLSS public abstract interface static org.graalvm.nativeimage.Platform$DARWIN_AARCH64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$AARCH64
intf org.graalvm.nativeimage.Platform$DARWIN
supr java.lang.Object

CLSS public final static org.graalvm.nativeimage.Platform$DARWIN_AMD64
CLSS public abstract interface static org.graalvm.nativeimage.Platform$DARWIN_AMD64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$AMD64
intf org.graalvm.nativeimage.Platform$DARWIN
supr java.lang.Object

CLSS public final static org.graalvm.nativeimage.Platform$HOSTED_ONLY
outer org.graalvm.nativeimage.Platform
Expand All @@ -288,14 +288,14 @@ meth public java.lang.String getOS()
CLSS public final static org.graalvm.nativeimage.Platform$IOS_AARCH64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$AARCH64
intf org.graalvm.nativeimage.Platform$DARWIN_AARCH64
intf org.graalvm.nativeimage.Platform$IOS
supr java.lang.Object

CLSS public final static org.graalvm.nativeimage.Platform$IOS_AMD64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$AMD64
intf org.graalvm.nativeimage.Platform$DARWIN_AMD64
intf org.graalvm.nativeimage.Platform$IOS
supr java.lang.Object

Expand All @@ -307,15 +307,44 @@ meth public java.lang.String getOS()
CLSS public final static org.graalvm.nativeimage.Platform$LINUX_AARCH64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$AARCH64
intf org.graalvm.nativeimage.Platform$LINUX
intf org.graalvm.nativeimage.Platform$LINUX_AARCH64_BASE
supr java.lang.Object

CLSS public abstract interface static org.graalvm.nativeimage.Platform$LINUX_AARCH64_BASE
outer org.graalvm.nativeimage.Platform
intf org.graalvm.nativeimage.Platform$AARCH64
intf org.graalvm.nativeimage.Platform$LINUX

CLSS public static org.graalvm.nativeimage.Platform$LINUX_AMD64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$LINUX
intf org.graalvm.nativeimage.Platform$LINUX_AMD64_BASE
supr java.lang.Object

CLSS public abstract interface static org.graalvm.nativeimage.Platform$LINUX_AMD64_BASE
outer org.graalvm.nativeimage.Platform
intf org.graalvm.nativeimage.Platform$AMD64
intf org.graalvm.nativeimage.Platform$LINUX

CLSS public abstract interface static org.graalvm.nativeimage.Platform$MACOS
outer org.graalvm.nativeimage.Platform
intf org.graalvm.nativeimage.Platform$DARWIN
meth public java.lang.String getOS()

CLSS public final static org.graalvm.nativeimage.Platform$MACOS_AARCH64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$DARWIN_AARCH64
intf org.graalvm.nativeimage.Platform$MACOS
supr java.lang.Object

CLSS public final static org.graalvm.nativeimage.Platform$MACOS_AMD64
outer org.graalvm.nativeimage.Platform
cons public init()
intf org.graalvm.nativeimage.Platform$DARWIN_AMD64
intf org.graalvm.nativeimage.Platform$MACOS
supr java.lang.Object

CLSS public abstract interface static org.graalvm.nativeimage.Platform$WINDOWS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
org.graalvm.nativeimage.Platform$LINUX_AMD64
org.graalvm.nativeimage.Platform$LINUX_AARCH64
org.graalvm.nativeimage.Platform$ANDROID_AARCH64
org.graalvm.nativeimage.Platform$DARWIN_AMD64
org.graalvm.nativeimage.Platform$DARWIN_AARCH64
org.graalvm.nativeimage.Platform$IOS_AMD64
org.graalvm.nativeimage.Platform$IOS_AARCH64
org.graalvm.nativeimage.Platform$MACOS_AMD64
org.graalvm.nativeimage.Platform$MACOS_AARCH64
org.graalvm.nativeimage.Platform$WINDOWS_AMD64
org.graalvm.nativeimage.Platform$WINDOWS_AARCH64
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* The Universal Permissive License (UPL), Version 1.0
Expand Down Expand Up @@ -184,36 +184,44 @@ default String getOS() {
}

/**
* Supported operating system: Darwin (MacOS).
* Basis for all Apple operating systems (MacOS and iOS).
*
* @since 19.0
*/
interface DARWIN extends InternalPlatform.PLATFORM_JNI {
}

/**
* Supported operating system: iOS.
*
* @since 21.0
*/
interface IOS extends DARWIN {

/**
* Returns string representing DARWIN OS.
* Returns string representing iOS OS.
*
* @since 21.0
*/
default String getOS() {
return DARWIN.class.getSimpleName().toLowerCase();
return IOS.class.getSimpleName().toLowerCase();
}
}

/**
* Supported operating system: iOS.
* Supported operating system: MacOS.
*
* @since 21.0
* @since 22.1
*/
interface IOS extends DARWIN {
interface MACOS extends DARWIN {

/**
* Returns string representing IOS OS.
* Returns string representing MACOS OS.
*
* @since 21.0
*/
default String getOS() {
return IOS.class.getSimpleName().toLowerCase();
return "darwin";
}
}

Expand All @@ -234,6 +242,38 @@ default String getOS() {
}
}

/**
* Basis for all Linux operating systems on AMD64 (LINUX_AMD64).
*
* @since 22.1
*/
interface LINUX_AMD64_BASE extends LINUX, AMD64 {
}

/**
* Basis for all Linux operating systems on AARCH64 (LINUX_AARCH64 & ANDROID_AARCH64).
*
* @since 22.1
*/
interface LINUX_AARCH64_BASE extends LINUX, AARCH64 {
}

/**
* Basis for all Apple operating systems on AMD64 (MACOS_AMD64 & IOS_AMD64).
*
* @since 22.1
*/
interface DARWIN_AMD64 extends DARWIN, AMD64 {
}

/**
* Basis for all Apple operating systems on AMD64 (MACOS_AMD64 & IOS_AMD64).
*
* @since 22.1
*/
interface DARWIN_AARCH64 extends DARWIN, AARCH64 {
}

/*
* The standard leaf platforms, i.e., OS-architecture combinations that we support.
*/
Expand All @@ -242,7 +282,7 @@ default String getOS() {
*
* @since 19.0
*/
class LINUX_AMD64 implements LINUX, AMD64 {
class LINUX_AMD64 implements LINUX, LINUX_AMD64_BASE {

/**
* Instantiates a marker instance of this platform.
Expand All @@ -259,7 +299,7 @@ public LINUX_AMD64() {
*
* @since 19.0
*/
final class LINUX_AARCH64 implements LINUX, AARCH64 {
final class LINUX_AARCH64 implements LINUX, LINUX_AARCH64_BASE {

/**
* Instantiates a marker instance of this platform.
Expand All @@ -276,7 +316,7 @@ public LINUX_AARCH64() {
*
* @since 21.0
*/
final class ANDROID_AARCH64 implements ANDROID, AARCH64 {
final class ANDROID_AARCH64 implements ANDROID, LINUX_AARCH64_BASE {

/**
* Instantiates a marker instance of this platform.
Expand All @@ -289,66 +329,66 @@ public ANDROID_AARCH64() {
}

/**
* Supported leaf platform: Darwin (MacOS) on x86 64-bit.
* Supported leaf platform: iOS on x86 64-bit.
*
* @since 19.0
* @since 21.3
*/
final class DARWIN_AMD64 implements DARWIN, AMD64 {
final class IOS_AMD64 implements IOS, DARWIN_AMD64 {

/**
* Instantiates a marker instance of this platform.
*
* @since 19.0
* @since 21.3
*/
public DARWIN_AMD64() {
public IOS_AMD64() {
}
}

/**
* Supported leaf platform: Darwin (MacOS) on AArch 64-bit.
* Supported leaf platform: iOS on AArch 64-bit.
*
* @since 2.0
* @since 21.0
*/
final class DARWIN_AARCH64 implements DARWIN, AARCH64 {
final class IOS_AARCH64 implements IOS, DARWIN_AARCH64 {

/**
* Instantiates a marker instance of this platform.
*
* @since 2.0
* @since 21.0
*/
public DARWIN_AARCH64() {
public IOS_AARCH64() {
}
}

/**
* Supported leaf platform: iOS on AArch 64-bit.
* Supported leaf platform: MacOS on x86 64-bit.
*
* @since 21.0
* @since 22.1
*/
final class IOS_AARCH64 implements IOS, AARCH64 {
final class MACOS_AMD64 implements MACOS, DARWIN_AMD64 {

/**
* Instantiates a marker instance of this platform.
*
* @since 21.0
* @since 22.1
*/
public IOS_AARCH64() {
public MACOS_AMD64() {
}
}

/**
* Supported leaf platform: iOS on x86 64-bit.
* Supported leaf platform: MacOS on AArch 64-bit.
*
* @since 21.3
* @since 22.1
*/
final class IOS_AMD64 implements IOS, AMD64 {
final class MACOS_AARCH64 implements MACOS, DARWIN_AARCH64 {

/**
* Instantiates a marker instance of this platform.
*
* @since 21.3
* @since 22.1
*/
public IOS_AMD64() {
public MACOS_AARCH64() {
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@
import org.graalvm.compiler.core.common.NumUtil;
import org.graalvm.nativeimage.Platform;

import com.oracle.svm.core.OS;
import com.oracle.svm.core.ReservedRegisters;
import com.oracle.svm.core.config.ObjectLayout;
import com.oracle.svm.core.graal.code.SubstrateCallingConvention;
Expand Down Expand Up @@ -157,7 +156,7 @@ public SubstrateAArch64RegisterConfig(ConfigKind config, MetaAccessProvider meta
*
* https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions
*/
if (OS.DARWIN.isCurrent() || OS.WINDOWS.isCurrent()) {
if (Platform.includedIn(Platform.DARWIN.class) || Platform.includedIn(Platform.WINDOWS.class)) {
regs.remove(r18);
}
allocatableRegs = new RegisterArray(regs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@

import java.util.ArrayList;

import com.oracle.svm.core.OS;
import org.graalvm.nativeimage.Platform;

import com.oracle.svm.core.ReservedRegisters;
import com.oracle.svm.core.config.ObjectLayout;
import com.oracle.svm.core.graal.code.SubstrateCallingConvention;
Expand Down Expand Up @@ -102,7 +103,7 @@ public SubstrateAMD64RegisterConfig(ConfigKind config, MetaAccessProvider metaAc
this.metaAccess = metaAccess;
this.useBasePointer = useBasePointer;

if (OS.getCurrent() == OS.WINDOWS) {
if (Platform.includedIn(Platform.WINDOWS.class)) {
// This is the Windows 64-bit ABI for parameters.
// Note that float parameters also "consume" a general register and vice versa.
nativeGeneralParameterRegs = new RegisterArray(rcx, rdx, r8, r9);
Expand Down Expand Up @@ -147,7 +148,7 @@ public SubstrateAMD64RegisterConfig(ConfigKind config, MetaAccessProvider metaAc
* rbp must be last in the list, so that it gets the location closest to the saved
* return address.
*/
if (OS.getCurrent() == OS.WINDOWS) {
if (Platform.includedIn(Platform.WINDOWS.class)) {
calleeSaveRegisters = new RegisterArray(rbx, rdi, rsi, r12, r13, r14, r15, rbp,
xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15);
} else {
Expand Down Expand Up @@ -238,7 +239,7 @@ public CallingConvention getCallingConvention(Type t, JavaType returnType, JavaT
JavaKind kind = ObjectLayout.getCallSignatureKind(isEntryPoint, (ResolvedJavaType) parameterTypes[i], metaAccess, target);
kinds[i] = kind;

if (type.nativeABI() && OS.getCurrent() == OS.WINDOWS) {
if (type.nativeABI() && Platform.includedIn(Platform.WINDOWS.class)) {
// Strictly positional: float parameters consume a general register and vice versa
currentGeneral = i;
currentXMM = i;
Expand Down
Loading