RegisterKind

enum RegisterKind : Enum<L2Register.RegisterKind>

One of the kinds of registers that Level Two supports.

Parameters

kindName

A descriptive name for this kind of register.

prefix

The prefix to use when naming registers of this kind.

jvmTypeString

The canonical String used to identify this Type of register to the JVM.

loadInstruction

The JVM instruction for loading.

storeInstruction

The JVM instruction for storing.

restrictionFlag

The corresponding RestrictionFlagEncoding.

Entries

Link copied to clipboard
FLOAT_KIND("float", "f", Type.DOUBLE_TYPE.descriptor, Opcodes.DLOAD, Opcodes.DSTORE, UNBOXED_FLOAT_FLAG)

The kind of register that holds a double.

Link copied to clipboard
INTEGER_KIND("int", "i", Type.INT_TYPE.descriptor, Opcodes.ILOAD, Opcodes.ISTORE, UNBOXED_INT_FLAG)

The kind of register that holds an Int.

Link copied to clipboard
BOXED_KIND("boxed", "r", Type.getDescriptor(AvailObject::class.java), Opcodes.ALOAD, Opcodes.ASTORE, BOXED_FLAG)

The kind of register that holds an AvailObject.

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun <R : L2Register, RR : L2ReadOperand<R>, WR : L2WriteOperand<R>, RV : L2ReadVectorOperand<R, RR>> move(): L2_MOVE<R, RR, WR, RV>

Answer a suitable L2_MOVE operation for transferring values of this kind.

Link copied to clipboard
abstract fun <R : L2Register, RR : L2ReadOperand<R>> readOperand(    semanticValue: L2SemanticValue,     restriction: TypeRestriction,     register: R): RR

Answer a suitable L2ReadOperand for extracting the indicated L2SemanticValue of this kind.

Properties

Link copied to clipboard
val jvmTypeString: String
Link copied to clipboard
val kindName: String

The descriptive name of this register kind.

Link copied to clipboard
val loadInstruction: Int

The JVM instruction that loads a register of this kind.

Link copied to clipboard
val name: String
Link copied to clipboard
val ordinal: Int
Link copied to clipboard
val prefix: String

The prefix to use for registers of this kind.

Link copied to clipboard

The RestrictionFlagEncoding used to indicate a TypeRestriction has an available register of this kind.

Link copied to clipboard
val storeInstruction: Int

The JVM instruction for storing.