86 typedef void *(*VEX_VexOpInit)();
126 #define VEX_OPTIMIZE_0 0
127 #define VEX_OPTIMIZE_1 1
128 #define VEX_OPTIMIZE_2 2
174 bool force_return_code=
false);
184 bool force_return_code=
false);
191 bool force_return_code=
false);
201 bool force_return_code=
false);
207 template <VEX_Precision PREC>
215 template <VEX_Precision PREC>
218 template <VEX_Precision PREC>
221 template <VEX_Precision PREC>
224 template <VEX_Precision PREC>
227 template <VEX_Precision PREC>
233 unsigned int getFlag(
unsigned int f)
const {
return myFlags&
f; }
235 void setFlag(
unsigned int f) { myFlags |=
f; }
237 void clearFlag(
unsigned int f) { myFlags &= ~f; }
257 static const char *stringAlloc(
const char *str);
259 static void stringFree(
const char *str);
268 static int getNumVexOps();
270 static const VEX_VexOp *getVexOp(
int idx);
272 static const char *getVexOpLocation(
int idx);
320 template <>
inline void
322 { myCompleted32 = callback; }
324 VEX_VexOp::getInit<VEX_32>()
const
327 VEX_VexOp::getEvaluator<VEX_32>()
const
328 {
return myEvaluator32; }
330 VEX_VexOp::getTypedEvaluator<VEX_32>()
const
331 {
return myTypedEvaluator32; }
333 VEX_VexOp::getCleanup<VEX_32>()
const
334 {
return myCleanup32; }
336 VEX_VexOp::getCompleted<VEX_32>()
const
337 {
return myCompleted32; }
339 template <>
inline void
341 { myCompleted64 = callback; }
343 VEX_VexOp::getInit<VEX_64>()
const
346 VEX_VexOp::getEvaluator<VEX_64>()
const
347 {
return myEvaluator64; }
349 VEX_VexOp::getTypedEvaluator<VEX_64>()
const
350 {
return myTypedEvaluator64; }
352 VEX_VexOp::getCleanup<VEX_64>()
const
353 {
return myCleanup64; }
355 VEX_VexOp::getCompleted<VEX_64>()
const
356 {
return myCompleted64; }
VEX_Type
VEX variable types.
VEX_VexOpCompleted myCompleted32
#define SYS_VISIBILITY_EXPORT
Use this class to extend VEX by adding custom VEX functions.
VEX_VexOpCompleted myCompleted64
VEX_VexOpTypedCallback myTypedEvaluator32
VEX_VexOpCleanup myCleanup32
VEX_VexOpTypedCallback myTypedEvaluator64
void *(* VEX_VexOpInit)()
void(* VEX_VexOpTypedCallback)(int argc, VEX_VexOpArg argv[], void *data)
void(* VEX_VexOpCallback)(int argc, void *argv[], void *data)
const UT_StringHolder & getSignature() const
Query the signature.
void(* VEX_VexOpCompleted)(void *data)
VEX_VexOpCallback myEvaluator64
VEX_VexOpCleanup myCleanup64
void(* VEX_VexOpCleanup)(void *data)
VEX operator cleanup callback. When called, it should deallocate the data.
UT_StringHolder mySignature
SYS_VISIBILITY_EXPORT void newVEXOp(void *)
VEX_VexOpCallback myEvaluator32
int getContextMask() const
Query the context mask.
int getOptimizer() const
Query the optimization level.