heap_alloc /**< Alloc allocates the object on the heap. */
} ir_where_alloc;
-/** A input/output constraint attribute */
+/** A input/output constraint attribute. */
typedef struct {
unsigned pos; /**< The inputs/output position for this constraint. */
ident *constraint; /**< The constraint for this input/output. */
ir_mode *mode; /**< The mode of the constraint. */
} ir_asm_constraint;
+/** Supported libFirm builtins. */
+typedef enum {
+ ir_bk_trap, /**< GCC __builtin_trap(): insert trap */
+ ir_bk_debugbreak, /**< MS __debugbreak(): insert debug break */
+ ir_bk_return_address, /**< GCC __builtin_return_address() */
+ ir_bk_frame_addess, /**< GCC __builtin_frame_address() */
+ ir_bk_prefetch, /**< GCC __builtin_prefetch() */
+ ir_bk_ffs, /**< GCC __builtin_ffs(): find first (least) significant 1 bit */
+ ir_bk_clz, /**< GCC __builtin_clz(): count leading zero */
+ ir_bk_ctz, /**< GCC __builtin_ctz(): count trailing zero */
+ ir_bk_popcount, /**< GCC __builtin_popcount(): population count */
+ ir_bk_parity, /**< GCC __builtin_parity(): parity */
+ ir_bk_bswap, /**< byte swap */
+ ir_bk_inport, /**< in port */
+ ir_bk_outport, /**< out port */
+ ir_bk_inner_trampoline, /**< address of a trampoline for GCC inner functions */
+} ir_builtin_kind;
+
#endif