From: Dmitry Selyutin Date: Mon, 25 Jul 2022 19:16:19 +0000 (+0300) Subject: ppc/svp64: support crm mode X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1331ab90990164cc9b240fd88c5e3f00c85d9fba;p=binutils-gdb.git ppc/svp64: support crm mode --- diff --git a/gas/config/tc-ppc-svp64.c b/gas/config/tc-ppc-svp64.c index 14cc9cd2fc0..5436ab203a7 100644 --- a/gas/config/tc-ppc-svp64.c +++ b/gas/config/tc-ppc-svp64.c @@ -44,6 +44,7 @@ struct svp64_ctx { unsigned int pr : 3 + 2; /* 3-bit plus RC1 */ unsigned int mr : 1; unsigned int rg : 1; + unsigned int crm : 1; }; #define SVP64_RC1_ACTIVE (1U << 3U) @@ -495,6 +496,22 @@ svp64_decode_mrr (char *str, struct svp64_ctx *svp64) return str; } +static char * +svp64_decode_crm (char *str, struct svp64_ctx *svp64) +{ + str += (sizeof ("crm") - 1); + if ( ! ISSPACE (*str) && *str != SVP64_SEP && *str != '\0') + return NULL; + + svp64->sv_mode_explicit = 1; + svp64->sv_mode = 0; + svp64->crm = 1; + + *str++ = '\0'; + + return str; +} + static char * svp64_decode_mode (char *str, struct svp64_ctx *svp64) { @@ -518,6 +535,7 @@ svp64_decode_mode (char *str, struct svp64_ctx *svp64) SVP64_DECODER ("pr=" , svp64_decode_pr), SVP64_DECODER ("mr" , svp64_decode_mr), SVP64_DECODER ("mrr" , svp64_decode_mrr), + SVP64_DECODER ("crm" , svp64_decode_crm), }; for (i = 0; i < sizeof (table) / sizeof (table[0]); ++i)