Package-level declarations

Types

Link copied to clipboard

An L2ArbitraryConstantOperand is an operand of type L2OperandType.ARBITRARY_CONSTANT. It also holds the actual Java object that is the constant. The object should not generally be an AvailObject, since that's supposed to be handled by an L2ConstantOperand.

Link copied to clipboard
class L2CommentOperand(val comment: String) : L2Operand

An L2CommentOperand holds a descriptive string during level two translation, but this operand emits no actual data into the wordcode stream.

Link copied to clipboard

An L2ConstantOperand is an operand of type L2OperandType.CONSTANT. It also holds the actual AvailObject that is the constant.

Link copied to clipboard

An L2FloatImmediateOperand is an operand of type L2OperandType.FLOAT_IMMEDIATE, which holds a double value representing itself.

Link copied to clipboard
class L2IntImmediateOperand(val value: Int) : L2Operand

An L2IntImmediateOperand is an operand of type L2OperandType.INT_IMMEDIATE, which holds an Int value representing itself.

Link copied to clipboard

An L2Operand knows its L2OperandType and any specific value that needs to be captured for that type of operand.

Link copied to clipboard
class L2PcOperand(targetBlock: L2BasicBlock, var isBackward: Boolean, manifest: L2ValueManifest? = null, val optionalName: String? = null) : L2Operand

An L2PcOperand is an operand of type L2OperandType.PC. It refers to a target L2BasicBlock, that either be branched to at runtime, or captured in some other way that flow control may end up there.

Link copied to clipboard

An L2PcVectorOperand is an operand of type L2OperandType.PC_VECTOR. It holds a List of L2PcOperands.

Link copied to clipboard
class L2PrimitiveOperand(val primitive: Primitive) : L2Operand

An L2PrimitiveOperand is an operand of type L2OperandType.PRIMITIVE. The specific Primitive is captured.

Link copied to clipboard

An L2ReadBoxedOperand is an operand of type L2OperandType.READ_BOXED. It holds the actual L2BoxedRegister that is to be accessed.

Link copied to clipboard
Link copied to clipboard

An L2ReadFloatOperand is an operand of type L2OperandType.READ_FLOAT. It holds the actual L2FloatRegister that is to be accessed.

Link copied to clipboard
Link copied to clipboard

An L2ReadIntOperand is an operand of type L2OperandType.READ_INT. It holds the actual L2IntRegister that is to be accessed.

Link copied to clipboard

An L2ReadIntVectorOperand is an operand of type L2OperandType.READ_INT_VECTOR. It holds a List of L2ReadIntOperands.

Link copied to clipboard
abstract class L2ReadOperand<R : L2Register> : L2Operand

L2ReadOperand abstracts the capabilities of actual register read operands.

Link copied to clipboard
abstract class L2ReadVectorOperand<R : L2Register, RR : L2ReadOperand<R>>(elements: List<RR>) : L2Operand

An L2ReadVectorOperand is an operand of type L2OperandType.READ_BOXED_VECTOR. It holds a List of L2ReadOperands.

Link copied to clipboard
class L2SelectorOperand(val bundle: A_Bundle) : L2Operand

An L2SelectorOperand is an operand of type L2OperandType.SELECTOR. It holds the message bundle that knows the method to invoke.

Link copied to clipboard

An L2WriteBoxedOperand is an operand of type L2OperandType.WRITE_BOXED. It holds the actual L2BoxedRegister that is to be accessed.

Link copied to clipboard

An L2WriteFloatOperand is an operand of type L2OperandType.WRITE_FLOAT. It holds the actual L2FloatRegister that is to be accessed.

Link copied to clipboard

An L2WriteIntOperand is an operand of type L2OperandType.WRITE_INT. It holds the actual L2IntRegister that is to be accessed.

Link copied to clipboard
abstract class L2WriteOperand<R : L2Register>(semanticValues: Set<L2SemanticValue>, restriction: TypeRestriction, register: R) : L2Operand

L2WriteOperand abstracts the capabilities of actual register write operands.

Link copied to clipboard

This mechanism describes a restriction of a type without saying what it's to be applied to.