当前位置: 首页>>代码示例>>Java>>正文


Java HotSpotCallingConventionType.NativeCall方法代码示例

本文整理汇总了Java中jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall方法的典型用法代码示例。如果您正苦于以下问题:Java HotSpotCallingConventionType.NativeCall方法的具体用法?Java HotSpotCallingConventionType.NativeCall怎么用?Java HotSpotCallingConventionType.NativeCall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jdk.vm.ci.hotspot.HotSpotCallingConventionType的用法示例。


在下文中一共展示了HotSpotCallingConventionType.NativeCall方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getCallingConventionRegisters

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public RegisterArray getCallingConventionRegisters(Type type, JavaKind kind) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    switch (kind) {
        case Boolean:
        case Byte:
        case Short:
        case Char:
        case Int:
        case Long:
        case Object:
            return hotspotType == HotSpotCallingConventionType.NativeCall ? nativeGeneralParameterRegisters : javaGeneralParameterRegisters;
        case Float:
        case Double:
            return simdParameterRegisters;
        default:
            throw JVMCIError.shouldNotReachHere();
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:20,代码来源:AArch64HotSpotRegisterConfig.java

示例2: getCallingConventionRegisters

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public RegisterArray getCallingConventionRegisters(Type type, JavaKind kind) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    switch (kind) {
        case Boolean:
        case Byte:
        case Short:
        case Char:
        case Int:
        case Long:
        case Object:
            return hotspotType == HotSpotCallingConventionType.NativeCall ? nativeGeneralParameterRegisters : javaGeneralParameterRegisters;
        case Float:
        case Double:
            return hotspotType == HotSpotCallingConventionType.NativeCall ? nativeXMMParameterRegisters : javaXMMParameterRegisters;
        default:
            throw JVMCIError.shouldNotReachHere();
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:20,代码来源:AMD64HotSpotRegisterConfig.java

示例3: getCallingConventionRegisters

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public Register[] getCallingConventionRegisters(Type type, JavaKind kind) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    switch (kind) {
        case Boolean:
        case Byte:
        case Short:
        case Char:
        case Int:
        case Long:
        case Object:
            return hotspotType == HotSpotCallingConventionType.NativeCall ? nativeGeneralParameterRegisters : javaGeneralParameterRegisters;
        case Float:
        case Double:
            return simdParameterRegisters;
        default:
            throw JVMCIError.shouldNotReachHere();
    }
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:20,代码来源:AArch64HotSpotRegisterConfig.java

示例4: getCallingConventionRegisters

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public Register[] getCallingConventionRegisters(Type type, JavaKind kind) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    switch (kind) {
        case Boolean:
        case Byte:
        case Short:
        case Char:
        case Int:
        case Long:
        case Object:
            return hotspotType == HotSpotCallingConventionType.NativeCall ? nativeGeneralParameterRegisters : javaGeneralParameterRegisters;
        case Float:
        case Double:
            return xmmParameterRegisters;
        default:
            throw JVMCIError.shouldNotReachHere();
    }
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:20,代码来源:AMD64HotSpotRegisterConfig.java

示例5: getCallingConvention

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, ValueKindFactory<?> valueKindFactory) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    if (type == HotSpotCallingConventionType.NativeCall) {
        return callingConvention(nativeGeneralParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
    }
    // On x64, parameter locations are the same whether viewed
    // from the caller or callee perspective
    return callingConvention(javaGeneralParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:11,代码来源:AArch64HotSpotRegisterConfig.java

示例6: getCallingConvention

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, ValueKindFactory<?> valueKindFactory) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    if (type == HotSpotCallingConventionType.NativeCall) {
        return callingConvention(nativeGeneralParameterRegisters, nativeXMMParameterRegisters, windowsOS, returnType, parameterTypes, hotspotType, valueKindFactory);
    }
    // On x64, parameter locations are the same whether viewed
    // from the caller or callee perspective
    return callingConvention(javaGeneralParameterRegisters, javaXMMParameterRegisters, false, returnType, parameterTypes, hotspotType, valueKindFactory);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:11,代码来源:AMD64HotSpotRegisterConfig.java

示例7: getCallingConvention

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, ValueKindFactory<?> valueKindFactory) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    if (type == HotSpotCallingConventionType.JavaCall || type == HotSpotCallingConventionType.NativeCall) {
        return callingConvention(cpuCallerParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
    }
    if (type == HotSpotCallingConventionType.JavaCallee) {
        return callingConvention(cpuCalleeParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
    }
    throw JVMCIError.shouldNotReachHere();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:12,代码来源:SPARCHotSpotRegisterConfig.java

示例8: getCallingConvention

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, TargetDescription target) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    if (type == HotSpotCallingConventionType.NativeCall) {
        return callingConvention(nativeGeneralParameterRegisters, returnType, parameterTypes, hotspotType, target);
    }
    // On x64, parameter locations are the same whether viewed
    // from the caller or callee perspective
    return callingConvention(javaGeneralParameterRegisters, returnType, parameterTypes, hotspotType, target);
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:11,代码来源:AArch64HotSpotRegisterConfig.java

示例9: getCallingConvention

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
@Override
public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, TargetDescription target) {
    HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
    if (type == HotSpotCallingConventionType.JavaCall || type == HotSpotCallingConventionType.NativeCall) {
        return callingConvention(cpuCallerParameterRegisters, returnType, parameterTypes, hotspotType, target);
    }
    if (type == HotSpotCallingConventionType.JavaCallee) {
        return callingConvention(cpuCalleeParameterRegisters, returnType, parameterTypes, hotspotType, target);
    }
    throw JVMCIError.shouldNotReachHere();
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:12,代码来源:SPARCHotSpotRegisterConfig.java

示例10: create

import jdk.vm.ci.hotspot.HotSpotCallingConventionType; //导入方法依赖的package包/类
/**
 * Creates a {@link HotSpotForeignCallLinkage}.
 *
 * @param descriptor the descriptor of the call
 * @param address the address of the code to call
 * @param effect specifies if the call destroys or preserves all registers (apart from
 *            temporaries which are always destroyed)
 * @param outgoingCcType outgoing (caller) calling convention type
 * @param incomingCcType incoming (callee) calling convention type (can be null)
 * @param transition specifies if this is a {@linkplain #needsDebugInfo() leaf} call
 * @param reexecutable specifies if the call can be re-executed without (meaningful) side
 *            effects. Deoptimization will not return to a point before a call that cannot be
 *            re-executed.
 * @param killedLocations the memory locations killed by the call
 */
public static HotSpotForeignCallLinkage create(MetaAccessProvider metaAccess, CodeCacheProvider codeCache, WordTypes wordTypes, HotSpotForeignCallsProvider foreignCalls,
                ForeignCallDescriptor descriptor, long address, RegisterEffect effect, Type outgoingCcType, Type incomingCcType, Transition transition, boolean reexecutable,
                LocationIdentity... killedLocations) {
    CallingConvention outgoingCc = createCallingConvention(metaAccess, codeCache, wordTypes, foreignCalls, descriptor, outgoingCcType);
    CallingConvention incomingCc = incomingCcType == null ? null : createCallingConvention(metaAccess, codeCache, wordTypes, foreignCalls, descriptor, incomingCcType);
    HotSpotForeignCallLinkageImpl linkage = new HotSpotForeignCallLinkageImpl(descriptor, address, effect, transition, outgoingCc, incomingCc, reexecutable, killedLocations);
    if (outgoingCcType == HotSpotCallingConventionType.NativeCall) {
        linkage.temporaries = foreignCalls.getNativeABICallerSaveRegisters();
    }
    return linkage;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:27,代码来源:HotSpotForeignCallLinkageImpl.java


注:本文中的jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。