Mercurial > repos > blastem
comparison m68k_core.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 | fc04781f4d28 |
comparison
equal
deleted
inserted
replaced
687:a61d33ccea7d | 688:8c546bc1d773 |
---|---|
81 call(&opts->gen.code, opts->write_16); | 81 call(&opts->gen.code, opts->write_16); |
82 break; | 82 break; |
83 case OPSIZE_LONG: | 83 case OPSIZE_LONG: |
84 call(&opts->gen.code, opts->write_32_highfirst); | 84 call(&opts->gen.code, opts->write_32_highfirst); |
85 break; | 85 break; |
86 } | |
87 } | |
88 | |
89 void m68k_save_result(m68kinst * inst, m68k_options * opts) | |
90 { | |
91 code_info *code = &opts->gen.code; | |
92 if (inst->dst.addr_mode != MODE_REG && inst->dst.addr_mode != MODE_AREG && inst->dst.addr_mode != MODE_UNUSED) { | |
93 if (inst->dst.addr_mode == MODE_AREG_PREDEC && inst->src.addr_mode == MODE_AREG_PREDEC && inst->op != M68K_MOVE) { | |
94 areg_to_native(opts, inst->dst.params.regs.pri, opts->gen.scratch2); | |
95 } | |
96 switch (inst->extra.size) | |
97 { | |
98 case OPSIZE_BYTE: | |
99 call(code, opts->write_8); | |
100 break; | |
101 case OPSIZE_WORD: | |
102 call(code, opts->write_16); | |
103 break; | |
104 case OPSIZE_LONG: | |
105 call(code, opts->write_32_lowfirst); | |
106 break; | |
107 } | |
86 } | 108 } |
87 } | 109 } |
88 | 110 |
89 void translate_m68k_lea_pea(m68k_options * opts, m68kinst * inst) | 111 void translate_m68k_lea_pea(m68k_options * opts, m68kinst * inst) |
90 { | 112 { |