| 
    decompiler
    1.0.0
    
   | 
 
A generic unary operator: one input and one output. More...
#include <typeop.hh>
  
Public Member Functions | |
| TypeOpUnary (TypeFactory *t, OpCode opc, const string &n, type_metatype mout, type_metatype min) | |
| Constructor.  | |
| virtual Datatype * | getOutputLocal (const PcodeOp *op) const | 
| Find the minimal (or suggested) data-type of an output to this op-code.  More... | |
| virtual Datatype * | getInputLocal (const PcodeOp *op, int4 slot) const | 
| Find the minimal (or suggested) data-type of an input to this op-code.  More... | |
| virtual void | printRaw (ostream &s, const PcodeOp *op) | 
| Print (for debugging purposes) this specific PcodeOp to the stream.  More... | |
  Public Member Functions inherited from TypeOp | |
| TypeOp (TypeFactory *t, OpCode opc, const string &n) | |
| Constructor.  More... | |
| virtual | ~TypeOp (void) | 
| Destructor.  | |
| const string & | getName (void) const | 
| Get the display name of the op-code.  | |
| OpCode | getOpcode (void) const | 
| Get the op-code value.  | |
| uint4 | getFlags (void) const | 
| Get the properties associated with the op-code.  | |
| OpBehavior * | getBehavior (void) const | 
| Get the behavior associated with the op-code.  | |
| bool | markExplicitUnsigned (PcodeOp *op, int4 slot) const | 
| Check if a constant input should be explicitly labeled as unsigned.  More... | |
| uintb | evaluateUnary (int4 sizeout, int4 sizein, uintb in1) const | 
| Emulate the unary op-code on an input value.  More... | |
| uintb | evaluateBinary (int4 sizeout, int4 sizein, uintb in1, uintb in2) const | 
| Emulate the binary op-code on an input value.  More... | |
| uintb | recoverInputBinary (int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const | 
| Reverse the binary op-code operation, recovering a constant input value.  More... | |
| uintb | recoverInputUnary (int4 sizeout, uintb out, int4 sizein) const | 
| Reverse the unary op-code operation, recovering a constant input value.  More... | |
| bool | isCommutative (void) const | 
| Return true if this op-code is commutative.  More... | |
| bool | inheritsSign (void) const | 
| Return true if the op-code inherits it signedness from its inputs.  | |
| virtual Datatype * | getOutputToken (const PcodeOp *op, CastStrategy *castStrategy) const | 
| Find the data-type of the output that would be assigned by a compiler.  More... | |
| virtual Datatype * | getInputCast (const PcodeOp *op, int4 slot, const CastStrategy *castStrategy) const | 
| Find the data-type of the input to a specific PcodeOp.  More... | |
| virtual void | push (PrintLanguage *lng, const PcodeOp *op) const =0 | 
| Push the specific PcodeOp to the emitter's RPN stack.  More... | |
| virtual string | getOperatorName (const PcodeOp *op) const | 
| Get the name of the op-code as it should be displayed in context.  More... | |
Private Member Functions | |
| virtual void | setMetatypeIn (type_metatype val) | 
| Set the data-type associated with inputs to this opcode.  | |
| virtual void | setMetatypeOut (type_metatype val) | 
| Set the data-type associated with outputs of this opcode.  | |
Private Attributes | |
| type_metatype | metaout | 
| The metatype of the output.  | |
| type_metatype | metain | 
| The metatype of the input.  | |
Additional Inherited Members | |
  Public Types inherited from TypeOp | |
| enum | { inherits_sign = 1, inherits_sign_zero = 2 } | 
  Static Public Member Functions inherited from TypeOp | |
| static void | registerInstructions (vector< TypeOp * > &inst, TypeFactory *tlst, const Translate *trans) | 
| Build a map from op-code value to the TypeOp information objects.  More... | |
| static void | selectJavaOperators (vector< TypeOp * > &inst, bool val) | 
| Toggle Java specific aspects of the op-code information.  More... | |
  Protected Member Functions inherited from TypeOp | |
| virtual void | setSymbol (const string &nm) | 
| Set the display symbol associated with the op-code.  | |
  Protected Attributes inherited from TypeOp | |
| TypeFactory * | tlst | 
| Pointer to data-type factory.  | |
| OpCode | opcode | 
| The op-code value.  | |
| uint4 | opflags | 
| Cached pcode-op properties for this op-code.  | |
| uint4 | addlflags | 
| Additional properties.  | |
| string | name | 
| Symbol denoting this operation.  | |
| OpBehavior * | behave | 
| Object for emulating the behavior of the op-code.  | |
A generic unary operator: one input and one output.
All unary op-codes have data-type for the input value and a data-type for the output value
Find the minimal (or suggested) data-type of an input to this op-code.
The result should depend only on the op-code itself (and the size of the input)
| op | is the PcodeOp being considered | 
| slot | is the input being considered | 
Reimplemented from TypeOp.
References TypeFactory::getBase(), PcodeOp::getIn(), Varnode::getSize(), metain, and TypeOp::tlst.
Find the minimal (or suggested) data-type of an output to this op-code.
The result should depend only on the op-code itself (and the size of the output)
| op | is the PcodeOp being considered | 
Reimplemented from TypeOp.
References TypeFactory::getBase(), PcodeOp::getOut(), Varnode::getSize(), metaout, and TypeOp::tlst.
      
  | 
  virtual | 
Print (for debugging purposes) this specific PcodeOp to the stream.
| s | is the output stream | 
| op | is the specific PcodeOp to print | 
Implements TypeOp.
References PcodeOp::getIn(), TypeOp::getOperatorName(), PcodeOp::getOut(), and Varnode::printRaw().
 1.8.15