qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] [PULL 12/51] target-arm: A64: Implement DC ZVA
       [not found] ` <1397730846-7576-13-git-send-email-peter.maydell@linaro.org>
@ 2014-10-08 13:50   ` Christopher Covington
  0 siblings, 0 replies; only message in thread
From: Christopher Covington @ 2014-10-08 13:50 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-devel

Hi Peter,

On 04/17/2014 06:33 AM, Peter Maydell wrote:
> Implement the DC ZVA instruction, which clears a block of memory.
> The fast path obtains a pointer to the underlying RAM via the TCG TLB
> data structure so we can do a direct memset(), with fallback to a
> simple byte-store loop in the slow path.

> diff --git a/target-arm/helper.c b/target-arm/helper.c
> index 62f7fd3..2ffc588 100644
> --- a/target-arm/helper.c
> +++ b/target-arm/helper.c

> +static uint64_t aa64_dczid_read(CPUARMState *env, const ARMCPRegInfo *ri)
> +{
> +    ARMCPU *cpu = arm_env_get_cpu(env);
> +    int dzp_bit = 1 << 4;
> +
> +    /* DZP indicates whether DC ZVA access is allowed */
> +    if (aa64_zva_access(env, NULL) != CP_ACCESS_OK) {

I believe this logic for the Data Zero Prohibited field is inverted, causing
eglibc to use STP rather than DC ZVA for __memset.

> +        dzp_bit = 0;
> +    }
> +    return cpu->dcz_blocksize | dzp_bit;
> +}

Thanks,
Christopher

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-10-08 13:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1397730846-7576-1-git-send-email-peter.maydell@linaro.org>
     [not found] ` <1397730846-7576-13-git-send-email-peter.maydell@linaro.org>
2014-10-08 13:50   ` [Qemu-devel] [PULL 12/51] target-arm: A64: Implement DC ZVA Christopher Covington

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).