FindConstantsPolicy Struct Reference

#include <findConstants.h>

Inheritance diagram for FindConstantsPolicy:

Inheritance graph
[legend]
Collaboration diagram for FindConstantsPolicy:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FindConstantsPolicy ()
 FindConstantsPolicy (RegisterSet *initial_rs)
const RegisterDictionaryget_register_dictionary () const
 Returns the register dictionary.
void set_register_dictionary (const RegisterDictionary *regdict)
 Sets the register dictionary.
template<size_t Len>
XVariablePtr< Lennumber (uint64_t n)
static size_t size_t static
Len size_t Len2 
BINARY_COMPUTATION (concat, Len1, Len2, Len1+Len2,{return a|(b<< Len1);}) XVariablePtr< 1 > false_()
XVariablePtr< 1 > true_ ()
XVariablePtr< 1 > undefined_ ()
template<size_t Len>
 UNARY_COMPUTATION_SPECIAL (invert, Len, Len,{if(le1.name==0) result->set(LatticeElement< Len >::constant(~le1.offset, result->def));else result->set(LatticeElement< Len >(le1.name, le1.definingInstruction,!le1.negate,~le1.offset));}) template< size_t Len > UNARY_COMPUTATION_SPECIAL(negate
size_t To UNARY_COMPUTATION (signExtend, From, To,{return(From==To?(a):IntegerOps::signExtend< From, To >(a));}) template< size_t Len > XVariablePtr< Len > ite(XVariablePtr< 1 > sel
size_t SCLen UNARY_COMPUTATION (generateMask, SCLen, Len,{return IntegerOps::genMask< uint64_t >(a);}) template< size_t Len > BINARY_COMPUTATION_SPECIAL(add
size_t SALen BINARY_COMPUTATION (rotateLeft, Len, SALen, Len,{return IntegerOps::rotateLeft< Len >(a, b);}) template< size_t Len
size_t SALen size_t SALen BINARY_COMPUTATION (rotateRight, Len, SALen, Len,{return IntegerOps::rotateRight< Len >(a, b);}) template< size_t Len
size_t SALen size_t SALen
size_t SALen 
BINARY_COMPUTATION (shiftLeft, Len, SALen, Len,{return IntegerOps::shiftLeft< Len >(a, b);}) template< size_t Len
size_t SALen size_t SALen
size_t SALen size_t SALen 
BINARY_COMPUTATION (shiftRight, Len, SALen, Len,{return IntegerOps::shiftRightLogical< Len >(a, b);}) template< size_t Len
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen 
BINARY_COMPUTATION (shiftRightArithmetic, Len, SALen, Len,{return IntegerOps::shiftRightArithmetic< Len >(a, b);}) template< size_t Len1
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 
BINARY_COMPUTATION (signedMultiply, Len1, Len2, Len1+Len2,{return(IntegerOps::signExtend< Len1, 64 >(a)*IntegerOps::signExtend< Len2, 64 >(b));}) template< size_t Len1
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 size_t
Len2 
BINARY_COMPUTATION (unsignedMultiply, Len1, Len2, Len1+Len2,{return(a *b);}) template< size_t Len1
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 size_t
Len2 size_t Len2 
BINARY_COMPUTATION (signedDivide, Len1, Len2, Len1,{return(IntegerOps::signExtend< Len1, 64 >(a)/IntegerOps::signExtend< Len2, 64 >(b));}) template< size_t Len1
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 size_t
Len2 size_t Len2 size_t Len2 
BINARY_COMPUTATION (signedModulo, Len1, Len2, Len2,{return(IntegerOps::signExtend< Len1, 64 >(a)%IntegerOps::signExtend< Len2, 64 >(b));}) template< size_t Len1
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 size_t
Len2 size_t Len2 size_t Len2
size_t Len2 
BINARY_COMPUTATION (unsignedDivide, Len1, Len2, Len1,{if(0==b) throw std::string("division by zero");return(a/b);}) template< size_t Len1
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 size_t
Len2 size_t Len2 size_t Len2
size_t Len2 size_t Len2 
BINARY_COMPUTATION (unsignedModulo, Len1, Len2, Len2,{return(a%b);}) template< size_t Len > UNARY_COMPUTATION(leastSignificantSetBit

Static Public Member Functions

template<size_t Len, size_t Len2>
static UNARY_COMPUTATION_SPECIAL (unsignedExtend, Len, Len2,{result->set(LatticeElement< Len2 >(le1.name, le1.definingInstruction, le1.negate, le1.offset));}) template< size_t From
static size_t size_t static
Len 
UNARY_COMPUTATION_SPECIAL (extract, Len, To-From,{if(From==0){result->set(LatticeElement< To-From >(le1.name, le1.definingInstruction, le1.negate, le1.offset));return;}if(le1.name!=0){result->set(LatticeElement< To-From >::nonconstant(result->myName, result->def));return;}result->set(LatticeElement< To-From >::constant((le1.offset >> From)&(IntegerOps::SHL1< uint64_t, To-From >::value-1), result->def));}) template< size_t Len1

Public Attributes

std::map< uint64_t, RegisterSetrsets
RegisterSet cur_state
RegisterSetorig_state
uint32_t addr
XVariablePtr< 32 > newIp
const RegisterDictionaryregdict
static size_t To
 Len
size_t To XVariablePtr< LenifTrue
size_t SCLen Len
size_t SALen size_t SALen
size_t SALen size_t SALen
size_t SALen size_t Len2 size_t
Len2 size_t Len2 size_t Len2
size_t Len2 size_t Len2 
Len

Classes

struct  Exception
struct  NumberConstraint

Constructor & Destructor Documentation

FindConstantsPolicy::FindConstantsPolicy (  )  [inline]

FindConstantsPolicy::FindConstantsPolicy ( RegisterSet initial_rs  )  [inline]


Member Function Documentation

const RegisterDictionary* FindConstantsPolicy::get_register_dictionary (  )  const [inline]

Returns the register dictionary.

void FindConstantsPolicy::set_register_dictionary ( const RegisterDictionary regdict  )  [inline]

Sets the register dictionary.

template<size_t Len>
XVariablePtr<Len> FindConstantsPolicy::number ( uint64_t  n  )  [inline]

template<size_t Len, size_t Len2>
static FindConstantsPolicy::UNARY_COMPUTATION_SPECIAL ( unsignedExtend  ,
Len  ,
Len2   
) [static]

static size_t size_t static Len FindConstantsPolicy::UNARY_COMPUTATION_SPECIAL ( extract  ,
Len  ,
To From 
) [static]

static size_t size_t static Len size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( concat  ,
Len1  ,
Len2  ,
Len1+  Len2 
) [inline]

XVariablePtr<1> FindConstantsPolicy::true_ (  )  [inline]

XVariablePtr<1> FindConstantsPolicy::undefined_ (  )  [inline]

template<size_t Len>
FindConstantsPolicy::UNARY_COMPUTATION_SPECIAL ( invert  ,
Len  ,
Len   
)

size_t To FindConstantsPolicy::UNARY_COMPUTATION ( signExtend  ,
From  ,
To   
)

size_t SCLen FindConstantsPolicy::UNARY_COMPUTATION ( generateMask  ,
SCLen  ,
Len   
)

size_t SALen FindConstantsPolicy::BINARY_COMPUTATION ( rotateLeft  ,
Len  ,
SALen  ,
Len   
)

size_t SALen size_t SALen FindConstantsPolicy::BINARY_COMPUTATION ( rotateRight  ,
Len  ,
SALen  ,
Len   
)

size_t SALen size_t SALen size_t SALen FindConstantsPolicy::BINARY_COMPUTATION ( shiftLeft  ,
Len  ,
SALen  ,
Len   
)

size_t SALen size_t SALen size_t SALen size_t SALen FindConstantsPolicy::BINARY_COMPUTATION ( shiftRight  ,
Len  ,
SALen  ,
Len   
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen FindConstantsPolicy::BINARY_COMPUTATION ( shiftRightArithmetic  ,
Len  ,
SALen  ,
Len   
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( signedMultiply  ,
Len1  ,
Len2  ,
Len1+  Len2 
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( unsignedMultiply  ,
Len1  ,
Len2  ,
Len1+  Len2 
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( signedDivide  ,
Len1  ,
Len2  ,
Len1   
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 size_t Len2 size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( signedModulo  ,
Len1  ,
Len2  ,
Len2   
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( unsignedDivide  ,
Len1  ,
Len2  ,
Len1   
)

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 FindConstantsPolicy::BINARY_COMPUTATION ( unsignedModulo  ,
Len1  ,
Len2  ,
Len2   
)


Member Data Documentation

std::map<uint64_t, RegisterSet> FindConstantsPolicy::rsets

RegisterSet FindConstantsPolicy::cur_state

RegisterSet * FindConstantsPolicy::orig_state

uint32_t FindConstantsPolicy::addr

XVariablePtr<32> FindConstantsPolicy::newIp

const RegisterDictionary* FindConstantsPolicy::regdict

size_t FindConstantsPolicy::To

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 FindConstantsPolicy::Len

size_t To XVariablePtr<Len> FindConstantsPolicy::ifTrue

size_t SCLen FindConstantsPolicy::Len

size_t SALen size_t SALen size_t SALen size_t SALen size_t SALen size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 size_t Len2 FindConstantsPolicy::Len


The documentation for this struct was generated from the following file:
Generated on Tue Jan 31 05:34:07 2012 for ROSE by  doxygen 1.4.7