* jit/jit-gen-x86.h (x86_jump_memindex): add macro for indirect
jumps.
+ * jit/jit-internal.h, jit/jit-function.c, jiy/jit-rules-x86.c:
+ add fixup_absolute_list field to _jit_block struct for fixing up
+ absolute address references to a block.
2006-01-08 Aleksey Demakov <ademakov@gmail.com>
{
block->address = 0;
block->fixup_list = 0;
+ block->fixup_absolute_list = 0;
}
}
int entered_via_top : 1;
int entered_via_branch : 1;
int ends_in_dead : 1;
- void *address;
- void *fixup_list;
+ void *address;
+ void *fixup_list;
+ void *fixup_absolute_list;
};
/*
fixup = next;
}
block->fixup_list = 0;
+
+ fixup = (void**)(block->fixup_absolute_list);
+ while(fixup != 0)
+ {
+ next = (void **)(fixup[0]);
+ fixup[0] = (void *)((jit_nint)(block->address));
+ fixup = next;
+ }
+ block->fixup_absolute_list = 0;
}
void _jit_gen_end_block(jit_gencode_t gen, jit_block_t block)