-typedef struct {
- int def_ptr_alignment; /**< Default alignment for data pointer. */
- unsigned flags; /**< A bitmask of enum lowering_flags. */
- add_hidden hidden_params; /**< Where to add hidden parameters. */
-
- /**
- * A function returning a pointer type for a given type.
- * If this pointer is NULL, a new pointer type is always created.
- */
- ir_type *(*find_pointer_type)(ir_type *e_type, ir_mode *mode, int alignment);
-
- /**
- * If the LF_SMALL_CMP_IN_REGS flag is set, this function will be called
- * to decide, whether a compound value should be returned in registers.
- * This function must return the number of used registers and fill in the modes
- * of the registers to use. Up to MAX_REGISTER_RET_VAL registers can be used.
- */
- int (*ret_compound_in_regs)(ir_type *compound_tp, ir_mode **modes);
-} lower_params_t;
+typedef enum compound_call_lowering_flags {
+ LF_NONE = 0, /**< no additional flags */
+ LF_RETURN_HIDDEN = 1 << 0, /**< return the hidden address instead of void */
+ LF_DONT_LOWER_ARGUMENTS = 1 << 1, /**< don't lower compound call arguments
+ (some backends can handle them themselves) */
+} compound_call_lowering_flags;
+ENUM_BITSET(compound_call_lowering_flags)