[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q}
From: |
Alex Bennée |
Subject: |
Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q} |
Date: |
Tue, 15 Oct 2019 22:34:26 +0100 |
User-agent: |
mu4e 1.3.5; emacs 27.0.50 |
Alex Bennée <address@hidden> writes:
> Peter Maydell <address@hidden> writes:
>
>> On Mon, 14 Oct 2019 at 12:38, Alex Bennée <address@hidden> wrote:
>>>
>>> From: "Emilio G. Cota" <address@hidden>
>>>
>>> We don't bother with replicating the fast path (tlb_hit) of the old
>>> cpu_ldst helpers as it has no measurable effect on performance. This
>>> probably indicates we should consider flattening the whole set of
>>> helpers but that is out of scope for this change.
>>>
>>> Suggested-by: Richard Henderson <address@hidden>
>>> Signed-off-by: Emilio G. Cota <address@hidden>
>>> [AJB: directly plumb into softmmu/user helpers]
>>> Signed-off-by: Alex Bennée <address@hidden>
>>>
>>> diff --git a/tcg/tcg.h b/tcg/tcg.h
>>> index a38659ea5b..302533b463 100644
>>> --- a/tcg/tcg.h
>>> +++ b/tcg/tcg.h
>>> @@ -1317,6 +1317,7 @@ uint64_t helper_be_ldq_cmmu(CPUArchState *env,
>>> target_ulong addr,
>>> # define helper_ret_stl_mmu helper_be_stl_mmu
>>> # define helper_ret_stq_mmu helper_be_stq_mmu
>>> # define helper_ret_ldw_cmmu helper_be_ldw_cmmu
>>> +# define helper_ret_lduw_cmmu helper_be_ldw_cmmu
>>> # define helper_ret_ldl_cmmu helper_be_ldl_cmmu
>>> # define helper_ret_ldq_cmmu helper_be_ldq_cmmu
>>> #else
>>> @@ -1330,6 +1331,7 @@ uint64_t helper_be_ldq_cmmu(CPUArchState *env,
>>> target_ulong addr,
>>> # define helper_ret_stl_mmu helper_le_stl_mmu
>>> # define helper_ret_stq_mmu helper_le_stq_mmu
>>> # define helper_ret_ldw_cmmu helper_le_ldw_cmmu
>>> +# define helper_ret_lduw_cmmu helper_le_ldw_cmmu
>>> # define helper_ret_ldl_cmmu helper_le_ldl_cmmu
>>> # define helper_ret_ldq_cmmu helper_le_ldq_cmmu
>>> #endif
>>
>> This looks odd. Why is it ok to define a 'lduw' helper
>> as the 'ldw' cmmu helper ? One ought to be sign
>> extending and the other not...
>
> This was attempting to make things line up between the softmmu helpers
> and the user-mode ld*_p helpers that we need to expand to. I'm not sure
> a sign extending loader even makes sense for code load anyway.
That last bit is not true as sign extending helpers are used for loading
sign-extended immediate values.
>
>>
>> thanks
>> -- PMM
--
Alex Bennée
- [PATCH v5 14/55] plugin-gen: add module for TCG-related code, (continued)
- [PATCH v5 14/55] plugin-gen: add module for TCG-related code, Alex Bennée, 2019/10/14
- [PATCH v5 35/55] translator: inject instrumentation from plugins, Alex Bennée, 2019/10/14
- [PATCH v5 28/55] target/hppa: fetch code with translator_ld, Alex Bennée, 2019/10/14
- [PATCH v5 34/55] target/openrisc: fetch code with translator_ld, Alex Bennée, 2019/10/14
- [PATCH v5 19/55] *-user: notify plugin of exit, Alex Bennée, 2019/10/14
- [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q}, Alex Bennée, 2019/10/14
- Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q}, Richard Henderson, 2019/10/14
- Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q}, Peter Maydell, 2019/10/14
- Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q}, Alex Bennée, 2019/10/15
- Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q},
Alex Bennée <=
- Re: [PATCH v5 23/55] translator: add translator_ld{ub,sw,uw,l,q}, Alex Bennée, 2019/10/15
- [PATCH v5 53/55] plugins: add sparc64 instruction classification table, Alex Bennée, 2019/10/14
[PATCH v5 27/55] target/i386: fetch code with translator_ld, Alex Bennée, 2019/10/14
[PATCH v5 51/55] plugins: expand the plugin_init function to include an info block, Alex Bennée, 2019/10/14
[PATCH v5 38/55] linux-user: support -plugin option, Alex Bennée, 2019/10/14
[PATCH v5 55/55] .travis.yml: add --enable-plugins tests, Alex Bennée, 2019/10/14