cmsx.intermediate Namespace

Classes

public class AddInstruction
public class AddressDescriptor
public class AddressDescriptors
public abstract class AggregateType
public abstract class AggregateValue
public class AndInstruction
public class ArgInstruction
public class ArrayType
public class ArrayValue
public class BasicBlock
public abstract class BinaryInstruction
public class BitCastInstruction
public class BoolType
public class BoolValue
public class BranchInstruction
public class ByteType
public class ByteValue
public class ClsIdOperand
public class ClsIdValue
public class CompileUnit
public class ConstantValue
public class Context
public class ConversionValue
public class DataLocation
public class DataLocations
public class DivInstruction
public class DoubleType
public class DoubleValue
public class ElemAddrInstruction
public class EqualInstruction
public class FP
public class FarFrameLocation
public class Flags
public class FloatToIntInstruction
public class FloatType
public class FloatValue
public class FloatingLiteralOperand
public abstract class FloatingType
public abstract class FrameLocation
public class FrameLocations
public class Function
public class FunctionCallInstruction
public class FunctionType
public class GlobalVariable
public class IdValue
public abstract class Instruction
public class IntToFloatInstruction
public class IntToPtrInstruction
public class IntType
public class IntValue
public abstract class IntegerType
public class Ix
public class JumpInstruction
public class LessInstruction
public class LiteralOperand
public class LiteralValue
public class LoadInstruction
public class LocalInstruction
public class LocalRegister
public abstract class Location
public class LongType
public class LongValue
public class MDBool
public abstract class MDItem
public class MDLong
public class MDString
public class MDStruct
public class MDStructRef
public class MachineCode
public class MachineInstruction
public class MediumFrameLocation
public abstract class MemoryLocation
public class Metadata
public class ModInstruction
public class MulInstruction
public class NearFrameLocation
public class NegInstruction
public class NoOperationInstruction
public class NotInstruction
public class NullValue
public abstract class Operand
public class OrInstruction
public class ParamInstruction
public abstract class ParamRegister
public class ProcedureCallInstruction
public class PtrDiffInstruction
public class PtrOffsetInstruction
public class PtrToIntInstruction
public class PtrType
public class PtrValue
public abstract class Register
public class RegisterDescriptor
public class RegisterDescriptors
public class Registers
public class RetInstruction
public class SByteType
public class SByteValue
public class SP
public class SaveInstruction
public abstract class ScalarType
internal class ScoreLess
public class ShlInstruction
public class ShortType
public class ShortValue
public class ShrInstruction
public class SignExtendInstruction
public abstract class SignedIntegerType
public class StoreInstruction
public class StringArrayValue
public class StringOperand
public class StringValue
public class StructureType
public class StructureValue
public class SubInstruction
public class SwitchInstruction
public class SymbolOperand
public class SymbolValue
public abstract class TerminatorInstruction
public class TrapInstruction
public class TruncateInstruction
public abstract class Type
public class TypeRepository
public class UIntType
public class UIntValue
public class ULongType
public class ULongValue
public class UShortType
public class UShortValue
public abstract class UnaryInstruction
public abstract class UnsignedIntegerType
public abstract class Value
public abstract class ValueInstruction
public class VoidType
public class XorInstruction
public class ZeroExtendInstruction

Functions

public bool CanUseRegYForX(Value* y, RegisterDescriptors& registerDescriptors, AddressDescriptors& addressDescriptors)
public void Compile(const String<char>& intermediateCodeFileName)
internal Pair<RegisterDescriptor*, int> GetMinScoreDescriptor(const List<Pair<RegisterDescriptor*, int>>& descriptorScores)
public RegisterDescriptor* GetOperandReg(Value* operand, Register* reservedReg, RegisterDescriptors& registerDescriptors, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)
public void GetReg(Value* x, Value* y, Value* z, bool useRegYForX, RegisterDescriptors& registerDescriptors, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, RegisterDescriptor*& rx, RegisterDescriptor*& ry, RegisterDescriptor*& rz, Instruction* inst)
public nothrow bool IsPtrType(Type* type)
public nothrow const char* LivenessStr(Liveness liveness)
public void LoadOperandAddress(Value* operand, RegisterDescriptor* targetRegisterDescriptor, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)
public void LoadOperandValue(Value* operand, RegisterDescriptor* targetRegisterDescriptor, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)
public void MakeRegisterDescriptorEmpty(RegisterDescriptor& registerDescriptor, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)

Enumerated Types

public enum Flag
public enum Liveness
public enum Operator

Constants

public const uint epilogId = cast
public const int printMachineCodeStage = 9999
public const uint prologId = cast
public const int separatorInstructionOpCode = -1

Function Details

CanUseRegYForX Function

public bool CanUseRegYForX(Value* y, RegisterDescriptors& registerDescriptors, AddressDescriptors& addressDescriptors)

Definition
Line 314 of cmsxi/RegisterDescriptor.cm


Compile Function

public void Compile(const String<char>& intermediateCodeFileName)

Definition
Line 6 of cmsxi/Compile.cm


GetMinScoreDescriptor Function

internal Pair<RegisterDescriptor*, int> GetMinScoreDescriptor(const List<Pair<RegisterDescriptor*, int>>& descriptorScores)

Definition
Line 177 of cmsxi/RegisterDescriptor.cm


GetOperandReg Function

public RegisterDescriptor* GetOperandReg(Value* operand, Register* reservedReg, RegisterDescriptors& registerDescriptors, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)

Definition
Line 224 of cmsxi/RegisterDescriptor.cm


GetReg Function

public void GetReg(Value* x, Value* y, Value* z, bool useRegYForX, RegisterDescriptors& registerDescriptors, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, RegisterDescriptor*& rx, RegisterDescriptor*& ry, RegisterDescriptor*& rz, Instruction* inst)

Definition
Line 248 of cmsxi/RegisterDescriptor.cm


IsPtrType Function

public nothrow bool IsPtrType(Type* type)

Definition
Line 924 of cmsxi/Type.cm


LivenessStr Function

public nothrow const char* LivenessStr(Liveness liveness)

Definition
Line 17 of cmsxi/Instruction.cm


LoadOperandAddress Function

public void LoadOperandAddress(Value* operand, RegisterDescriptor* targetRegisterDescriptor, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)

Definition
Line 295 of cmsxi/RegisterDescriptor.cm


LoadOperandValue Function

public void LoadOperandValue(Value* operand, RegisterDescriptor* targetRegisterDescriptor, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)

Definition
Line 272 of cmsxi/RegisterDescriptor.cm


MakeRegisterDescriptorEmpty Function

public void MakeRegisterDescriptorEmpty(RegisterDescriptor& registerDescriptor, AddressDescriptors& addressDescriptors, MachineCode& machineCode, int line, Instruction* inst)

Definition
Line 185 of cmsxi/RegisterDescriptor.cm