* propagated to the libFirm parameter set.
*/
typedef struct backend_params {
- /** If set, the backend supports inline assembly. */
- unsigned support_inline_asm:1;
/** If set, the backend supports Rotl nodes */
unsigned support_rotl:1;
/** the backend uses big-endian byte ordering if set, else little endian */
static const backend_params *TEMPLATE_get_backend_params(void)
{
static backend_params p = {
- 0, /* no inline assembly */
0, /* no support for Rotl nodes */
0, /* 0: little-endian, 1: big-endian */
1, /* modulo shift efficient */
*/
static const backend_params *amd64_get_backend_params(void) {
static backend_params p = {
- 0, /* no inline assembly */
1, /* support Rotl nodes */
0, /* little endian */
1, /* modulo shift is efficient */
32, /* SMUL & UMUL available for 32 bit */
};
static backend_params p = {
- 0, /* don't support inline assembler yet */
1, /* support Rotl nodes */
1, /* big endian */
1, /* modulo shift efficient */
32, /* Mulh allowed up to 32 bit */
};
static backend_params ia32_backend_params = {
- 1, /* support inline assembly */
1, /* support Rotl nodes */
0, /* little endian */
1, /* modulo shift efficient */
32, /* max_bits_for_mulh */
};
static backend_params p = {
- 0, /* no inline assembly */
0, /* no support for RotL nodes */
1, /* big endian */
1, /* modulo shift efficient */