decompiler  1.0.0
Public Member Functions | List of all members
TypeOpIntXor Class Reference

Information about the INT_XOR op-code. More...

#include <typeop.hh>

Inheritance diagram for TypeOpIntXor:
TypeOpBinary TypeOp

Public Member Functions

 TypeOpIntXor (TypeFactory *t)
 Constructor.
 
virtual void push (PrintLanguage *lng, const PcodeOp *op) const
 Push the specific PcodeOp to the emitter's RPN stack. More...
 
virtual DatatypegetOutputToken (const PcodeOp *op, CastStrategy *castStrategy) const
 Find the data-type of the output that would be assigned by a compiler. More...
 
- Public Member Functions inherited from TypeOpBinary
 TypeOpBinary (TypeFactory *t, OpCode opc, const string &n, type_metatype mout, type_metatype min)
 Constructor.
 
virtual DatatypegetOutputLocal (const PcodeOp *op) const
 Find the minimal (or suggested) data-type of an output to this op-code. More...
 
virtual DatatypegetInputLocal (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.
 
OpBehaviorgetBehavior (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 DatatypegetInputCast (const PcodeOp *op, int4 slot, const CastStrategy *castStrategy) const
 Find the data-type of the input to a specific PcodeOp. More...
 
virtual string getOperatorName (const PcodeOp *op) const
 Get the name of the op-code as it should be displayed in context. More...
 

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
TypeFactorytlst
 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.
 
OpBehaviorbehave
 Object for emulating the behavior of the op-code.
 

Detailed Description

Information about the INT_XOR op-code.

Member Function Documentation

◆ getOutputToken()

Datatype * TypeOpIntXor::getOutputToken ( const PcodeOp op,
CastStrategy castStrategy 
) const
virtual

Find the data-type of the output that would be assigned by a compiler.

Calculate the actual data-type of the output for a specific PcodeOp as would be assigned by a C compiler parsing a grammar containing this op.

Parameters
opis the specific PcodeOp
castStrategyis the current casting strategy
Returns
the data-type

Reimplemented from TypeOp.

References CastStrategy::arithmeticOutputStandard().

◆ push()

virtual void TypeOpIntXor::push ( PrintLanguage lng,
const PcodeOp op 
) const
inlinevirtual

Push the specific PcodeOp to the emitter's RPN stack.

Given a specific language and PcodeOp, emit the expression rooted at the operation.

Parameters
lngis the PrintLanguage to emit
opis the specific PcodeOp

Implements TypeOp.

References PrintLanguage::opIntXor().


The documentation for this class was generated from the following files: