• Home
  • Install
  • Cosmos Website
  • Articles
  • Cosmos
  • X#
  • IL2CPU
Show / Hide Table of Contents
  • XSharp
    • AsmGenerator
    • AsmGenerator.FlagBool
    • Compiler
    • Compiler.Block
    • Compiler.BlockList
    • Compiler.BlockType
    • Extensions
    • Parser
    • Parser.CharType
    • Token
    • TokenList
    • TokenPatterns
    • TokenPatterns.Block
    • TokenPatterns.Blocks
    • TokenPatterns.CodeFunc
    • TokenPatterns.Pattern
    • TokenType
    • XS
    • XS.FPU
    • XS.SSE
    • XS.SSE2
    • XS.SSE3
    • XSRegisters
    • XSRegisters.Register
    • XSRegisters.Register16
    • XSRegisters.Register32
    • XSRegisters.Register8
    • XSRegisters.RegisterFPU
    • XSRegisters.RegisterSegment
    • XSRegisters.RegisterSize
    • XSRegisters.RegisterXMM
  • XSharp.Assembler
    • Assembler
    • AssemblerMethod
    • BaseAssemblerElement
    • Comment
    • DataEndIfDefined
    • DataIfDefined
    • DataIfNotDefined
    • DataMember
    • Define
    • ElementReference
    • Else
    • EndIfDefined
    • IDefine
    • IEndIfDefined
    • IfDefined
    • IfNotDefined
    • IIfDefined
    • IIfNotDefined
    • InfraExtensions
    • Instruction
    • Label
    • LiteralAssemblerCode
    • OpCodeAttribute
    • TypeComparer
  • XSharp.Assembler.x86
    • Add
    • AddWithCarry
    • And
    • Call
    • ClearInterruptFlag
    • ClrCarryFlag
    • ClrDirFlag
    • CmpXchg
    • Compare
    • ConditionalJump
    • ConditionalMove
    • ConditionalTestEnum
    • ConvByteToWord
    • CpuId
    • DebugNoop
    • Dec
    • Divide
    • ExternalLabel
    • Halt
    • IDivide
    • IInstructionWithArgument
    • IInstructionWithCondition
    • IInstructionWithDestination
    • IInstructionWithPrefix
    • IInstructionWithSize
    • IInstructionWithSource
    • Imul
    • INC
    • InfraExtensions
    • InFromDX
    • Instruction
    • Instruction.InstructionSize
    • Instruction.InstructionSizes
    • Instruction.OperandMemoryKinds
    • InstructionPrefixes
    • InstructionWithDestination
    • InstructionWithDestinationAndSize
    • InstructionWithDestinationAndSource
    • InstructionWithDestinationAndSourceAndArgument
    • InstructionWithDestinationAndSourceAndSize
    • InstructionWithSize
    • INT
    • INT1
    • INT3
    • Interrupt
    • IRET
    • Jump
    • JumpBase
    • JumpToSegment
    • Lea
    • Lgdt
    • Lidt
    • LoadStatusFlags
    • Mov
    • MoveCR
    • MoveD
    • MoveSignExtend
    • MoveToDR6
    • MoveZeroExtend
    • Movs
    • Multiply
    • Neg
    • Noop
    • Not
    • Or
    • OutToDX
    • Pop
    • Popad
    • Popfd
    • Push
    • Pushad
    • Pushfd
    • Rdmsr
    • Rdtsc
    • Registers
    • RegistersEnum
    • Return
    • RotateLeft
    • RotateRight
    • RotateThroughCarryRight
    • Scas
    • SetByteOnCondition
    • ShiftLeft
    • ShiftLeftArithmetic
    • ShiftLeftDouble
    • ShiftRight
    • ShiftRightArithmetic
    • ShiftRightDouble
    • SignExtendAX
    • Sti
    • Stos
    • Sub
    • SubWithCarry
    • Test
    • Xchg
    • Xor
  • XSharp.Assembler.x86.SSE
    • AddPD
    • AddSD
    • AddSS
    • AndPD
    • AndPS
    • ComparePD
    • ComparePS
    • ComparePseudoOpcodes
    • CompareSD
    • CompareSS
    • ConvertPD2DQAndTruncate
    • ConvertSD2SI
    • ConvertSD2SIAndTruncate
    • ConvertSD2SS
    • ConvertSI2SD
    • ConvertSI2SS
    • ConvertSS2SD
    • ConvertSS2SI
    • ConvertSS2SIAndTruncate
    • DivPD
    • DivPS
    • DivSD
    • DivSS
    • InstructionWithDestinationAndSourceAndPseudoOpcodes
    • MaxSS
    • MinSS
    • MoveAPD
    • MoveAPS
    • MoveDoubleAndDuplicate
    • MoveDoubleAndDupplicate
    • MoveDQA
    • MoveDQU
    • MoveHLPD
    • MoveHLPS
    • MoveHPD
    • MoveHPS
    • MoveLHPS
    • MoveLPD
    • MoveQ
    • MoveSD
    • MoveSS
    • MoveUPD
    • MoveUPS
    • MulPD
    • MulPS
    • MulSD
    • MulSS
    • OrPS
    • Por
    • Psrld
    • Shufps
    • SqrtScalardDouble
    • SSEInit
    • SubPD
    • SubPS
    • SubSD
    • SubSS
    • UnpackLowDouble
    • XorPD
    • XorPS
  • XSharp.Assembler.x86.X86
    • Cmps
  • XSharp.Assembler.x86.X86.SSE
    • AddPS
  • XSharp.Assembler.x86.X86.x87
    • FloatCompareAnd2Pop
    • FloatPushOne
    • FloatPushZero
    • FloatUCompareAnd2Pop
  • XSharp.Assembler.x86.x87
    • FloatABS
    • FloatAdd
    • FloatAddAndPop
    • FloatClearEx
    • FloatCompare
    • FloatCompareAndPop
    • FloatCompareAndSet
    • FloatCompareAndSetAndPop
    • FloatCompareOrderAndSetAndPop
    • FloatCompareOrderSetAndPop
    • FloatConditionalMoveTestEnum
    • FloatCosine
    • FloatDecTopPointer
    • FloatDivide
    • FloatDivideAndPop
    • FloatDivideAndPopReverse
    • FloatDivideReverse
    • FloatFree
    • FloatIncTopPointer
    • FloatInit
    • FloatLoad
    • FloatMul
    • FloatMulAndPop
    • FloatNegate
    • FloatPop
    • FloatPRem
    • FloatPRem1
    • FloatRound
    • FloatSine
    • FloatSqrt
    • FloatStore
    • FloatStoreAndPop
    • FloatSub
    • FloatSubAndPop
    • FloatSubAndPopReverse
    • FloatSubReverse
    • FloatTan
    • FloatTest
    • FloatUCompare
    • FloatUCompareAndPop
    • FloatXchg
    • FXSave
    • FXStore
    • IntAdd
    • IntCompare
    • IntCompareAndPop
    • IntDiv
    • IntDivReverse
    • IntLoad
    • IntMul
    • IntStore
    • IntStoreAndPop
    • IntStoreWithTrunc
    • IntSub
    • IntSubReverse
  • XSharp.Tokens
    • AsKeyword
    • Compare
    • Compare<TLeftValueType, TComparatorType, TRightValueType>
    • CompareConstConst
    • CompareConstInt16
    • CompareConstInt32
    • CompareConstInt8
    • CompareConstVar
    • CompareConstVarAddr
    • CompareInt16Const
    • CompareInt16Int16
    • CompareInt16Var
    • CompareInt32Const
    • CompareInt32Int32
    • CompareInt32Var
    • CompareInt32VarAddr
    • CompareInt8Const
    • CompareInt8Int8
    • CompareInt8Var
    • CompareMem<TLeftValueType, TComparatorType, TRightValueType>
    • CompareReg08Const
    • CompareReg08Reg08
    • CompareReg08Var
    • CompareReg16Const
    • CompareReg16Int16
    • CompareReg16Reg16
    • CompareReg16Var
    • CompareReg32Const
    • CompareReg32Int32
    • CompareReg32Reg32
    • CompareReg32Var
    • CompareReg8Int8
    • CompareRegConst
    • CompareRegVar
    • CompareRegVarAddr
    • CompareVar
    • CompareVarAddrConst
    • CompareVarAddrInt32
    • CompareVarAddrVar
    • CompareVarAddrVarAddr
    • CompareVarConst
    • CompareVarInt16
    • CompareVarInt32
    • CompareVarInt8
    • CompareVarVar
    • CompareVarVarAddr
    • CompareWithMem
    • Const
    • ConstKeyword
    • FunctionKeyword
    • GotoKeyword
    • Identifier
    • If
    • Int08u
    • Int16u
    • Int32u
    • Interrupt
    • NamespaceKeyword
    • NOP
    • Num
    • OpBitwise
    • OpComment
    • OpCompare
    • OpIncDec
    • OpInclude
    • OpLiteral
    • OpMath
    • OpPureComparators
    • OpRotate
    • OpShift
    • PopAll
    • PortKeyword
    • PushAll
    • Reg
    • Reg08
    • Reg16
    • Reg32
    • Repeat
    • Return
    • Size
    • TestKeyword
    • Times
    • Variable
    • VariableAddress
    • VarKeyword
    • While
    • ZeroParamOp
  • XSharp.x86
    • Map
    • OpCode
    • Register
    • Register.Names
  • XSharp.x86.Assemblers
    • Assembler
    • NASM
  • XSharp.x86.Emitters
    • AllEmitters
    • Assignments
    • BitwiseEmitters
    • Branching
    • Comments
    • Emitters
    • IncrementDecrement
    • Math
    • Namespace
    • Ports
    • PushPop
    • ShiftRotate
    • Test
    • ZeroParamOps
  • XSharp.x86.Params
    • Address
    • i08u
    • i16u
    • i32u
    • Identifier
    • List
    • MemoryAddress
    • Num
    • Param
    • Reg
    • Reg08
    • Reg16
    • Reg32
    • RegisterAddress
    • Root
    • Size

