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

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Xi Ruoyao from comment #2)
> Interestingly it "worked" with GCC 12.2...

I don't see how it could work though.
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4499)     default:
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4500)       switch (code)
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4501)        {
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4502)        case REG:
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4503)          {
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4504)            unsigned
int regno = REGNO (op);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4505)            if (letter
&& letter != 'z')
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4506)             
output_operand_lossage ("invalid use of '%%%c'", letter);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4507)            fprintf
(file, "%s", reg_names[regno]);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4508)          }
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4509)          break;
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4510)
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4511)        case MEM:
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4512)          if (letter ==
'D')
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4513)           
output_address (GET_MODE (op),
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4514)                       
    plus_constant (Pmode, XEXP (op, 0), 4));
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4515)          else if
(letter == 'b')
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4516)            {
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4517)             
gcc_assert (REG_P (XEXP (op, 0)));
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4518)             
loongarch_print_operand (file, XEXP (op, 0), 0);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4519)            }
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4520)          else if
(letter && letter != 'z')
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4521)           
output_operand_lossage ("invalid use of '%%%c'", letter);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4522)          else
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4523)           
output_address (GET_MODE (op), XEXP (op, 0));
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4524)          break;
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4525)
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4526)        default:
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4527)          if (letter ==
'z' && op == CONST0_RTX (GET_MODE (op)))
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4528)            fputs
(reg_names[GP_REG_FIRST], file);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4529)          else if
(letter && letter != 'z')
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4530)           
output_operand_lossage ("invalid use of '%%%c'", letter);
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4531)          else
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4532)           
output_addr_const (file, loongarch_strip_unspec_address (op));
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4533)          break;
62ec3b5352b3 (chenglulu  2021-11-27 14:58:21 +0800 4534)        }

Reply via email to