From 7565848dd7a5d4dd1f762aeebd31d5835fe14835 Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Thu, 8 Jan 2015 21:00:21 -0800 Subject: Moved m68k_save_result to m68k_core.c --- m68k_core.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'm68k_core.c') diff --git a/m68k_core.c b/m68k_core.c index 6b0484a..63133a1 100644 --- a/m68k_core.c +++ b/m68k_core.c @@ -86,6 +86,28 @@ void m68k_write_size(m68k_options *opts, uint8_t size) } } +void m68k_save_result(m68kinst * inst, m68k_options * opts) +{ + code_info *code = &opts->gen.code; + if (inst->dst.addr_mode != MODE_REG && inst->dst.addr_mode != MODE_AREG && inst->dst.addr_mode != MODE_UNUSED) { + if (inst->dst.addr_mode == MODE_AREG_PREDEC && inst->src.addr_mode == MODE_AREG_PREDEC && inst->op != M68K_MOVE) { + areg_to_native(opts, inst->dst.params.regs.pri, opts->gen.scratch2); + } + switch (inst->extra.size) + { + case OPSIZE_BYTE: + call(code, opts->write_8); + break; + case OPSIZE_WORD: + call(code, opts->write_16); + break; + case OPSIZE_LONG: + call(code, opts->write_32_lowfirst); + break; + } + } +} + void translate_m68k_lea_pea(m68k_options * opts, m68kinst * inst) { code_info *code = &opts->gen.code; -- cgit v1.2.3