1#ifndef LOONGARCH_FEATURE 2#define LOONGARCH_FEATURE(NAME, KIND) 3#endif 4 5LOONGARCH_FEATURE("+64bit", FK_64BIT) 6LOONGARCH_FEATURE("+f", FK_FP32) 7LOONGARCH_FEATURE("+d", FK_FP64) 8LOONGARCH_FEATURE("+lsx", FK_LSX) 9LOONGARCH_FEATURE("+lasx", FK_LASX) 10LOONGARCH_FEATURE("+lbt", FK_LBT) 11LOONGARCH_FEATURE("+lvz", FK_LVZ) 12LOONGARCH_FEATURE("+ual", FK_UAL) 13LOONGARCH_FEATURE("+frecipe", FK_FRECIPE) 14LOONGARCH_FEATURE("+lam-bh", FK_LAM_BH) 15LOONGARCH_FEATURE("+lamcas", FK_LAMCAS) 16LOONGARCH_FEATURE("+ld-seq-sa", FK_LD_SEQ_SA) 17LOONGARCH_FEATURE("+div32", FK_DIV32) 18LOONGARCH_FEATURE("+scq", FK_SCQ) 19 20#undef LOONGARCH_FEATURE 21 22#ifndef LOONGARCH_ARCH 23#define LOONGARCH_ARCH(NAME, KIND, FEATURES) 24#endif 25 26LOONGARCH_ARCH("loongarch64", AK_LOONGARCH64, FK_64BIT | FK_FP32 | FK_FP64 | FK_UAL) 27LOONGARCH_ARCH("la464", AK_LA464, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL) 28LOONGARCH_ARCH("la664", AK_LA664, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL | FK_FRECIPE | FK_LAM_BH | FK_LAMCAS | FK_LD_SEQ_SA | FK_DIV32 | FK_SCQ) 29 30#undef LOONGARCH_ARCH 31