]> git.feebdaed.xyz Git - 0xmirror/gcc.git/commit
LoongArch: Machine description files for LA32
authormengqinggang <mengqinggang@loongson.cn>
Tue, 25 Nov 2025 12:09:52 +0000 (20:09 +0800)
committerLulu Cheng <chenglulu@loongson.cn>
Fri, 12 Dec 2025 07:56:46 +0000 (15:56 +0800)
commitf5ae30e614c8fb2caf0874a8c3cf436e28860ef4
tree32b2b48512dbb1f0060c41213e6fd56b95dca7db
parent78a6cc3374cb356c5e3eb625dcc97d5ea70c5e74
LoongArch: Machine description files for LA32

gcc/ChangeLog:

* config/loongarch/constraints.md: Disable k on LA32.
* config/loongarch/loongarch.md (*and<mode>3): Delete.
(*and<mode>3_extend): New.
(zero_extend<SHORT:mode><GPR:mode>2_la32r): New.
(extend<SHORT:mode><GPR:mode>2_la32r): New.
(extendqihi2_la32r): New.
(*movdi_32bit): Remove not working split, use existing
loongarch_split_move instead.
(move_doubleword_2_<mode>): New.
(load_low<mode>): New.
(load_high<mode>): New.
(store_word<mode>): New.
(movgr2frh<mode>): New.
(movfrh2gr<mode>): New.
* config/loongarch/predicates.md: Disable low_bitmask_operand and
ins_zero_bitmask_operand on LA32. Enable const_call_insn_operand on LA32.
* config/loongarch/sync.md (atomic_<amop><mode>): Change to define_expand.
(la64_atomic_<amop><mode>): New.
(la32_atomic_<amop>si): New.
(atomic_fetch_<amop><mode>): Change to define_expand.
(la64_atomic_fetch_<amop><mode>): New.
(la32_atomic_fetch_<amop>si): New.
(atomic_exchange<mode>): Change to define_expand.
(la64_atomic_exchange<mode>): New.
(la32_atomic_exchangesi): New.

Co-authored-by: Jiajie Chen <c@jia.je>
Reviewed-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Lulu Cheng <chenglulu@loongson.cn>
gcc/config/loongarch/constraints.md
gcc/config/loongarch/loongarch.md
gcc/config/loongarch/predicates.md
gcc/config/loongarch/sync.md