aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/loongarch/loongarch.md
diff options
context:
space:
mode:
authorLulu Cheng <chenglulu@loongson.cn>2024-07-12 09:57:40 +0800
committerLulu Cheng <chenglulu@loongson.cn>2024-07-20 09:13:05 +0800
commit390c3e4ed28f6c7ef176c90b557fa0203678dbb3 (patch)
tree5145e4f26a4f7758922b05b801df32e9e5dff617 /gcc/config/loongarch/loongarch.md
parent8d6498f0d772775ad09d7d9e14f491a306e5f853 (diff)
downloadgcc-390c3e4ed28f6c7ef176c90b557fa0203678dbb3.zip
gcc-390c3e4ed28f6c7ef176c90b557fa0203678dbb3.tar.gz
gcc-390c3e4ed28f6c7ef176c90b557fa0203678dbb3.tar.bz2
LoongArch: Organize the code related to split move and merge the same functions.
gcc/ChangeLog: * config/loongarch/loongarch-protos.h (loongarch_split_128bit_move): Delete. (loongarch_split_128bit_move_p): Delete. (loongarch_split_256bit_move): Delete. (loongarch_split_256bit_move_p): Delete. (loongarch_split_vector_move): Add a function declaration. * config/loongarch/loongarch.cc (loongarch_vector_costs::finish_cost): Adjust the code formatting. (loongarch_split_vector_move_p): Merge loongarch_split_128bit_move_p and loongarch_split_256bit_move_p. (loongarch_split_move_p): Merge code. (loongarch_split_move): Likewise. (loongarch_split_128bit_move_p): Delete. (loongarch_split_256bit_move_p): Delete. (loongarch_split_128bit_move): Delete. (loongarch_split_vector_move): Merge loongarch_split_128bit_move and loongarch_split_256bit_move. (loongarch_split_256bit_move): Delete. (loongarch_global_init): Remove the extra semicolon at the end of the function. * config/loongarch/loongarch.md (*movdf_softfloat): Added a new condition TARGET_64BIT.
Diffstat (limited to 'gcc/config/loongarch/loongarch.md')
-rw-r--r--gcc/config/loongarch/loongarch.md1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
index 21890a2..459ad30 100644
--- a/gcc/config/loongarch/loongarch.md
+++ b/gcc/config/loongarch/loongarch.md
@@ -2406,6 +2406,7 @@
[(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,m")
(match_operand:DF 1 "move_operand" "rG,m,rG"))]
"(TARGET_SOFT_FLOAT || TARGET_SINGLE_FLOAT)
+ && TARGET_64BIT
&& (register_operand (operands[0], DFmode)
|| reg_or_0_operand (operands[1], DFmode))"
{ return loongarch_output_move (operands[0], operands[1]); }