Package ghidra.pcode.emu.jit.gen.opnd
Interface Opnd.StackToMpConv<FT extends Types.BPrim<?>,FJT extends JitType.SimpleJitType<FT,FJT>,TT extends Types.BPrim<?>,TLT extends JitType.SimpleJitType<TT,TLT>,TJT extends JitType.LeggedJitType<TT,TLT>>
- Type Parameters:
FT- the "from" JVM typeFJT- the "from" p-code typeTT- the "to" JVM type for each mp legTLT- the "to" p-code type for each mp legTJT- the "to" p-code type
- All Known Implementing Classes:
Opnd.DoubleToMpInt,Opnd.FloatToMpInt,Opnd.IntToMpInt,Opnd.LongToMpInt
public static interface Opnd.StackToMpConv<FT extends Types.BPrim<?>,FJT extends JitType.SimpleJitType<FT,FJT>,TT extends Types.BPrim<?>,TLT extends JitType.SimpleJitType<TT,TLT>,TJT extends JitType.LeggedJitType<TT,TLT>>
An interface for converting simple stack operands to multi-precision operands
-
Method Summary
Modifier and TypeMethodDescription<N1 extends Emitter.Next,N0 extends Emitter.Ent<N1, FT>>
Emitter<Emitter.Ent<N1, Types.TRef<int[]>>> convertStackToArray(Emitter<N0> em, FJT from, String name, TJT to, Opnd.Ext ext, Scope scope, int slack) Convert a stack operand to an mp operand in an array<N1 extends Emitter.Next,N0 extends Emitter.Ent<N1, FT>>
Opnd.OpndEm<TJT, N1> Convert a stack operand to an mp operand in locals
-
Method Details
-
convertStackToOpnd
<N1 extends Emitter.Next,N0 extends Emitter.Ent<N1, Opnd.OpndEm<TJT,FT>> N1> convertStackToOpnd(Emitter<N0> em, FJT from, String name, TJT to, Opnd.Ext ext, Scope scope) Convert a stack operand to an mp operand in locals- Type Parameters:
N1- the tail of the stack (...)N0- ..., value- Parameters:
em- the emitterfrom- the source p-code typename- the name to give the resulting operandto- the destination p-code typeext- the kind of extension to applyscope- a scope for generated temporary locals- Returns:
- the resulting operand and the emitter with ...
-
convertStackToArray
<N1 extends Emitter.Next,N0 extends Emitter.Ent<N1, Emitter<Emitter.Ent<N1,FT>> Types.TRef<int[]>>> convertStackToArray(Emitter<N0> em, FJT from, String name, TJT to, Opnd.Ext ext, Scope scope, int slack) Convert a stack operand to an mp operand in an array- Type Parameters:
N1- the tail of the stack (...)N0- ..., value- Parameters:
em- the emitterfrom- the source p-code typename- the name to give the resulting operandto- the destination p-code typeext- the kind of extension to applyscope- a scope for generated temporary localsslack- the number of extra (more significant) elements to allocate in the array- Returns:
- the emitter with ..., arrayref
-