![]() |
libFirm
|
Macros | |
| #define | cc_bits (0xFF000000) |
| #define | cc_cdecl_set (0) |
| cdecl calling convention | |
| #define | cc_stdcall_set cc_callee_clear_stk |
| stdcall calling convention | |
| #define | cc_fastcall_set (cc_reg_param|cc_callee_clear_stk) |
| fastcall calling convention | |
| #define | IS_CDECL(cc_mask) |
| check for the CDECL calling convention | |
| #define | IS_STDCALL(cc_mask) |
| check for the STDCALL calling convention | |
| #define | IS_FASTCALL(cc_mask) |
| check for the FASTCALL calling convention | |
| #define | SET_CDECL(cc_mask) |
| Sets the CDECL convention bits. | |
| #define | SET_STDCALL(cc_mask) |
| Sets the STDCALL convention bits. | |
| #define | SET_FASTCALL(cc_mask) |
| Sets the FASTCALL convention bits. | |
Enumerations | |
| enum | mtp_additional_properties { mtp_no_property = 0 , mtp_property_no_write = 1u << 0 , mtp_property_pure = 1u << 1 , mtp_property_noreturn = 1u << 2 , mtp_property_terminates = 1u << 3 , mtp_property_nothrow = 1u << 4 , mtp_property_naked = 1u << 5 , mtp_property_malloc = 1u << 6 , mtp_property_returns_twice = 1u << 7 , mtp_property_private = 1u << 8 , mtp_property_always_inline = 1u << 9 , mtp_property_noinline = 1u << 10 , mtp_property_inline_recommended = 1u << 11 , mtp_temporary = 1u << 12 , mtp_property_is_constructor = 1u << 13 } |
| Additional method type properties: Tell about special properties of a method type. More... | |
| enum | calling_convention { cc_reg_param = 0x01000000 , cc_last_on_top = 0x02000000 , cc_callee_clear_stk = 0x04000000 , cc_this_call = 0x08000000 , cc_compound_ret = 0x10000000 , cc_frame_on_caller_stk = 0x20000000 , cc_fpreg_param = 0x40000000 } |
| Calling conventions: lower 24 bits are the number of register parameters, upper 8 encode the calling conventions. More... | |
Functions | |
| ir_type * | new_type_method (size_t n_param, size_t n_res, int is_variadic, unsigned cc_mask, mtp_additional_properties property_mask) |
| Create a new method type. | |
| size_t | get_method_n_params (const ir_type *method) |
| Returns the number of parameters of this method. | |
| ir_type * | get_method_param_type (const ir_type *method, size_t pos) |
| Returns the type of the parameter at position pos of a method. | |
| void | set_method_param_type (ir_type *method, size_t pos, ir_type *tp) |
| Sets the type of the parameter at position pos of a method. | |
| size_t | get_method_n_ress (const ir_type *method) |
| Returns the number of results of a method type. | |
| ir_type * | get_method_res_type (const ir_type *method, size_t pos) |
| Returns the return type of a method type at position pos. | |
| void | set_method_res_type (ir_type *method, size_t pos, ir_type *tp) |
| Sets the type of the result at position pos of a method. | |
| int | is_method_variadic (ir_type const *method) |
| Returns the variadicity of a method. | |
| mtp_additional_properties | get_method_additional_properties (const ir_type *method) |
| Returns the mask of the additional graph properties. | |
| unsigned | get_method_calling_convention (const ir_type *method) |
| Returns the calling convention of an entities graph. | |
| unsigned | get_method_n_regparams (ir_type *method) |
| Returns the number of registers parameters, 0 means default. | |
| int | is_Method_type (const ir_type *method) |
| Returns true if a type is a method type. | |
A method type represents a method, function or procedure type. It contains a list of the parameter and result types, as these are part of the type description. These lists should not be changed by an optimization, as a change creates a new method type. Therefore optimizations should allocate new method types. set_method_param_type() and set_method_res_type() are only for construction by a frontend.
| #define cc_fastcall_set (cc_reg_param|cc_callee_clear_stk) |
| #define cc_stdcall_set cc_callee_clear_stk |
| #define IS_CDECL | ( | cc_mask | ) |
check for the CDECL calling convention
| #define IS_FASTCALL | ( | cc_mask | ) |
check for the FASTCALL calling convention
| #define IS_STDCALL | ( | cc_mask | ) |
check for the STDCALL calling convention
| #define SET_CDECL | ( | cc_mask | ) |
Sets the CDECL convention bits.
| #define SET_FASTCALL | ( | cc_mask | ) |
Sets the FASTCALL convention bits.
| #define SET_STDCALL | ( | cc_mask | ) |
Sets the STDCALL convention bits.
| enum calling_convention |
Calling conventions: lower 24 bits are the number of register parameters, upper 8 encode the calling conventions.
Additional method type properties: Tell about special properties of a method type.
Some of these may be discovered by analyses.
Definition at line 224 of file firm_types.h.
| mtp_additional_properties get_method_additional_properties | ( | const ir_type * | method | ) |
Returns the mask of the additional graph properties.
| unsigned get_method_calling_convention | ( | const ir_type * | method | ) |
Returns the calling convention of an entities graph.
| size_t get_method_n_params | ( | const ir_type * | method | ) |
Returns the number of parameters of this method.
| unsigned get_method_n_regparams | ( | ir_type * | method | ) |
Returns the number of registers parameters, 0 means default.
| size_t get_method_n_ress | ( | const ir_type * | method | ) |
Returns the number of results of a method type.
Returns the type of the parameter at position pos of a method.
Returns the return type of a method type at position pos.
| int is_Method_type | ( | const ir_type * | method | ) |
Returns true if a type is a method type.
| int is_method_variadic | ( | ir_type const * | method | ) |
Returns the variadicity of a method.
| ir_type * new_type_method | ( | size_t | n_param, |
| size_t | n_res, | ||
| int | is_variadic, | ||
| unsigned | cc_mask, | ||
| mtp_additional_properties | property_mask ) |
Create a new method type.
| n_param | the number of parameters |
| n_res | the number of results |
| is_variadic | whether the function is variadic |
| cc_mask | the calling convention |
| property_mask | the mask of the additional graph properties |
The arrays for the parameter and result types are not populated by the constructor.
Sets the type of the parameter at position pos of a method.
Note: does not change the corresponding parameter entities (if there are any)