C# Class Mosa.Platform.x86.Stages.LongOperandTransformationStage

Transforms 64-bit arithmetic to 32-bit operations.
This stage translates all 64-bit operations to appropriate 32-bit operations on architectures without appropriate 64-bit integral operations.
Inheritance: BaseTransformationStage, IIRVisitor
Mostra file Open project: tgiphil/MOSA-Project Class Usage Examples

Public Methods

Method Description
Any64Bit ( Context context ) : bool

Ares the any64 bit.

SplitLongOperand ( BaseMethodCompiler methodCompiler, Operand operand, Operand &operandLow, Operand &operandHigh ) : void

Protected Methods

Method Description
PopulateVisitationDictionary ( ) : void
Setup ( ) : void

Private Methods

Method Description
AddSigned ( Context context ) : void

Visitation function for AddSigned.

AddUnsigned ( Context context ) : void

Visitation function for AddUnsigned.

ArithmeticShiftRight ( Context context ) : void

Visitation function for ArithmeticShiftRightInstruction.

Call ( Context context ) : void

Visitation function for CallInstruction.

CompareInteger ( Context context ) : void

Visitation function for IntegerCompare.

CompareIntegerBranch ( Context context ) : void

Visitation function for IntegerCompareInstruction.

DivSigned ( Context context ) : void

Visitation function for DivSInstruction.

DivUnsigned ( Context context ) : void

Visitation function for DivUInstruction.

ExpandAdd ( Context context ) : void

Expands the add instruction for 64-bit operands.

ExpandAnd ( Context context ) : void

Expands the and instruction for 64-bits.

ExpandArithmeticShiftRight ( Context context ) : void

Expands the arithmetic shift right instruction for 64-bits.

ExpandBinaryBranch ( Context context ) : void

Expands the binary branch instruction for 64-bits.

ExpandComparison ( Context context ) : void

Expands the binary comparison instruction for 64-bits.

ExpandDiv ( Context context ) : void

Expands the div.

ExpandLoad ( Context context ) : void

Expands the load instruction for 64-bits.

ExpandMoveInteger ( Context context ) : void

Expands the move instruction for 64-bits.

ExpandMul ( Context context ) : void

Expands the mul instruction for 64-bit operands.

ExpandNeg ( Context context ) : void

Expands the neg instruction for 64-bits.

ExpandNot ( Context context ) : void

Expands the not instruction for 64-bits.

ExpandOr ( Context context ) : void

Expands the or instruction for 64-bits.

ExpandRem ( Context context ) : void

Expands the rem.

ExpandShiftLeft ( Context context ) : void

Expands the shift left instruction for 64-bits.

ExpandShiftRight ( Context context ) : void

Expands the shift right instruction for 64-bits.

ExpandSignedMove ( Context context ) : void

Expands the signed move instruction for 64-bits.

ExpandStore ( Context context ) : void

Expands the store instruction for 64-bits.

ExpandSub ( Context context ) : void

Expands the sub instruction for 64-bit operands.

ExpandUDiv ( Context context ) : void

Expands the udiv instruction.

ExpandURem ( Context context ) : void

Expands the urem instruction.

ExpandUnsignedMove ( Context context ) : void

Expands the unsigned move instruction for 64-bits.

ExpandXor ( Context context ) : void

Expands the neg instruction for 64-bits.

LoadInteger ( Context context ) : void

Visitation function for Load.

LoadSignExtended ( Context context ) : void

Visitation function for Load Sign Extended.

LoadZeroExtended ( Context context ) : void

Visitation function for Load Zero Extended.

LogicalAnd ( Context context ) : void

Visitation function for LogicalAndInstruction.

LogicalNot ( Context context ) : void

Visitation function for LogicalNotInstruction.

LogicalOr ( Context context ) : void

Visitation function for LogicalOrInstruction.

LogicalXor ( Context context ) : void

Visitation function for LogicalXorInstruction.

MoveInteger ( Context context ) : void

Visitation function for MoveInstruction.

MoveSignExtended ( Context context ) : void

Visitation function for SignExtendedMoveInstruction.

MoveZeroExtended ( Context context ) : void

Zeroes the extended move instruction.

MulSigned ( Context context ) : void

Visitation function for MulSInstruction.

MulUnsigned ( Context context ) : void

Visitation function for MulUInstruction.

RemSigned ( Context context ) : void

Visitation function for RemSigned.

RemUnsigned ( Context context ) : void

Visitation function for RemUInstruction.

ReplaceWithDivisionCall ( Context context, string methodName ) : void
Return ( Context context ) : void

Visitation function for ReturnInstruction.

ShiftLeft ( Context context ) : void

Visitation function for ShiftLeftInstruction.

ShiftRight ( Context context ) : void

Visitation function for ShiftRightInstruction.

SplitLongOperand ( Operand operand, Operand &operandLow, Operand &operandHigh ) : void
StoreInteger ( Context context ) : void

Visitation function for StoreInstruction.

SubSigned ( Context context ) : void

Visitation function for SubSInstruction.

SubUnsigned ( Context context ) : void

Visitation function for SubUInstruction.

Method Details

Any64Bit() public static method

Ares the any64 bit.
public static Any64Bit ( Context context ) : bool
context Mosa.Compiler.Framework.Context The context.
return bool

PopulateVisitationDictionary() protected method

protected PopulateVisitationDictionary ( ) : void
return void

Setup() protected method

protected Setup ( ) : void
return void

SplitLongOperand() public static method

public static SplitLongOperand ( BaseMethodCompiler methodCompiler, Operand operand, Operand &operandLow, Operand &operandHigh ) : void
methodCompiler Mosa.Compiler.Framework.BaseMethodCompiler
operand Mosa.Compiler.Framework.Operand
operandLow Mosa.Compiler.Framework.Operand
operandHigh Mosa.Compiler.Framework.Operand
return void