X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ffirm_types.h;h=da247361fff042fc862b11aae4182d2a41276928;hb=7fcabe88f484291a1d97c829beb68335babf4497;hp=90736a77df43e1d7ae4bc857397d2e3f6f9f8c15;hpb=f3a43de2cf80c047766abab7756882cefc6b9e81;p=libfirm diff --git a/include/libfirm/firm_types.h b/include/libfirm/firm_types.h index 90736a77d..da247361f 100644 --- a/include/libfirm/firm_types.h +++ b/include/libfirm/firm_types.h @@ -210,11 +210,29 @@ typedef enum { 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