]> git.ipfire.org Git - thirdparty/gcc.git/commit
LoongArch: Fix the "%t" modifier handling for (const_int 0)
authorXi Ruoyao <xry111@xry111.site>
Tue, 19 Aug 2025 03:14:42 +0000 (11:14 +0800)
committerXi Ruoyao <xry111@xry111.site>
Thu, 11 Sep 2025 10:49:33 +0000 (18:49 +0800)
commit13ec1769fa2404eec8c34ce8e0b87fc28ff5ac76
treeaaccb72d7b88d51585c6ad31dbc267b6fae1cc3a
parent1b27e8471327f14436e711cd2036d70b76515a6d
LoongArch: Fix the "%t" modifier handling for (const_int 0)

This modifier is intended to output $r0 for (const_int 0), but the
logic:

GET_MODE (op) != TImode || (op != CONST0_RTX (TImode) && code != REG)

will reject (const_int 0) because (const_int 0) actually does not have
a mode and GET_MODE will return VOIDmode for it.

Use reg_or_0_operand instead to fix the issue.

gcc/ChangeLog:

* config/loongarch/loongarch.cc (loongarch_print_operand): Call
reg_or_0_operand for checking the sanity of %t.
gcc/config/loongarch/loongarch.cc