https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127165

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
MAX_RECOG_OPERANDS is set to 30 because of code in genconfig:
  /* Allow at least 30 operands for the sake of asm constructs.
     This magic number is also used in genpreds to determine
     validity of a referenced operand when parsing dynamic register
     filters.  */
  /* ??? We *really* ought to reorganize things such that there
     is no fixed upper bound.  */
  max_recog_operands = 29;  /* We will add 1 later.  */



Increasing it will not work because aarch64 backend has:
config/aarch64/aarch64-early-ra.cc:  static_assert (MAX_RECOG_OPERANDS <= 32,
"Operand mask is 32 bits");

Which needs extra work there too.

Really if you have more than 30 input/outputs to an inline-asm; it is time to
write the code directly in assembly instead ...

Reply via email to