Mercurial > repos > blastem
comparison z80_to_x86.c @ 842:ba93a3941300
Set flags for ld a, r
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 31 Oct 2015 01:07:56 -0700 |
parents | 58606d16d35c |
children | 74e161fe7d39 |
comparison
equal
deleted
inserted
replaced
841:58606d16d35c | 842:ba93a3941300 |
---|---|
402 mov_rrdisp(code, opts->gen.scratch1, dst_op.base, dst_op.disp, size); | 402 mov_rrdisp(code, opts->gen.scratch1, dst_op.base, dst_op.disp, size); |
403 } else { | 403 } else { |
404 mov_rdispr(code, src_op.base, src_op.disp, dst_op.base, size); | 404 mov_rdispr(code, src_op.base, src_op.disp, dst_op.base, size); |
405 } | 405 } |
406 } | 406 } |
407 if (inst->ea_reg == Z80_I && inst->addr_mode == Z80_REG) { | 407 if ((inst->ea_reg == Z80_I || inst->ea_reg == Z80_R) && inst->addr_mode == Z80_REG) { |
408 //ld a, i sets some flags | 408 //ld a, i and ld a, r sets some flags |
409 cmp_ir(code, 0, dst_op.base, SZ_B); | 409 cmp_ir(code, 0, dst_op.base, SZ_B); |
410 setcc_rdisp(code, CC_Z, opts->gen.context_reg, zf_off(ZF_Z)); | 410 setcc_rdisp(code, CC_Z, opts->gen.context_reg, zf_off(ZF_Z)); |
411 setcc_rdisp(code, CC_S, opts->gen.context_reg, zf_off(ZF_S)); | 411 setcc_rdisp(code, CC_S, opts->gen.context_reg, zf_off(ZF_S)); |
412 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_H), SZ_B);; | 412 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_H), SZ_B);; |
413 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_N), SZ_B);; | 413 mov_irdisp(code, 0, opts->gen.context_reg, zf_off(ZF_N), SZ_B);; |