Home | History | Annotate | Download | only in pub

Lines Matching refs:IRExpr

71    Expressions (type 'IRExpr') represent operations without
1896 in the comments for IRExpr. */
1918 an IRExpr 'e' has e.tag equal to Iex_Load, then it's a load
1927 IRExpr;
1984 IRExpr* ix; /* Variable part of index into array */
2016 IRExpr* arg1; /* operand 1 */
2017 IRExpr* arg2; /* operand 2 */
2025 IRExpr* arg; /* operand */
2031 are not semantically valid IRExpr's.
2037 IRExpr* addr; /* Address being loaded from */
2097 IRExpr** args; /* Vector of argument expressions. */
2108 IRExpr* cond; /* Condition */
2109 IRExpr* iftrue; /* True expression */
2110 IRExpr* iffalse; /* False expression */
2118 IRExpr* arg1; /* operand 1 */
2119 IRExpr* arg2; /* operand 2 */
2120 IRExpr* arg3; /* operand 3 */
2126 IRExpr* arg1; /* operand 1 */
2127 IRExpr* arg2; /* operand 2 */
2128 IRExpr* arg3; /* operand 3 */
2129 IRExpr* arg4; /* operand 4 */
2133 /* Two special kinds of IRExpr, which can ONLY be used in
2151 static inline Bool is_IRExpr_VECRET_or_BBPTR ( const IRExpr* e ) {
2157 extern IRExpr* IRExpr_Binder ( Int binder );
2158 extern IRExpr* IRExpr_Get ( Int off, IRType ty );
2159 extern IRExpr* IRExpr_GetI ( IRRegArray* descr, IRExpr* ix, Int bias );
2160 extern IRExpr* IRExpr_RdTmp ( IRTemp tmp );
2161 extern IRExpr* IRExpr_Qop ( IROp op, IRExpr* arg1, IRExpr* arg2,
2162 IRExpr* arg3, IRExpr* arg4 );
2163 extern IRExpr* IRExpr_Triop ( IROp op, IRExpr* arg1,
2164 IRExpr* arg2, IRExpr* arg3 );
2165 extern IRExpr* IRExpr_Binop ( IROp op, IRExpr* arg1, IRExpr* arg2 );
2166 extern IRExpr* IRExpr_Unop ( IROp op, IRExpr* arg );
2167 extern IRExpr* IRExpr_Load ( IREndness end, IRType ty, IRExpr* addr );
2168 extern IRExpr* IRExpr_Const ( IRConst* con );
2169 extern IRExpr* IRExpr_CCall ( IRCallee* cee, IRType retty, IRExpr** args );
2170 extern IRExpr* IRExpr_ITE ( IRExpr* cond, IRExpr* iftrue, IRExpr* iffalse );
2171 extern IRExpr* IRExpr_VECRET ( void );
2172 extern IRExpr* IRExpr_BBPTR ( void );
2174 /* Deep-copy an IRExpr. */
2175 extern IRExpr* deepCopyIRExpr ( const IRExpr* );
2177 /* Pretty-print an IRExpr. */
2178 extern void ppIRExpr ( const IRExpr* );
2180 /* NULL-terminated IRExpr vector constructors, suitable for
2182 extern IRExpr** mkIRExprVec_0 ( void );
2183 extern IRExpr** mkIRExprVec_1 ( IRExpr* );
2184 extern IRExpr** mkIRExprVec_2 ( IRExpr*, IRExpr* );
2185 extern IRExpr** mkIRExprVec_3 ( IRExpr*, IRExpr*, IRExpr* );
2186 extern IRExpr** mkIRExprVec_4 ( IRExpr*, IRExpr*, IRExpr*, IRExpr* );
2187 extern IRExpr** mkIRExprVec_5 ( IRExpr*, IRExpr*, IRExpr*, IRExpr*,
2188 IRExpr* );
2189 extern IRExpr** mkIRExprVec_6 ( IRExpr*, IRExpr*, IRExpr*, IRExpr*,
2190 IRExpr*, IRExpr* );
2191 extern IRExpr** mkIRExprVec_7 ( IRExpr*, IRExpr*, IRExpr*, IRExpr*,
2192 IRExpr*, IRExpr*, IRExpr* );
2193 extern IRExpr** mkIRExprVec_8 ( IRExpr*, IRExpr*, IRExpr*, IRExpr*,
2194 IRExpr*, IRExpr*, IRExpr*, IRExpr*);
2196 /* IRExpr copiers:
2200 extern IRExpr** shallowCopyIRExprVec ( IRExpr** );
2201 extern IRExpr** deepCopyIRExprVec ( IRExpr *const * );
2205 extern IRExpr* mkIRExpr_HWord ( HWord );
2209 IRExpr* mkIRExprCCall ( IRType retty,
2211 IRExpr** args );
2216 static inline Bool isIRAtom ( const IRExpr* e ) {
2222 extern Bool eqIRAtom ( const IRExpr*, const IRExpr* );
2363 IRExpr* guard; /* :: Ity_Bit. Controls whether call happens */
2366 IRExpr** args; /* arg vector, ends in NULL. */
2371 IRExpr* mAddr; /* of access, or NULL if mFx==Ifx_None */
2417 IRExpr** args );
2424 IRExpr** args );
2512 IRExpr* addr; /* store address */
2513 IRExpr* expdHi; /* expected old value at *addr */
2514 IRExpr* expdLo;
2515 IRExpr* dataHi; /* new value for *addr */
2516 IRExpr* dataLo;
2523 IREndness end, IRExpr* addr,
2524 IRExpr* expdHi, IRExpr* expdLo,
2525 IRExpr* dataHi, IRExpr* dataLo );
2535 IRExpr* ix; /* Variable part of index into array */
2537 IRExpr* data; /* The value to write */
2542 extern IRPutI* mkIRPutI ( IRRegArray* descr, IRExpr* ix,
2543 Int bias, IRExpr* data );
2561 IRExpr* addr; /* store address */
2562 IRExpr* data; /* value to write */
2563 IRExpr* guard; /* Guarding value */
2607 IRExpr* addr; /* Address being loaded from */
2608 IRExpr* alt; /* Value if load is not done. */
2609 IRExpr* guard; /* Guarding value */
2620 IRExpr* addr, IRExpr* data,
2621 IRExpr* guard );
2624 IRTemp dst, IRExpr* addr, IRExpr* alt,
2625 IRExpr* guard );
2724 IRExpr* base; /* Start of undefined chunk */
2726 IRExpr* nia; /* Address of next (guest) insn */
2734 IRExpr* data; /* The value to write */
2757 IRExpr* data; /* Expression (RHS of assignment) */
2767 IRExpr* addr; /* store address */
2768 IRExpr* data; /* value to write */
2854 IRExpr* addr;
2855 IRExpr* storedata; /* NULL => LL, non-NULL => SC */
2891 IRExpr* guard; /* Conditional expression */
2903 extern IRStmt* IRStmt_AbiHint ( IRExpr* base, Int len, IRExpr* nia );
2904 extern IRStmt* IRStmt_Put ( Int off, IRExpr* data );
2906 extern IRStmt* IRStmt_WrTmp ( IRTemp tmp, IRExpr* data );
2907 extern IRStmt* IRStmt_Store ( IREndness end, IRExpr* addr, IRExpr* data );
2908 extern IRStmt* IRStmt_StoreG ( IREndness end, IRExpr* addr, IRExpr* data,
2909 IRExpr* guard );
2911 IRExpr* addr, IRExpr* alt, IRExpr* guard );
2914 IRExpr* addr, IRExpr* storedata );
2917 extern IRStmt* IRStmt_Exit ( IRExpr* guard, IRJumpKind jk, IRConst* dst,
2974 IRExpr* next;
3007 extern IRType typeOfIRExpr ( const IRTypeEnv*, const IRExpr* );