[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status |
Date: |
Sun, 3 Apr 2011 14:10:30 +0300 |
On Sun, Apr 3, 2011 at 1:51 PM, Peter Maydell <address@hidden> wrote:
> On 3 April 2011 10:41, Blue Swirl <address@hidden> wrote:
>> On Sat, Apr 2, 2011 at 1:33 AM, Peter Maydell <address@hidden> wrote:
>>> Nobody seemed to have a coherent rule about when functions
>>> should be in op_helper.c and use the global 'env' variable
>>> and when they should be in some other file and have 'env'
>>> passed as a parameter
>
>> In general, helpers for the translated code belong to op_helper.c.
>> They can and should access global env directly for speed. If a helper
>> is used for both translated code and outside of it, a wrapper should
>> be added to do global env shuffling (or for example a copy without
>> shuffling added).
>
> OK, we can do that, but at the moment "helper function not in
> op_helper.c" is hugely in the majority so there's a lot of
> code we'd be moving around:
>
> $ grep -c HELPER target-arm/*.c
> target-arm/helper.c:68
> target-arm/iwmmxt_helper.c:59
> target-arm/machine.c:0
> target-arm/neon_helper.c:103
> target-arm/op_helper.c:28
> target-arm/translate.c:2
>
> (ie just 10% or so of ARM helper functions are in op_helper.c)
>
> ...and this cleanup would basically amount to folding
> neon_helper.c, iwmmxt_helper.c and bits of helper.c into
> op_helper.c (and then removing the 'env' parameters, so
> a big patch to translate.c as well, which I don't suppose
> anybody maintaining an out-of-tree target-arm patchset will
> thank us for :-)).
Alternatively those files could be compiled with HELPER_CFLAGS. In
either case, the code would have to be checked for 'env' usage and
adjusted.
> But I can submit a patch to do that if it's the right thing.
It's not so much about correctness, but performance. All generated
code already has access to global env, so passing it via helper
arguments requires extra instructions which can be avoided.
- [Qemu-devel] [PATCH 06/10] softfloat: Add float*_min() and float*_max() functions, (continued)
- [Qemu-devel] [PATCH 06/10] softfloat: Add float*_min() and float*_max() functions, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 07/10] target-arm: Use new softfloat min/max functions for VMAX, VMIN, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 10/10] target-arm/helper.c: For float-int conversion helpers pass ints as ints, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 04/10] target-arm: Fix VCLE.F32 #0, VCLT.F32 #0 NaN handling, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/01
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Blue Swirl, 2011/04/01
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/01
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Blue Swirl, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status,
Blue Swirl <=
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Blue Swirl, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Aurelien Jarno, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Aurelien Jarno, 2011/04/03
[Qemu-devel] [PATCH 05/10] target-arm: Correct ABD's handling of negative zeroes, Peter Maydell, 2011/04/01
[Qemu-devel] [PATCH 03/10] target-arm: Return right result for Neon comparison with NaNs, Peter Maydell, 2011/04/01
[Qemu-devel] [PATCH 08/10] target-arm: Fix VLD of single element to all lanes, Peter Maydell, 2011/04/01
Re: [Qemu-devel] [PATCH 00/10] [PULL] ARM Neon fixes, Aurelien Jarno, 2011/04/03