qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] m68k: implement movep instruction


From: Thomas Huth
Subject: Re: [Qemu-devel] [PATCH] m68k: implement movep instruction
Date: Tue, 6 Feb 2018 11:14:47 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

On 06.02.2018 10:56, Pavel Dovgalyuk wrote:
> This patch implements movep instruction. It moves data between a data register
> and alternate bytes within the address space starting at the location
> specified and incrementing by two.
> 
> It was designed for the original 68000 and used in firmwares for
> interfacing the 8-bit peripherals through the 16-bit data bus.
> Without this patch opcode for this instruction is recognized as some bitop.
> 
> Signed-off-by: Pavel Dovgalyuk <address@hidden>
> Signed-off-by: Mihail Abakumov <address@hidden>
> ---
[...]
> @@ -5579,9 +5628,13 @@ void register_m68k_insns (CPUM68KState *env)
>      INSN(chk2,      00c0, f9c0, CHK2);
>      INSN(bitrev,    00c0, fff8, CF_ISA_APLUSC);
>      BASE(bitop_reg, 0100, f1c0);
> +    BASE(movep,     0108, f1f8);
>      BASE(bitop_reg, 0140, f1c0);
> +    BASE(movep,     0148, f1f8);
>      BASE(bitop_reg, 0180, f1c0);
> +    BASE(movep,     0188, f1f8);
>      BASE(bitop_reg, 01c0, f1c0);
> +    BASE(movep,     01c8, f1f8);
>      INSN(arith_im,  0280, fff8, CF_ISA_A);
>      INSN(arith_im,  0200, ff00, M68000);
>      INSN(undef,     02c0, ffc0, M68000);

 Hi,

movep is only available on 68000 - 68040. The function is illegal on
68060 and Coldfire. So I think you should introduce a M68K_FEATURE_MOVEP
for this and then register the function here with INSN(movep ... ,
MOVEP) instead of using BASE().

 Thomas



reply via email to

[Prev in Thread] Current Thread [Next in Thread]