Namespace XSharp

Classes

AsmGenerator

Compiler

Compiler.Block

Compiler.BlockList

Extensions

Parser

Parser recognizes the following tokens:

  • _123 -> Number
  • _REG -> All registers
  • _REGADDR -> All 32-bit registers
  • 1 -> Number as well
  • _ABC -> Random label, used indirectly (ie, used as a field)
  • #_ABC -> Random label, used for the value (ie, pointer to the field)

Token

TokenList

TokenPatterns

This class is able to translate a single X# source code line into one or more target assembler source code and data lines. The class is a group of pattern each of which defines a transformation function from the X# syntax to the target assembler syntax.

TokenPatterns.Block

TokenPatterns.Blocks

TokenPatterns.Pattern

Describe a single pattern with its list of tokens that might include pattern reserved syntax token and a transformation function. For ease of search and performance an hashcode value is computed on the tokens list content and later used for searching a pattern matching an actual line of X# code source.

XS

XS.FPU

XS.SSE

XS.SSE2

XS.SSE3

XSRegisters

XSRegisters.Register

XSRegisters.Register16

XSRegisters.Register32

XSRegisters.Register8

XSRegisters.RegisterFPU

XSRegisters.RegisterSegment

XSRegisters.RegisterXMM

Enums

AsmGenerator.FlagBool

Compiler.BlockType

Parser.CharType

TokenType

XSRegisters.RegisterSize

Delegates

TokenPatterns.CodeFunc

☀
☾
In This Article
Back to top
☀
☾