qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2] target/m68k: implement rtr instruction


From: Laurent Vivier
Subject: Re: [PATCH v2] target/m68k: implement rtr instruction
Date: Sun, 7 Mar 2021 20:08:29 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0

Le 07/03/2021 à 19:45, Richard Henderson a écrit :
> On 3/7/21 10:22 AM, Laurent Vivier wrote:
>> +    ccr = gen_load(s, OS_WORD, QREG_SP, 0, IS_USER(s));
>> +    gen_set_sr(s, ccr, true);
>> +    tcg_temp_free(ccr);
>> +    tcg_gen_addi_i32(QREG_SP, QREG_SP, 2);
>> +    tmp = gen_load(s, OS_LONG, QREG_SP, 0, IS_USER(s));
>> +    tcg_gen_addi_i32(QREG_SP, QREG_SP, 4);
>> +    gen_jmp(s, tmp);
> 
> Both loads should happen (and thus exceptions recognized) before any other 
> state writeback.

Something like that?

    ccr = gen_load(s, OS_WORD, QREG_SP, 0, IS_USER(s));
    tcg_gen_addi_i32(QREG_SP, QREG_SP, 2);
    tmp = gen_load(s, OS_LONG, QREG_SP, 0, IS_USER(s));
    tcg_gen_addi_i32(QREG_SP, QREG_SP, 4);

    gen_set_sr(s, ccr, true);
    tcg_temp_free(ccr);

    gen_jmp(s, tmp);

Thanks,
Laurent



reply via email to

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