Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Cupertino Miranda
Ok, enter and leave will officially get to be TCG code. To be honest initially we thought that helper code would be preferable to TCG one. Apparently we were wrong. :-) Thanks for your quick feedback. On 1/15/21 9:53 PM, Richard Henderson wrote: > On 1/15/21 11:48 AM, Cupertino Miranda wrote:

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Richard Henderson
On 1/15/21 11:48 AM, Cupertino Miranda wrote: >> In the case of enter or leave, this is one load/store plus one addition, >> followed by a branch. All of which is encoded as fields in the instruction. >> Extremely simple. > > So your recommendation is leave the conditional exception triggering

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Richard Henderson
On 1/15/21 11:28 AM, Shahab Vahedi wrote: >>> +cpu_stl_data(env, tmp_sp, CPU_FP(env)); >>> +} >> >> And what if these stores raise an exception? I doubt you're going to get an >> exception at the correct pc. > > I've added a few bad-weather test cases [1] and they work as expected.

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Cupertino Miranda
On 1/15/21 8:31 PM, Richard Henderson wrote: > On 1/15/21 7:11 AM, Cupertino Miranda wrote: >>> Similarly. I think that both of these could be implemented entirely in >>> translate, which is what >>> +bool restore_fp= u7 & 0x10; /* u[4] indicates if fp must be saved */

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Shahab Vahedi
Hi Richard, On 12/1/20 10:35 PM, Richard Henderson wrote: > On 11/11/20 10:17 AM, cupertinomira...@gmail.com wrote: >> From: Cupertino Miranda >> +void helper_enter(CPUARCState *env, uint32_t u6) >> +{ >> +/* nothing to do? then bye-bye! */ >> +if (!u6) { >> +return; >> +} >>

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Richard Henderson
On 1/15/21 7:11 AM, Cupertino Miranda wrote: >> Similarly. I think that both of these could be implemented entirely in >> translate, which is what >> >>> +bool restore_fp= u7 & 0x10; /* u[4] indicates if fp must be saved >>> */ >>> +bool restore_blink = u7 & 0x20; /* u[5] indicates

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2021-01-15 Thread Cupertino Miranda
>> +void QEMU_NORETURN helper_halt(CPUARCState *env, uint32_t npc) >> +{ >> +CPUState *cs = env_cpu(env); >> +if (env->stat.Uf) { >> +cs->exception_index = EXCP_PRIVILEGEV; >> +env->causecode = 0; >> +env->param = 0; >> + /* Restore PC such that we point at

Re: [PATCH 04/15] arc: TCG and decoder glue code and helpers

2020-12-01 Thread Richard Henderson
On 11/11/20 10:17 AM, cupertinomira...@gmail.com wrote: > From: Cupertino Miranda > > Signed-off-by: Cupertino Miranda > --- > target/arc/extra_mapping.def | 40 ++ > target/arc/helper.c| 293 + > target/arc/helper.h| 46 ++ > target/arc/op_helper.c

[PATCH 04/15] arc: TCG and decoder glue code and helpers

2020-11-11 Thread cupertinomiranda
From: Cupertino Miranda Signed-off-by: Cupertino Miranda --- target/arc/extra_mapping.def | 40 ++ target/arc/helper.c| 293 + target/arc/helper.h| 46 ++ target/arc/op_helper.c | 749 +