Do not forcefully rebuild outedges in compute_execfreq(), but handle this at the...
[libfirm] / ir / be / TEMPLATE / bearch_TEMPLATE.c
index 0629ad4..90cefe6 100644 (file)
@@ -359,7 +359,7 @@ static TEMPLATE_isa_t TEMPLATE_isa_template = {
                &TEMPLATE_general_purpose_regs[REG_SP],  /* stack pointer register */
                &TEMPLATE_general_purpose_regs[REG_BP],  /* base pointer register */
                -1,                          /* stack direction */
-               1,                           /* stack alignment for calls */
+               2,                           /* power of two stack alignment for calls, 2^2 == 4 */
                NULL,                        /* main environment */
                7,                           /* costs for a spill instruction */
                5,                           /* costs for a reload instruction */
@@ -496,11 +496,12 @@ static void TEMPLATE_abi_dont_save_regs(void *self, pset *s)
  * Build the prolog, return the BASE POINTER register
  */
 static const arch_register_t *TEMPLATE_abi_prologue(void *self, ir_node **mem,
-                                                    pmap *reg_map)
+                                                    pmap *reg_map, int *stack_bias)
 {
        TEMPLATE_abi_env_t *env = self;
        (void) reg_map;
        (void) mem;
+       (void) stack_bias;
 
        if(env->flags.try_omit_fp)
                return env->arch_env->sp;
@@ -633,11 +634,13 @@ static const backend_params *TEMPLATE_get_backend_params(void) {
        static backend_params p = {
                0,     /* no dword lowering */
                0,     /* no inline assembly */
+               0,     /* no immediate floating point mode. */
                NULL,  /* no additional opcodes */
                NULL,  /* will be set later */
                NULL,  /* no creator function */
                NULL,  /* context for create_intrinsic_fkt */
                NULL,  /* parameter for if conversion */
+               NULL   /* no immediate fp mode */
        };
        return &p;
 }
@@ -668,6 +671,20 @@ static ir_graph **TEMPLATE_get_backend_irg_list(const void *self,
        return NULL;
 }
 
+static asm_constraint_flags_t TEMPLATE_parse_asm_constraint(const void *self,
+                                                            const char **c)
+{
+       (void) self;
+       (void) c;
+       return ASM_CONSTRAINT_FLAG_INVALID;
+}
+
+static int TEMPLATE_is_valid_clobber(const void *self, const char *clobber)
+{
+       (void) self;
+       (void) clobber;
+       return 0;
+}
 
 const arch_isa_if_t TEMPLATE_isa_if = {
        TEMPLATE_init,
@@ -683,7 +700,9 @@ const arch_isa_if_t TEMPLATE_isa_if = {
     TEMPLATE_get_backend_params,
        TEMPLATE_get_allowed_execution_units,
        TEMPLATE_get_machine,
-       TEMPLATE_get_backend_irg_list
+       TEMPLATE_get_backend_irg_list,
+       TEMPLATE_parse_asm_constraint,
+       TEMPLATE_is_valid_clobber
 };
 
 void be_init_arch_TEMPLATE(void)