Package ghidra.pcode.emu.jit.gen.opnd
Enum Class Opnd.MpIntToMpInt
- All Implemented Interfaces:
Opnd.MpToMpConv<Types.TInt,,JitType.IntJitType, JitType.MpIntJitType, Types.TInt, JitType.IntJitType, JitType.MpIntJitType> Serializable,Comparable<Opnd.MpIntToMpInt>,Constable
public static enum Opnd.MpIntToMpInt
extends Enum<Opnd.MpIntToMpInt>
implements Opnd.MpToMpConv<Types.TInt,JitType.IntJitType,JitType.MpIntJitType,Types.TInt,JitType.IntJitType,JitType.MpIntJitType>
Converter from mp-int to mp-int
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum Constants -
Method Summary
Modifier and TypeMethodDescription<N extends Emitter.Next>
Emitter<Emitter.Ent<N, Types.TRef<int[]>>> convertOpndToArray(Emitter<N> em, Opnd<JitType.MpIntJitType> from, JitType.MpIntJitType to, Opnd.Ext ext, Scope scope, int slack) Convert an operand in locals to an array<N extends Emitter.Next>
Opnd.OpndEm<JitType.MpIntJitType, N> convertOpndToOpnd(Emitter<N> em, Opnd<JitType.MpIntJitType> from, JitType.MpIntJitType to, Opnd.Ext ext, Scope scope) Convert an operand in locals to another in localsstatic <N extends Emitter.Next>
Emitter<N> doGenArrExt(Emitter<N> em, Local<Types.TRef<int[]>> arr, int legsOut, int defLegs, Opnd.Ext ext, Scope scope) Emit code that extends a value to fill the rest of an arraystatic Opnd.MpIntToMpIntReturns the enum constant of this class with the specified name.static Opnd.MpIntToMpInt[]values()Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
INSTANCE
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum class has no constant with the specified nameNullPointerException- if the argument is null
-
convertOpndToOpnd
public <N extends Emitter.Next> Opnd.OpndEm<JitType.MpIntJitType,N> convertOpndToOpnd(Emitter<N> em, Opnd<JitType.MpIntJitType> from, JitType.MpIntJitType to, Opnd.Ext ext, Scope scope) Description copied from interface:Opnd.MpToMpConvConvert an operand in locals to another in localsNOTE: This may be accomplished in part be re-using legs from the source operand in the destination operand
- Specified by:
convertOpndToOpndin interfaceOpnd.MpToMpConv<Types.TInt,JitType.IntJitType, JitType.MpIntJitType, Types.TInt, JitType.IntJitType, JitType.MpIntJitType> - Type Parameters:
N- the tail of the stack (...)- Parameters:
em- the emitterfrom- the source operandto- the destination p-code typeext- the kind of extension to applyscope- a scope for generated temporary variables- Returns:
- the resulting operand and emitter with ...
-
doGenArrExt
public static <N extends Emitter.Next> Emitter<N> doGenArrExt(Emitter<N> em, Local<Types.TRef<int[]>> arr, int legsOut, int defLegs, Opnd.Ext ext, Scope scope) Emit code that extends a value to fill the rest of an arrayFor sign extension, this will assume the last filled element of the array so far is the leg having the sign bit. It shifts and extends that bit to fill a new temporary leg and uses it to fill the remaining more-significant legs. NOTE:
legsOutmay be less than the actual size of the array, since slack elements may have been allocated.- Type Parameters:
N- the tail of the stack (...)- Parameters:
em- the emitterarr- a handle to the local containing the arraylegsOut- the number of output legsdefLegs- the number of legs already filledext- the kind of extension to applyscope- a scope for generated temporary variables- Returns:
- the emitter with ...
-
convertOpndToArray
public <N extends Emitter.Next> Emitter<Emitter.Ent<N,Types.TRef<int[]>>> convertOpndToArray(Emitter<N> em, Opnd<JitType.MpIntJitType> from, JitType.MpIntJitType to, Opnd.Ext ext, Scope scope, int slack) Description copied from interface:Opnd.MpToMpConvConvert an operand in locals to an array- Specified by:
convertOpndToArrayin interfaceOpnd.MpToMpConv<Types.TInt,JitType.IntJitType, JitType.MpIntJitType, Types.TInt, JitType.IntJitType, JitType.MpIntJitType> - Type Parameters:
N- the tail of the stack (...)- Parameters:
em- the emitterfrom- the source operandto- the destination p-code typeext- the kind of extension to applyscope- a scope for generated temporary variablesslack- the number of extra (more significant) elements to allocate in the array- Returns:
- the emitter with ..., arrayref
-