[PATCH] CSKY: Add warning when -mdsp and -mcpu=ck803ern are both added.

Lifang Xia lifang_xia@c-sky.com
Mon Aug 31 03:17:22 GMT 2020


merged.

On 2020/8/31 10:55, Cooper Qu wrote:
> gas/
> 	* config/tc-csky.c (md_begin): Add warning when -mdsp and
>   	-mcpu=ck803ern are both added.
>   	(parse_ldst_imm): Fix error message.
>
> ---
>   gas/ChangeLog        |  6 ++++++
>   gas/config/tc-csky.c | 19 ++++++++++++++++---
>   2 files changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/gas/ChangeLog b/gas/ChangeLog
> index 91152673016..1f30a6bc52b 100644
> --- a/gas/ChangeLog
> +++ b/gas/ChangeLog
> @@ -1,3 +1,9 @@
> +2020-08-31  Cooper Qu  <cooper.qu@linux.alibaba.com>
> +
> +	* config/tc-csky.c (md_begin): Add warning when -mdsp and
> +	-mcpu=ck803ern are both added.
> +	(parse_ldst_imm): Fix error message.
> +
>   2020-08-30  Alan Modra  <amodra@gmail.com>
>   
>   	* testsuite/gas/cr16/cbitb_test.d: Update expected output.
> diff --git a/gas/config/tc-csky.c b/gas/config/tc-csky.c
> index 9f2975e5f68..6fc24acde0f 100644
> --- a/gas/config/tc-csky.c
> +++ b/gas/config/tc-csky.c
> @@ -1359,8 +1359,20 @@ md_begin (void)
>   	{
>   	  if ((dsp_flag & CSKY_DSP_FLAG_V1))
>   	    {
> -	      isa_flag |= (CSKY_ISA_MAC_DSP | CSKY_ISA_DSP);
> -	      isa_flag &= ~CSKY_ISA_DSP_ENHANCE;
> +	      if (isa_flag & CSKY_ISA_DSP_ENHANCE)
> +		{
> +		  /* Option -mdsp conflicts with -mcpu=ck803ern,
> +		     CPU already indicates the dsp version.  */
> +		  as_warn ("Option -mdsp conflicts with -mcpu=ck803ern which "
> +		           "has indicated DSP version, ignoring -mdsp.");
> +		  isa_flag &= ~(CSKY_ISA_MAC_DSP | CSKY_ISA_DSP);
> +		  isa_flag |= CSKY_ISA_DSP_ENHANCE;
> +		}
> +	      else
> +		{
> +		  isa_flag |= (CSKY_ISA_MAC_DSP | CSKY_ISA_DSP);
> +		  isa_flag &= ~CSKY_ISA_DSP_ENHANCE;
> +		}
>   	    }
>   
>   	  if ((dsp_flag & CSKY_DSP_FLAG_V2))
> @@ -2938,7 +2950,8 @@ parse_ldst_imm (char **oper, struct csky_opcode_info *op ATTRIBUTE_UNUSED,
>     if ((e.X_add_number % (1 << shift)) != 0)
>       {
>         /* Not aligned.  */
> -      SET_ERROR_NUMBER (ERROR_OFFSET_UNALIGNED, ((unsigned long)1 << shift));
> +      SET_ERROR_NUMBER (ERROR_OFFSET_UNALIGNED,
> +			(void *)"Operand format is error. eg. \"ld rz, (rx, n)\"");
>         return FALSE;
>       }
>   


More information about the Binutils mailing list