]>
git.feebdaed.xyz Git - 0xmirror/gcc.git/commit
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>