Mercurial > repos > blastem
comparison m68k_to_x86.c @ 560:f9431cb3a39c
Fix x86_rrindex_sizedir. Pass the correct scale to mov_rindexr in gen_mem_fun. BlastEm now sort of works on OS X. Runs reliably from lldb, but only intermittently from the shell
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 23 Jun 2014 11:05:55 -0400 |
parents | 6b248602ab84 |
children | 666adeba5a61 |
comparison
equal
deleted
inserted
replaced
559:6b248602ab84 | 560:f9431cb3a39c |
---|---|
4497 dst = add_rr(dst, SCRATCH1, SCRATCH2, SZ_PTR); | 4497 dst = add_rr(dst, SCRATCH1, SCRATCH2, SZ_PTR); |
4498 dst = pop_r(dst, SCRATCH1); | 4498 dst = pop_r(dst, SCRATCH1); |
4499 dst = mov_rrind(dst, SCRATCH1, SCRATCH2, tmp_size); | 4499 dst = mov_rrind(dst, SCRATCH1, SCRATCH2, tmp_size); |
4500 } else { | 4500 } else { |
4501 dst = mov_ir(dst, (intptr_t)memmap[chunk].buffer, SCRATCH2, SZ_PTR); | 4501 dst = mov_ir(dst, (intptr_t)memmap[chunk].buffer, SCRATCH2, SZ_PTR); |
4502 dst = mov_rindexr(dst, SCRATCH2, SCRATCH1, 1, SCRATCH1, tmp_size); | 4502 dst = mov_rindexr(dst, SCRATCH2, SCRATCH1, 0, SCRATCH1, tmp_size); |
4503 } | 4503 } |
4504 } | 4504 } |
4505 if (size != tmp_size && !is_write) { | 4505 if (size != tmp_size && !is_write) { |
4506 if (memmap[chunk].flags & MMAP_ONLY_EVEN) { | 4506 if (memmap[chunk].flags & MMAP_ONLY_EVEN) { |
4507 dst = shl_ir(dst, 8, SCRATCH1, SZ_W); | 4507 dst = shl_ir(dst, 8, SCRATCH1, SZ_W); |