comparison z80_to_x86.c @ 1054:ca38a29d2d76

Implement undocumented flag bits for RLD and RRD
author Michael Pavone <pavone@retrodev.com>
date Fri, 29 Jul 2016 20:59:19 -0700
parents b86c3ce007d9
children ac4615d16226
comparison
equal deleted inserted replaced
1053:b86c3ce007d9 1054:ca38a29d2d76
1795 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_H), SZ_B); 1795 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_H), SZ_B);
1796 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_N), SZ_B); 1796 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_N), SZ_B);
1797 setcc_rdisp(code, CC_P, opts->gen.context_reg, zf_off(ZF_PV)); 1797 setcc_rdisp(code, CC_P, opts->gen.context_reg, zf_off(ZF_PV));
1798 setcc_rdisp(code, CC_Z, opts->gen.context_reg, zf_off(ZF_Z)); 1798 setcc_rdisp(code, CC_Z, opts->gen.context_reg, zf_off(ZF_Z));
1799 setcc_rdisp(code, CC_S, opts->gen.context_reg, zf_off(ZF_S)); 1799 setcc_rdisp(code, CC_S, opts->gen.context_reg, zf_off(ZF_S));
1800 mov_rrdisp(code, opts->regs[Z80_A], opts->gen.context_reg, zf_off(ZF_XY), SZ_B);
1800 1801
1801 zreg_to_native(opts, Z80_HL, opts->gen.scratch2); 1802 zreg_to_native(opts, Z80_HL, opts->gen.scratch2);
1802 ror_ir(code, 8, opts->gen.scratch1, SZ_W); 1803 ror_ir(code, 8, opts->gen.scratch1, SZ_W);
1803 call(code, opts->write_8); 1804 call(code, opts->write_8);
1804 break; 1805 break;
1826 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_H), SZ_B); 1827 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_H), SZ_B);
1827 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_N), SZ_B); 1828 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_N), SZ_B);
1828 setcc_rdisp(code, CC_P, opts->gen.context_reg, zf_off(ZF_PV)); 1829 setcc_rdisp(code, CC_P, opts->gen.context_reg, zf_off(ZF_PV));
1829 setcc_rdisp(code, CC_Z, opts->gen.context_reg, zf_off(ZF_Z)); 1830 setcc_rdisp(code, CC_Z, opts->gen.context_reg, zf_off(ZF_Z));
1830 setcc_rdisp(code, CC_S, opts->gen.context_reg, zf_off(ZF_S)); 1831 setcc_rdisp(code, CC_S, opts->gen.context_reg, zf_off(ZF_S));
1832 mov_rrdisp(code, opts->regs[Z80_A], opts->gen.context_reg, zf_off(ZF_XY), SZ_B);
1831 1833
1832 zreg_to_native(opts, Z80_HL, opts->gen.scratch2); 1834 zreg_to_native(opts, Z80_HL, opts->gen.scratch2);
1833 ror_ir(code, 8, opts->gen.scratch1, SZ_W); 1835 ror_ir(code, 8, opts->gen.scratch1, SZ_W);
1834 call(code, opts->write_8); 1836 call(code, opts->write_8);
1835 break; 1837 break;