sparc: implement float->unsigned conversions
[libfirm] / ir / be / ia32 / bearch_ia32.c
index ede1091..a3b499c 100644 (file)
@@ -253,7 +253,7 @@ static int ia32_get_sp_bias(const ir_node *node)
 static void ia32_build_between_type(void)
 {
 #define IDENT(s) new_id_from_chars(s, sizeof(s)-1)
-       if (! between_type) {
+       if (between_type == NULL) {
                ir_type *old_bp_type   = new_type_primitive(mode_Iu);
                ir_type *ret_addr_type = new_type_primitive(mode_Iu);
 
@@ -1410,8 +1410,8 @@ static void set_tarval_output_modes(void)
 {
        size_t i;
 
-       for (i = get_irp_n_modes(); i > 0;) {
-               ir_mode *mode = get_irp_mode(--i);
+       for (i = ir_get_n_modes(); i > 0;) {
+               ir_mode *mode = ir_get_mode(--i);
 
                if (mode_is_int(mode))
                        set_tarval_mode_output_option(mode, &mo_integer);
@@ -1727,10 +1727,10 @@ static backend_params ia32_backend_params = {
  */
 static void ia32_init(void)
 {
-       ir_mode    *mode_long_long;
-       ir_mode    *mode_unsigned_long_long;
-       ir_type    *type_long_long;
-       ir_type    *type_unsigned_long_long;
+       ir_mode *mode_long_long;
+       ir_mode *mode_unsigned_long_long;
+       ir_type *type_long_long;
+       ir_type *type_unsigned_long_long;
 
        ia32_setup_cg_config();
 
@@ -1763,12 +1763,18 @@ static void ia32_init(void)
        }
 
        ia32_register_init();
+       obstack_init(&opcodes_obst);
        ia32_create_opcodes(&ia32_irn_ops);
 }
 
 static void ia32_finish(void)
 {
+       if (between_type != NULL) {
+               free_type(between_type);
+               between_type = NULL;
+       }
        ia32_free_opcodes();
+       obstack_free(&opcodes_obst, NULL);
 }
 
 /**