+typedef enum {
+ ASM_CONSTRAINT_FLAG_SUPPORTS_REGISTER = 0x0001,
+ ASM_CONSTRAINT_FLAG_SUPPORTS_MEMOP = 0x0002,
+ ASM_CONSTRAINT_FLAG_SUPPORTS_IMMEDIATE = 0x0004,
+ ASM_CONSTRAINT_FLAG_NO_SUPPORT = 0x0008,
+ ASM_CONSTRAINT_FLAG_MODIFIER_WRITE = 0x0010,
+ ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE = 0x0020,
+ ASM_CONSTRAINT_FLAG_MODIFIER_READ = 0x0040,
+ ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ = 0x0080,
+ ASM_CONSTRAINT_FLAG_MODIFIER_EARLYCLOBBER = 0x0100,
+ ASM_CONSTRAINT_FLAG_MODIFIER_COMMUTATIVE = 0x0200,
+ ASM_CONSTRAINT_FLAG_INVALID = 0x8000
+} asm_constraint_flags_t;
+
+/**
+ * Build a Trampoline for the closure.
+ * @param block the block where to build the trampoline
+ * @param mem memory
+ * @param trampoline address of a trampoline region
+ * @param env address of the environment
+ * @param callee address of the function to call
+ *
+ * @return modified memory
+ */
+typedef ir_node *(create_trampoline_fkt)(ir_node *block, ir_node *mem, ir_node *trampoline, ir_node *env, ir_node *callee);
+