make opcode list global
[libfirm] / ir / be / ia32 / ia32_emitter.c
index bf06b9c..b265442 100644 (file)
@@ -60,6 +60,7 @@
 #include "raw_bitset.h"
 #include "dbginfo.h"
 #include "lc_opts.h"
+#include "ircons.h"
 
 #include "besched.h"
 #include "benode.h"
@@ -118,7 +119,7 @@ static int block_needs_label(const ir_node *block)
        int need_label = 1;
        int  n_cfgpreds = get_Block_n_cfgpreds(block);
 
-       if (has_Block_entity(block))
+       if (get_Block_entity(block) != NULL)
                return 1;
 
        if (n_cfgpreds == 0) {
@@ -1201,7 +1202,7 @@ static const char* emit_asm_operand(const ir_node *node, const char *s)
                        panic("Invalid asm op modifier");
                }
        } else {
-               emit_register(reg, asm_reg->mode);
+               emit_register(reg, asm_reg->memory ? mode_Iu : asm_reg->mode);
        }
 
        if (asm_reg->memory) {
@@ -1559,7 +1560,7 @@ static void ia32_register_emitters(void)
 #define BE_IGN(a)       op_be_##a->ops.generic = (op_func)emit_Nothing
 
        /* first clear the generic function pointer for all ops */
-       clear_irp_opcodes_generic_func();
+       ir_clear_opcodes_generic_func();
 
        /* register all emitter functions defined in spec */
        ia32_register_spec_emitters();
@@ -3667,7 +3668,7 @@ static void register_emitter(ir_op *op, emit_func func)
 static void ia32_register_binary_emitters(void)
 {
        /* first clear the generic function pointer for all ops */
-       clear_irp_opcodes_generic_func();
+       ir_clear_opcodes_generic_func();
 
        /* benode emitter */
        register_emitter(op_be_Copy,            bemit_copy);