37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
|
|
From 7675f45536691eeca7d8163020c9bfb127d5ee4f Mon Sep 17 00:00:00 2001
|
||
|
|
From: Xi Ruoyao <xry111@xry111.site>
|
||
|
|
Date: Wed, 12 Jun 2024 11:01:53 +0800
|
||
|
|
Subject: [PATCH 168/188] LoongArch: Fix mode size comparision in
|
||
|
|
loongarch_expand_conditional_move
|
||
|
|
|
||
|
|
We were comparing a mode size with word_mode, but word_mode is an enum
|
||
|
|
value thus this does not really make any sense. (Un)luckily E_DImode
|
||
|
|
happens to be 8 so this seemed to work, but let's make it correct so it
|
||
|
|
won't blow up when we add LA32 support or add another machine mode...
|
||
|
|
|
||
|
|
gcc/ChangeLog:
|
||
|
|
|
||
|
|
* config/loongarch/loongarch.cc
|
||
|
|
(loongarch_expand_conditional_move): Compare mode size with
|
||
|
|
UNITS_PER_WORD instead of word_mode.
|
||
|
|
---
|
||
|
|
gcc/config/loongarch/loongarch.cc | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc
|
||
|
|
index 0c2c38f6f..77f83ab9e 100644
|
||
|
|
--- a/gcc/config/loongarch/loongarch.cc
|
||
|
|
+++ b/gcc/config/loongarch/loongarch.cc
|
||
|
|
@@ -5349,7 +5349,7 @@ loongarch_expand_conditional_move (rtx *operands)
|
||
|
|
loongarch_emit_float_compare (&code, &op0, &op1);
|
||
|
|
else
|
||
|
|
{
|
||
|
|
- if (GET_MODE_SIZE (GET_MODE (op0)) < word_mode)
|
||
|
|
+ if (GET_MODE_SIZE (GET_MODE (op0)) < UNITS_PER_WORD)
|
||
|
|
{
|
||
|
|
promote_op[0] = (REG_P (op0) && REG_P (operands[2]) &&
|
||
|
|
REGNO (op0) == REGNO (operands[2]));
|
||
|
|
--
|
||
|
|
2.43.0
|
||
|
|
|