PR binutils/23013: Assembler not recognizing 3-opt dcbt instruction form on Power systems

Alan Modra amodra@gmail.com
Fri Mar 30 03:14:00 GMT 2018


On Thu, Mar 29, 2018 at 09:40:27PM -0500, Peter Bergner wrote:
> On 3/29/18 8:29 PM, Alan Modra wrote:
> > On Thu, Mar 29, 2018 at 02:56:24PM -0500, Peter Bergner wrote:
> > Write the above line as
> > 
> > 	  ppc_cpu |= (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
> 
> Hmmm.... or maybe the following is more readable?

Fine, but "|=" not "=", to preserve -many.

> diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
> index ff76221..a1a9000 100644
> --- a/gas/config/tc-ppc.c
> +++ b/gas/config/tc-ppc.c
> @@ -1403,7 +1403,11 @@ ppc_set_cpu (void)
>    if ((ppc_cpu & ~(ppc_cpu_t) PPC_OPCODE_ANY) == 0)
>      {
>        if (ppc_obj64)
> -       ppc_cpu |= PPC_OPCODE_PPC | PPC_OPCODE_64;
> +       if (target_big_endian)
> +         ppc_cpu |= PPC_OPCODE_PPC | PPC_OPCODE_64;
> +       else
> +         /* The minimum supported cpu for 64-bit little-endian is power8.  */
> +         ppc_cpu = ppc_parse_cpu (ppc_cpu, &sticky, "power8");
>        else if (strncmp (default_os, "aix", 3) == 0
>                && default_os[3] >= '4' && default_os[3] <= '9')
>         ppc_cpu |= PPC_OPCODE_COMMON;
> 

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list