use of jdk.vm.ci.meta.Value in project graal by oracle.
the class SPARCHotSpotBackendFactory method createNativeABICallerSaveRegisters.
@SuppressWarnings("unused")
private static Value[] createNativeABICallerSaveRegisters(GraalHotSpotVMConfig config, RegisterConfig regConfig) {
Set<Register> callerSavedRegisters = new HashSet<>();
SPARC.fpusRegisters.addTo(callerSavedRegisters);
SPARC.fpudRegisters.addTo(callerSavedRegisters);
callerSavedRegisters.add(SPARC.g1);
callerSavedRegisters.add(SPARC.g4);
callerSavedRegisters.add(SPARC.g5);
Value[] nativeABICallerSaveRegisters = new Value[callerSavedRegisters.size()];
int i = 0;
for (Register reg : callerSavedRegisters) {
nativeABICallerSaveRegisters[i] = reg.asValue();
i++;
}
return nativeABICallerSaveRegisters;
}
use of jdk.vm.ci.meta.Value in project graal by oracle.
the class SPARCHotSpotLIRGenerator method emitNullCheck.
@Override
public void emitNullCheck(Value address, LIRFrameState state) {
PlatformKind kind = address.getPlatformKind();
if (kind == WORD) {
CompressEncoding encoding = config.getOopEncoding();
Value uncompressed = emitUncompress(address, encoding, false);
append(new NullCheckOp(asAddressValue(uncompressed), state));
} else {
super.emitNullCheck(address, state);
}
}
use of jdk.vm.ci.meta.Value in project graal by oracle.
the class SPARCHotSpotLIRGenerator method emitDeoptimizeCaller.
@Override
public void emitDeoptimizeCaller(DeoptimizationAction action, DeoptimizationReason reason) {
Value actionAndReason = emitJavaConstant(getMetaAccess().encodeDeoptActionAndReason(action, reason, 0));
Value nullValue = emitJavaConstant(JavaConstant.NULL_POINTER);
moveDeoptValuesToThread(actionAndReason, nullValue);
append(new SPARCHotSpotDeoptimizeCallerOp());
}
use of jdk.vm.ci.meta.Value in project graal by oracle.
the class SPARCHotSpotLIRGenerator method emitCompareBranch.
@Override
public void emitCompareBranch(PlatformKind cmpKind, Value x, Value y, Condition cond, boolean unorderedIsTrue, LabelRef trueDestination, LabelRef falseDestination, double trueDestinationProbability) {
Value localX = x;
Value localY = y;
if (localX instanceof HotSpotObjectConstant) {
localX = load(localX);
}
if (localY instanceof HotSpotObjectConstant) {
localY = load(localY);
}
super.emitCompareBranch(cmpKind, localX, localY, cond, unorderedIsTrue, trueDestination, falseDestination, trueDestinationProbability);
}
use of jdk.vm.ci.meta.Value in project graal by oracle.
the class SPARCHotSpotNodeLIRBuilder method visitBreakpointNode.
@Override
public void visitBreakpointNode(BreakpointNode node) {
JavaType[] sig = new JavaType[node.arguments().size()];
for (int i = 0; i < sig.length; i++) {
sig[i] = node.arguments().get(i).stamp(NodeView.DEFAULT).javaType(gen.getMetaAccess());
}
Value[] parameters = visitInvokeArguments(gen.getRegisterConfig().getCallingConvention(HotSpotCallingConventionType.JavaCall, null, sig, gen), node.arguments());
append(new SPARCBreakpointOp(parameters));
}
Aggregations