This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


On 4/1/18 11:17 AM, Gunther Nikl wrote:
> Hello,
> 
>> diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
>> index ff76221..e3d5d84 100644
>> --- a/gas/config/tc-ppc.c
>> +++ b/gas/config/tc-ppc.c
>> @@ -1403,7 +1403,14 @@ 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_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
>> +		     | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 |
>> PPC_OPCODE_POWER6
>> +		     | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8
>> +		     | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX;
>>        else if (strncmp (default_os, "aix", 3) == 0
>>  	       && default_os[3] >= '4' && default_os[3] <= '9')
>>  	ppc_cpu |= PPC_OPCODE_COMMON;
> 
> Don't you need parentheses to not change the logic?

In the end, I went with:

-       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");

Peter


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]