Mercurial > repos > blastem
changeset 125:dc5fc3adf705
Fix encoding of movsx instruction when used with new (i.e. r9-r15) registers. This fixes the indexed addressing modes when used with a word-wide index register
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 29 Dec 2012 22:11:28 -0800 |
parents | da95566514f3 |
children | 4e45d75501cf |
files | gen_x86.c m68k_to_x86.c |
diffstat | 2 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/gen_x86.c Sat Dec 29 21:55:42 2012 -0800 +++ b/gen_x86.c Sat Dec 29 22:11:28 2012 -0800 @@ -962,11 +962,11 @@ *out |= REX_QUAD; } if (src >= R8) { - *out |= REX_REG_FIELD; + *out |= REX_RM_FIELD; src -= (R8 - X86_R8); } if (dst >= R8) { - *out |= REX_RM_FIELD; + *out |= REX_REG_FIELD; dst -= (R8 - X86_R8); } out++; @@ -992,11 +992,11 @@ *out |= REX_QUAD; } if (src >= R8) { - *out |= REX_REG_FIELD; + *out |= REX_RM_FIELD; src -= (R8 - X86_R8); } if (dst >= R8) { - *out |= REX_RM_FIELD; + *out |= REX_REG_FIELD; dst -= (R8 - X86_R8); } out++;
--- a/m68k_to_x86.c Sat Dec 29 21:55:42 2012 -0800 +++ b/m68k_to_x86.c Sat Dec 29 22:11:28 2012 -0800 @@ -635,9 +635,9 @@ uint8_t * get_native_address(native_map_slot * native_code_map, uint32_t address) { address &= 0xFFFFFF; - if (address > 0x400000) { + //if (address > 0x400000) { printf("get_native_address: %X\n", address); - } + //} address /= 2; uint32_t chunk = address / NATIVE_CHUNK_SIZE; if (!native_code_map[chunk].base) {