no need for no_float_fold hack anymore
[libfirm] / ir / be / beemitter_binary.c
index e9291e6..371e0a2 100644 (file)
@@ -32,6 +32,7 @@
 #include "beemitter_binary.h"
 #include "obst.h"
 #include "pdeq.h"
+#include "error.h"
 
 static code_fragment_t *first_fragment;
 static code_fragment_t *last_fragment;
@@ -43,8 +44,8 @@ struct obstack code_fragment_obst;
     be_emit(8/16/32/entity) call!) */
 code_fragment_t *be_get_current_fragment(void)
 {
-       assert(obstack_object_size(&code_fragment_obst) >= sizeof(code_fragment_t));
        code_fragment_t *fragment = obstack_base(&code_fragment_obst);
+       assert(obstack_object_size(&code_fragment_obst) >= sizeof(code_fragment_t));
        assert(fragment->magic == CODE_FRAGMENT_MAGIC);
 
        return fragment;
@@ -176,6 +177,16 @@ static void determine_offsets(const binary_emiter_interface_t *interface)
        } while (changed);
 }
 
+void be_emit_entity(ir_entity *entity, bool entity_sign, int offset,
+                    bool is_relative)
+{
+       (void) entity;
+       (void) entity_sign;
+       (void) offset;
+       (void) is_relative;
+       panic("not implemented yet");
+}
+
 void be_emit_code(FILE *output, const binary_emiter_interface_t *interface)
 {
        unsigned offset;
@@ -192,10 +203,11 @@ void be_emit_code(FILE *output, const binary_emiter_interface_t *interface)
        for (fragment = first_fragment; fragment != NULL;
             fragment = fragment->next) {
            unsigned char *jmpbuffer;
+               unsigned nops;
 
            /* assure alignment by emitting nops */
            assert(fragment->offset >= offset);
-           unsigned nops = fragment->offset - offset;
+           nops = fragment->offset - offset;
            if (nops > 0) {
                unsigned char *nopbuffer = obstack_alloc(&code_fragment_obst, nops);
                interface->create_nops(nopbuffer, nops);