[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