diff options
author | YunQiang Su <syq@gcc.gnu.org> | 2024-06-19 23:48:26 +0800 |
---|---|---|
committer | YunQiang Su <syq@gcc.gnu.org> | 2024-06-25 16:29:09 +0800 |
commit | 0b456434fe0f1d64291b7c6b3596c836c9519f85 (patch) | |
tree | fe33e1cf07131479eac2a0bc5f61a51a575ab2b4 /gcc | |
parent | 30db57901ccac7027f93ff71e70a66e26a4f70f5 (diff) | |
download | gcc-0b456434fe0f1d64291b7c6b3596c836c9519f85.zip gcc-0b456434fe0f1d64291b7c6b3596c836c9519f85.tar.gz gcc-0b456434fe0f1d64291b7c6b3596c836c9519f85.tar.bz2 |
MIPS: Output $0 for conditional trap if !ISA_HAS_COND_TRAPI
MIPSr6 removes condition trap instructions with imm, so the instruction
like `teq $2,imm` will be converted to
li $at, imm
teq $2, $at
The current version of Gas cannot detect if imm is zero, and output
teq $2, $0
Let's do it in GCC.
gcc
* config/mips/mips.md(conditional_trap_reg): Output $0 instead
of 0 if !ISA_HAS_COND_TRAPI.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/mips/mips.md | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index f9da066..737d256 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -1245,7 +1245,7 @@ (match_operand:GPR 2 "reg_or_0_operand" "dJ")]) (const_int 0))] "ISA_HAS_COND_TRAP && !ISA_HAS_COND_TRAPI" - "t%C0\t%z1,%2" + "t%C0\t%z1,%z2" [(set_attr "type" "trap")]) (define_insn "*conditional_trap<mode>" |