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:
>>
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 of
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. In
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
*/
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;
>> +}
>>
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 s
>> +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 t
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
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 +
target/arc/semfunc_mapping.d