Package ghidra.pcode.emu.jit.gen.op
Interface IntBitwiseBinOpGen<T extends JitBinOp>
- Type Parameters:
T- the class of p-code op node in the use-def graph
- All Superinterfaces:
BinOpGen<T>,IntOpBinOpGen<T>,OpGen<T>
- All Known Implementing Classes:
BoolAndOpGen,BoolOrOpGen,BoolXorOpGen,IntAndOpGen,IntOrOpGen,IntXorOpGen
An extension for bitwise binary operators
This provides a simple strategy for multi-precision integer implementation. Since all bit
positions are considered independently, we just apply the same
IntOpBinOpGen.opForInt(Emitter, IntJitType) operator to each pair of corresponding legs independently
to compute each corresponding output leg.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.pcode.emu.jit.gen.op.BinOpGen
BinOpGen.TakeOutNested classes/interfaces inherited from interface ghidra.pcode.emu.jit.gen.op.OpGen
OpGen.DeadOpResult, OpGen.LiveOpResult, OpGen.OpResult -
Method Summary
Modifier and TypeMethodDescriptiondefault <THIS extends JitCompiledPassage>
Emitter<Emitter.Bot> genRunMpInt(Emitter<Emitter.Bot> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, T op, JitType.MpIntJitType type, Scope scope) Emit the JVM bytecode to perform the operator with multi-precision operands.default booleanisSigned()Whether this operator is signedMethods inherited from interface ghidra.pcode.emu.jit.gen.op.BinOpGen
ext, genMpDelegationToStaticMethod, rExtMethods inherited from interface ghidra.pcode.emu.jit.gen.op.IntOpBinOpGen
genRun, opForInt, opForLong
-
Method Details
-
isSigned
default boolean isSigned()Description copied from interface:BinOpGenWhether this operator is signedIn many cases, the operator itself is not affected by the signedness of the operands; however, if size adjustments to the operands are needed, this can determine how those operands are extended.
-
genRunMpInt
default <THIS extends JitCompiledPassage> Emitter<Emitter.Bot> genRunMpInt(Emitter<Emitter.Bot> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, T op, JitType.MpIntJitType type, Scope scope) Description copied from interface:IntOpBinOpGenEmit the JVM bytecode to perform the operator with multi-precision operands.- Specified by:
genRunMpIntin interfaceIntOpBinOpGen<T extends JitBinOp>- Type Parameters:
THIS- the type of the generated passage- Parameters:
em- the emitter typed with the empty stacklocalThis- a handle to the local holding thethisreferencegen- the code generatorop- the p-code optype- the p-code type of the operandsscope- a scope for generating temporary local storage- Returns:
- the emitter typed with the empty stack
-