# HG changeset patch # User Mike Pavone # Date 1356676888 28800 # Node ID bfaca67eeb78df4025784391118235f89fe5fe0a # Parent d7789186ba5e2c6a23ae0405253871d8aeb8a644 allocate a new native code chunk when we run out of space diff -r d7789186ba5e -r bfaca67eeb78 m68k_to_x86.c --- a/m68k_to_x86.c Thu Dec 27 22:35:26 2012 -0800 +++ b/m68k_to_x86.c Thu Dec 27 22:41:28 2012 -0800 @@ -2162,8 +2162,16 @@ do { do { if (dst_end-dst < 128) { - puts("out of code memory"); - exit(1); + if (dst_end-dst < 5) { + puts("out of code memory, not enough space for jmp to next chunk"); + exit(1); + } + size_t size = 1024*1024; + opts->cur_code = alloc_code(&size); + opts->code_end = opts->cur_code + size; + jmp(dst, opts->cur_code); + dst = opts->cur_code; + dst_end = opts->code_end; } next = m68k_decode(encoded, &instbuf, address); address += (next-encoded)*2;