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


Java InvokeTarget类代码示例

本文整理汇总了Java中jdk.vm.ci.meta.InvokeTarget的典型用法代码示例。如果您正苦于以下问题:Java InvokeTarget类的具体用法?Java InvokeTarget怎么用?Java InvokeTarget使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: directCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directCall(CompilationResultBuilder crb, AArch64MacroAssembler masm, InvokeTarget callTarget, Register scratch, LIRFrameState info, Label label) {
    int before = masm.position();
    if (scratch != null) {
        /*
         * Offset might not fit into a 28-bit immediate, generate an indirect call with a 64-bit
         * immediate address which is fixed up by HotSpot.
         */
        masm.movNativeAddress(scratch, 0L);
        masm.blr(scratch);
    } else {
        // Address is fixed up by HotSpot.
        masm.bl(0);
    }
    if (label != null) {
        // We need this label to be the return address.
        masm.bind(label);
    }
    int after = masm.position();
    crb.recordDirectCall(before, after, callTarget, info);
    crb.recordExceptionHandlers(after, info);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:23,代码来源:AArch64Call.java

示例2: directCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directCall(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget callTarget, Register scratch, boolean align, LIRFrameState info) {
    if (align) {
        emitAlignmentForDirectCall(crb, masm);
    }
    int before = masm.position();
    if (scratch != null) {
        // offset might not fit a 32-bit immediate, generate an
        // indirect call with a 64-bit immediate
        masm.movq(scratch, 0L);
        masm.call(scratch);
    } else {
        masm.call();
    }
    int after = masm.position();
    crb.recordDirectCall(before, after, callTarget, info);
    crb.recordExceptionHandlers(after, info);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:AMD64Call.java

示例3: directCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directCall(CompilationResultBuilder crb, SPARCMacroAssembler masm, InvokeTarget callTarget, Register scratch, LIRFrameState info) {
    int before;
    if (scratch != null) {
        // offset might not fit a 30-bit displacement, generate an
        // indirect call with a 64-bit immediate
        before = masm.position();
        masm.sethix(0L, scratch, true);
        masm.jmpl(scratch, 0, o7);
    } else {
        before = masm.call(0);
    }
    masm.nop();  // delay slot
    int after = masm.position();
    crb.recordDirectCall(before, after, callTarget, info);
    crb.recordExceptionHandlers(after, info);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:18,代码来源:SPARCCall.java

示例4: getCallSiteRelocationInfo

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
/**
 * Get information about the call site. Name of the callee and relocation call type.
 */
private static CallSiteRelocationInfo getCallSiteRelocationInfo(Call call) {
    InvokeTarget callTarget = call.target;
    if (callTarget instanceof HotSpotResolvedJavaMethod) {
        return new JavaCallSiteRelocationInfo(call, (HotSpotResolvedJavaMethod) callTarget);
    } else if (callTarget instanceof HotSpotForeignCallLinkage) {
        return new ForeignCallSiteRelocationInfo(call, (HotSpotForeignCallLinkage) callTarget);
    } else {
        throw new InternalError("Unhandled call type found in infopoint: " + callTarget);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:14,代码来源:InfopointProcessor.java

示例5: indirectCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void indirectCall(CompilationResultBuilder crb, AArch64MacroAssembler masm, Register dst, InvokeTarget callTarget, LIRFrameState info) {
    int before = masm.position();
    masm.blr(dst);
    int after = masm.position();
    crb.recordIndirectCall(before, after, callTarget, info);
    crb.recordExceptionHandlers(after, info);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:9,代码来源:AArch64Call.java

示例6: directJmp

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directJmp(CompilationResultBuilder crb, AArch64MacroAssembler masm, InvokeTarget target) {
    int before = masm.position();
    // Address is fixed up later by c++ code.
    masm.jmp();
    int after = masm.position();
    crb.recordDirectCall(before, after, target, null);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:9,代码来源:AArch64Call.java

示例7: indirectJmp

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void indirectJmp(CompilationResultBuilder crb, AArch64MacroAssembler masm, Register dst, InvokeTarget target) {
    int before = masm.position();
    masm.jmp(dst);
    int after = masm.position();
    crb.recordIndirectCall(before, after, target, null);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:8,代码来源:AArch64Call.java

示例8: directConditionalJmp

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directConditionalJmp(CompilationResultBuilder crb, AArch64MacroAssembler masm, InvokeTarget target, AArch64Assembler.ConditionFlag cond) {
    int before = masm.position();
    masm.branchConditionally(cond);
    int after = masm.position();
    crb.recordDirectCall(before, after, target, null);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:8,代码来源:AArch64Call.java

示例9: directJmp

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directJmp(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget target) {
    int before = masm.position();
    masm.jmp(0, true);
    int after = masm.position();
    crb.recordDirectCall(before, after, target, null);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:8,代码来源:AMD64Call.java

示例10: directConditionalJmp

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void directConditionalJmp(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget target, ConditionFlag cond) {
    int before = masm.position();
    masm.jcc(cond, 0, true);
    int after = masm.position();
    crb.recordDirectCall(before, after, target, null);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:8,代码来源:AMD64Call.java

示例11: indirectCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void indirectCall(CompilationResultBuilder crb, AMD64MacroAssembler masm, Register dst, InvokeTarget callTarget, LIRFrameState info) {
    int before = masm.position();
    masm.call(dst);
    int after = masm.position();
    crb.recordIndirectCall(before, after, callTarget, info);
    crb.recordExceptionHandlers(after, info);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:9,代码来源:AMD64Call.java

示例12: indirectJmp

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void indirectJmp(CompilationResultBuilder crb, SPARCMacroAssembler masm, Register dst, InvokeTarget target) {
    int before = masm.position();
    masm.sethix(0L, dst, true);
    masm.jmp(new SPARCAddress(dst, 0));
    masm.nop();  // delay slot
    int after = masm.position();
    crb.recordIndirectCall(before, after, target, null);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:10,代码来源:SPARCCall.java

示例13: indirectCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public static void indirectCall(CompilationResultBuilder crb, SPARCMacroAssembler masm, Register dst, InvokeTarget callTarget, LIRFrameState info) {
    int before = masm.jmpl(dst, 0, o7);
    masm.nop();  // delay slot
    int after = masm.position();
    crb.recordIndirectCall(before, after, callTarget, info);
    crb.recordExceptionHandlers(after, info);
    masm.ensureUniquePC();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:9,代码来源:SPARCCall.java

示例14: recordDirectCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public void recordDirectCall(int posBefore, int posAfter, InvokeTarget callTarget, LIRFrameState info) {
    DebugInfo debugInfo = info != null ? info.debugInfo() : null;
    compilationResult.recordCall(posBefore, posAfter - posBefore, callTarget, debugInfo, true);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:5,代码来源:CompilationResultBuilder.java

示例15: recordIndirectCall

import jdk.vm.ci.meta.InvokeTarget; //导入依赖的package包/类
public void recordIndirectCall(int posBefore, int posAfter, InvokeTarget callTarget, LIRFrameState info) {
    DebugInfo debugInfo = info != null ? info.debugInfo() : null;
    compilationResult.recordCall(posBefore, posAfter - posBefore, callTarget, debugInfo, false);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:5,代码来源:CompilationResultBuilder.java


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