Mercurial > repos > blastem
comparison m68k_core_x86.c @ 688:8c546bc1d773
Moved m68k_save_result to m68k_core.c
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 08 Jan 2015 21:00:21 -0800 |
parents | a61d33ccea7d |
children | 858e31f977ae |
comparison
equal
deleted
inserted
replaced
687:a61d33ccea7d | 688:8c546bc1d773 |
---|---|
516 } else { | 516 } else { |
517 movsx_rdispr(code, ea->base, ea->disp, opts->gen.scratch1, SZ_W, SZ_D); | 517 movsx_rdispr(code, ea->base, ea->disp, opts->gen.scratch1, SZ_W, SZ_D); |
518 ea->mode = MODE_REG_DIRECT; | 518 ea->mode = MODE_REG_DIRECT; |
519 } | 519 } |
520 ea->base = opts->gen.scratch1; | 520 ea->base = opts->gen.scratch1; |
521 } | |
522 } | |
523 | |
524 void m68k_save_result(m68kinst * inst, m68k_options * opts) | |
525 { | |
526 code_info *code = &opts->gen.code; | |
527 if (inst->dst.addr_mode != MODE_REG && inst->dst.addr_mode != MODE_AREG && inst->dst.addr_mode != MODE_UNUSED) { | |
528 if (inst->dst.addr_mode == MODE_AREG_PREDEC && inst->src.addr_mode == MODE_AREG_PREDEC && inst->op != M68K_MOVE) { | |
529 areg_to_native(opts, inst->dst.params.regs.pri, opts->gen.scratch2); | |
530 } | |
531 switch (inst->extra.size) | |
532 { | |
533 case OPSIZE_BYTE: | |
534 call(code, opts->write_8); | |
535 break; | |
536 case OPSIZE_WORD: | |
537 call(code, opts->write_16); | |
538 break; | |
539 case OPSIZE_LONG: | |
540 call(code, opts->write_32_lowfirst); | |
541 break; | |
542 } | |
543 } | 521 } |
544 } | 522 } |
545 | 523 |
546 void check_user_mode_swap_ssp_usp(m68k_options *opts) | 524 void check_user_mode_swap_ssp_usp(m68k_options *opts) |
547 { | 525 { |