retdec
Classes | Namespaces | Macros
capstone2llvmir_impl.h File Reference

Common private implementation for translators converting bytes to LLVM IR. More...

#include "capstone2llvmir/llvmir_utils.h"
#include "retdec/capstone2llvmir/capstone2llvmir.h"

Go to the source code of this file.

Classes

class  retdec::capstone2llvmir::Capstone2LlvmIrTranslator_impl< CInsn, CInsnOp >
 

Namespaces

 retdec
 
 retdec::capstone2llvmir
 

Macros

#define EXPECT_IS_NULLARY(i, ci, irb)
 
#define EXPECT_IS_UNARY(i, ci, irb)
 
#define EXPECT_IS_NULLARY_OR_UNARY(i, ci, irb)
 
#define EXPECT_IS_BINARY(i, ci, irb)
 
#define EXPECT_IS_UNARY_OR_BINARY(i, ci, irb)
 
#define EXPECT_IS_TERNARY(i, ci, irb)
 
#define EXPECT_IS_BINARY_OR_TERNARY(i, ci, irb)
 
#define EXPECT_IS_QUATERNARY(i, ci, irb)
 
#define EXPECT_IS_NARY(i, ci, irb, n)
 
#define EXPECT_IS_SET(i, ci, irb, ns)
 
#define EXPECT_IS_EXPR(i, ci, irb, expr)
 

Detailed Description

Common private implementation for translators converting bytes to LLVM IR.

Macro Definition Documentation

◆ EXPECT_IS_BINARY

#define EXPECT_IS_BINARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 2) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_BINARY_OR_TERNARY

#define EXPECT_IS_BINARY_OR_TERNARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 2 &&ci->op_count != 3) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_EXPR

#define EXPECT_IS_EXPR (   i,
  ci,
  irb,
  expr 
)
Value:
{ \
if (!(expr)) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_NARY

#define EXPECT_IS_NARY (   i,
  ci,
  irb,
 
)
Value:
{ \
if (ci->op_count != n) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_NULLARY

#define EXPECT_IS_NULLARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 0) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_NULLARY_OR_UNARY

#define EXPECT_IS_NULLARY_OR_UNARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 0 &&ci->op_count != 1) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_QUATERNARY

#define EXPECT_IS_QUATERNARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 4) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_SET

#define EXPECT_IS_SET (   i,
  ci,
  irb,
  ns 
)
Value:
{ \
if (ns.find(ci->op_count) == ns.end()) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_TERNARY

#define EXPECT_IS_TERNARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 3) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_UNARY

#define EXPECT_IS_UNARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 1) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}

◆ EXPECT_IS_UNARY_OR_BINARY

#define EXPECT_IS_UNARY_OR_BINARY (   i,
  ci,
  irb 
)
Value:
{ \
if (ci->op_count != 1 &&ci->op_count != 2) \
{ \
throwUnexpectedOperands(i); \
translatePseudoAsmGeneric(i, ci, irb); \
return; \
} \
}