On Aug 30, 2014 6:32 AM, "Luca Barbato" <lu_z...@gentoo.org> wrote:
>
> ---
>
> I tested with recent compilers and the problem mentioned is actual only
> for -O0.
>
>  libavutil/ppc/intreadwrite.h | 48
++++++++++++++++++++++++++++++--------------
>  1 file changed, 33 insertions(+), 15 deletions(-)
>
> diff --git a/libavutil/ppc/intreadwrite.h b/libavutil/ppc/intreadwrite.h
> index fec54e6..dc8cd73 100644
> --- a/libavutil/ppc/intreadwrite.h
> +++ b/libavutil/ppc/intreadwrite.h
> @@ -26,7 +26,40 @@
>
>  #if HAVE_XFORM_ASM
>
> +#if HAVE_BIGENDIAN
>  #define AV_RL16 AV_RL16
> +#define AV_WL16 AV_WL16
> +#define AV_RL32 AV_RL32
> +#define AV_WL32 AV_WL32
> +#define AV_RL64 AV_RL64
> +#define AV_WL64 AV_WL64
> +
> +/*
> + * -O0 would compile the packed struct version, which is used by
> + * default, in an overly verbose fashion, so we override it here.
> + */
> +

> +#define AV_RB64(p) (*(const uint64_t *)(p))
> +#define AV_WB64(p, v) (*(uint64_t *)(p) = (v))

Don't these need to be at the end of the file so that it overrides the
assembly version?

> +
> +#else
> +#define AV_RL16 AV_RB16
> +#define AV_WL16 AV_WB16
> +#define AV_RL32 AV_RB32
> +#define AV_WL32 AV_WB32

> +#define AV_RL64 AV_RB64

> +#define AV_RL64 AV_RB64

These should be WL and WB.

[...]

Timothy
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to