• 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

Class Branching

Class that processes conditional branches for X#.

Inheritance
System.Object
Emitters
Branching
Inherited Members
Emitters.Compiler
Emitters.Asm
Namespace: XSharp.x86.Emitters
Assembly: XSharp.dll
Syntax
public class Branching : Emitters

Constructors

| Improve this Doc View Source

Branching(Compiler, Assembler)

Declaration
public Branching(Compiler aCompiler, Assembler aAsm)
Parameters
Type Name Description
Compiler aCompiler
Assembler aAsm

Methods

| Improve this Doc View Source

IfConditionGoto(String, String, Object[], String, String)

Declaration
protected void IfConditionGoto(string aOpIf, string aSize, object[] aCompareData, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
System.String aSize
System.Object[] aCompareData
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfConditionPureBlockStart(String, String, String)

Declaration
protected void IfConditionPureBlockStart(string aOpIf, string aOpPureComparators, string aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
System.String aOpPureComparators
System.String aOpOpenBrace
| Improve this Doc View Source

IfConditionPureGoto(String, String, String, String)

Declaration
protected void IfConditionPureGoto(string aOpIf, string aOpPureComparators, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
System.String aOpPureComparators
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfConditionPureReturn(String, String, String)

Declaration
protected void IfConditionPureReturn(string aOpIf, string aPureComparator, string aReturns)
Parameters
Type Name Description
System.String aOpIf
System.String aPureComparator
System.String aReturns
| Improve this Doc View Source

IfRegisterConditionConst(String, Register, String, Object, Object)

Declaration
protected void IfRegisterConditionConst(string aOpIf, Register aRegister, string aOpCompare, object aValue, object aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.Object aValue
System.Object aOpOpenBrace
| Improve this Doc View Source

IfRegisterConditionConst(String, Register, String, String, Object)

Declaration
protected void IfRegisterConditionConst(string aOpIf, Register aRegister, string aOpCompare, string aValue, object aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.String aValue
System.Object aOpOpenBrace
| Improve this Doc View Source

IfRegisterConditionConstGoto(String, Register, String, String, String, String)

Declaration
protected void IfRegisterConditionConstGoto(string aOpIf, Register aRegister, string aOpCompare, string aValue, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.String aValue
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfRegisterConditionConstReturn(String, Register, String, String, Object)

Declaration
protected void IfRegisterConditionConstReturn(string aOpIf, Register aRegister, string aOpCompare, string aValue, object aOpReturn)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.String aValue
System.Object aOpReturn
| Improve this Doc View Source

IfRegisterConditionIntGoto(String, Register, String, Object, String, String)

Declaration
protected void IfRegisterConditionIntGoto(string aOpIf, Register aRegister, string aOpCompare, object aValue, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.Object aValue
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfRegisterConditionRegister(String, Register, String, Register, Object)

Declaration
protected void IfRegisterConditionRegister(string aOpIf, Register aLeftRegister, string aOpCompare, Register aRightRegister, object aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
Register aLeftRegister
System.String aOpCompare
Register aRightRegister
System.Object aOpOpenBrace
| Improve this Doc View Source

IfRegisterConditionRegisterGoto(String, Register, String, Register, String, String)

Declaration
protected void IfRegisterConditionRegisterGoto(string aOpIf, Register aLeftRegister, string aOpCompare, Register aRightRegister, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
Register aLeftRegister
System.String aOpCompare
Register aRightRegister
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfRegisterConditionRegisterReturn(String, Register, String, Object, Object)

Declaration
protected void IfRegisterConditionRegisterReturn(string aOpIf, Register aRegister, string aOpCompare, object aValue, object aOpReturn)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.Object aValue
System.Object aOpReturn
| Improve this Doc View Source

IfRegisterConditionVariable(String, Register, String, Address, Object)

Declaration
protected void IfRegisterConditionVariable(string aOpIf, Register aRegister, string aOpCompare, Address aValue, object aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
Address aValue
System.Object aOpOpenBrace
| Improve this Doc View Source

IfRegisterConditionVariable(String, Register, String, Address, String, String)

Declaration
protected void IfRegisterConditionVariable(string aOpIf, Register aRegister, string aOpCompare, Address aValue, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
Address aValue
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfRegisterConditionVariableAddress(String, Register, String, String, Object)

Declaration
protected void IfRegisterConditionVariableAddress(string aOpIf, Register aRegister, string aOpCompare, string aValue, object aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.String aValue
System.Object aOpOpenBrace
| Improve this Doc View Source

IfRegisterConditionVariableAddressGoto(String, Register, String, String, String, String)

Declaration
protected void IfRegisterConditionVariableAddressGoto(string aOpIf, Register aRegister, string aOpCompare, string aValue, string aGotoKeyword, string aLabel)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.String aValue
System.String aGotoKeyword
System.String aLabel
| Improve this Doc View Source

IfRegisterConditionVariableAddressReturn(String, Register, String, String, Object)

Declaration
protected void IfRegisterConditionVariableAddressReturn(string aOpIf, Register aRegister, string aOpCompare, string aValue, object aOpReturn)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
System.String aValue
System.Object aOpReturn
| Improve this Doc View Source

IfRegisterConditionVariableReturn(String, Register, String, Address, Object)

Declaration
protected void IfRegisterConditionVariableReturn(string aOpIf, Register aRegister, string aOpCompare, Address aValue, object aOpReturn)
Parameters
Type Name Description
System.String aOpIf
Register aRegister
System.String aOpCompare
Address aValue
System.Object aOpReturn
| Improve this Doc View Source

IfSizeAdressConditionConst(String, String, Address, String, String, Object)

Declaration
protected void IfSizeAdressConditionConst(string aOpIf, string aSize, Address aAdress, string aOpCompare, string aConstant, object aOpOpenBrace)
Parameters
Type Name Description
System.String aOpIf
System.String aSize
Address aAdress
System.String aOpCompare
System.String aConstant
System.Object aOpOpenBrace
| Improve this Doc View Source

IfSizeRegisterConditionVariableReturn(String, String, Register, String, Address, Object)

Declaration
protected void IfSizeRegisterConditionVariableReturn(string aOpIf, string aSize, Register aRegister, string aOpCompare, Address aValue, object aOpReturn)
Parameters
Type Name Description
System.String aOpIf
System.String aSize
Register aRegister
System.String aOpCompare
Address aValue
System.Object aOpReturn

See Also

Emitters
  • Improve this Doc
  • View Source
☀
☾
In This Article
Back to top
☀
☾