use of de.mirkosertic.bytecoder.ssa.GetFieldExpression in project Bytecoder by mirkosertic.
the class OpenCLCompileBackend method registerInputs.
private void registerInputs(BytecodeLinkerContext aContext, BytecodeLinkedClass aKernelClass, Value aValue, OpenCLInputOutputs aInputOutputs) {
if (aValue instanceof GetFieldExpression) {
GetFieldExpression theGetField = (GetFieldExpression) aValue;
BytecodeLinkedClass theClass = aContext.resolveClass(BytecodeObjectTypeRef.fromUtf8Constant(theGetField.getField().getClassIndex().getClassConstant().getConstant()));
if (theClass == aKernelClass) {
BytecodeResolvedFields theInstanceFields = aKernelClass.resolvedFields();
BytecodeResolvedFields.FieldEntry theField = theInstanceFields.fieldByName(theGetField.getField().getNameAndTypeIndex().getNameAndType().getNameIndex().getName().stringValue());
aInputOutputs.registerReadFrom(theField);
}
}
}
use of de.mirkosertic.bytecoder.ssa.GetFieldExpression in project Bytecoder by mirkosertic.
the class OpenCLWriter method printValue.
private void printValue(Value aValue) {
if (aValue instanceof Variable) {
Variable theVariable = (Variable) aValue;
print(theVariable.getName());
} else if (aValue instanceof InvokeVirtualMethodExpression) {
printInvokeVirtual((InvokeVirtualMethodExpression) aValue);
} else if (aValue instanceof InvokeStaticMethodExpression) {
printInvokeStatic((InvokeStaticMethodExpression) aValue);
} else if (aValue instanceof GetFieldExpression) {
printGetFieldValue((GetFieldExpression) aValue);
} else if (aValue instanceof ArrayEntryExpression) {
printArrayEntryValue((ArrayEntryExpression) aValue);
} else if (aValue instanceof BinaryExpression) {
printBinaryValue((BinaryExpression) aValue);
} else if (aValue instanceof IntegerValue) {
printIntegerValue((IntegerValue) aValue);
} else if (aValue instanceof LongValue) {
printLongValue((LongValue) aValue);
} else if (aValue instanceof FloatValue) {
printFloatValue((FloatValue) aValue);
} else if (aValue instanceof DoubleValue) {
printDoubleValue((DoubleValue) aValue);
} else if (aValue instanceof TypeConversionExpression) {
printTypeConversionValue((TypeConversionExpression) aValue);
} else if (aValue instanceof CompareExpression) {
printCompareExpression((CompareExpression) aValue);
} else if (aValue instanceof DirectInvokeMethodExpression) {
printDirectInvokeMethodExpression((DirectInvokeMethodExpression) aValue);
} else {
throw new IllegalArgumentException("Not supported : " + aValue);
}
}
Aggregations