Hi, Merry Christmas! This series adds LoongArch LSX instructions, Since the LoongArch Vol2 is not open, So we use 'RFC' title. About Test: The new-abi gcc which support LSX is also not open, We use the old-abi gcc [1] build test code[2](tests/tcg/loongarch/vec/test_XXX*.c).
[1]:http://ftp.loongnix.cn/toolchain/gcc/release/loongarch/gcc8/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.1.tar.xz [2]:https://github.com/loongson/qemu/commit/a4f03d68c0c60fcc5bf62114fd1f7a6a7cdf1070 e.g build: loongarch64-linux-gnu-gcc -mlsx tests/tcg/loongarch64/vec/test_bit.c -o test_bit run: ./build/qemu-loongarch64 test_bit (qemu branch [2]: tcg-old-abi-support-lsx) Thanks. SOng Gao Song Gao (43): target/loongarch: Add vector data type vec_t target/loongarch: CPUCFG support LSX target/loongarch: meson.build support build LSX target/loongarch: Add CHECK_SXE maccro for check LSX enable target/loongarch: Implement vadd/vsub target/loongarch: Implement vaddi/vsubi target/loongarch: Implement vneg target/loongarch: Implement vsadd/vssub target/loongarch: Implement vhaddw/vhsubw target/loongarch: Implement vaddw/vsubw target/loongarch: Implement vavg/vavgr target/loongarch: Implement vabsd target/loongarch: Implement vadda target/loongarch: Implement vmax/vmin target/loongarch: Implement vmul/vmuh/vmulw{ev/od} target/loongarch: Implement vmadd/vmsub/vmaddw{ev/od} target/loongarch: Implement vdiv/vmod target/loongarch: Implement vsat target/loongarch: Implement vexth target/loongarch: Implement vsigncov target/loongarch: Implement vmskltz/vmskgez/vmsknz target/loongarch: Implement LSX logic instructions target/loongarch: Implement vsll vsrl vsra vrotr target/loongarch: Implement vsllwil vextl target/loongarch: Implement vsrlr vsrar target/loongarch: Implement vsrln vsran target/loongarch: Implement vsrlrn vsrarn target/loongarch: Implement vssrln vssran target/loongarch: Implement vssrlrn vssrarn target/loongarch: Implement vclo vclz target/loongarch: Implement vpcnt target/loongarch: Implement vbitclr vbitset vbitrev target/loongarch: Implement vfrstp target/loongarch: Implement LSX fpu arith instructions target/loongarch: Implement LSX fpu fcvt instructions target/loongarch: Implement vseq vsle vslt target/loongarch: Implement vfcmp target/loongarch: Implement vbitsel vset target/loongarch: Implement vinsgr2vr vpickve2gr vreplgr2vr target/loongarch: Implement vreplve vpack vpick target/loongarch: Implement vilvl vilvh vextrins vshuf target/loongarch: Implement vld vst target/loongarch: Implement vldi fpu/softfloat.c | 55 + include/fpu/softfloat.h | 27 + linux-user/loongarch64/signal.c | 4 +- target/loongarch/cpu.c | 5 +- target/loongarch/cpu.h | 20 +- target/loongarch/disas.c | 911 ++++ target/loongarch/fpu_helper.c | 2 +- target/loongarch/gdbstub.c | 4 +- target/loongarch/helper.h | 748 +++ target/loongarch/insn_trans/trans_lsx.c.inc | 960 ++++ target/loongarch/insns.decode | 811 +++ target/loongarch/internals.h | 1 + target/loongarch/lsx_helper.c | 5375 +++++++++++++++++++ target/loongarch/machine.c | 2 +- target/loongarch/meson.build | 1 + target/loongarch/translate.c | 11 + 16 files changed, 8929 insertions(+), 8 deletions(-) create mode 100644 target/loongarch/insn_trans/trans_lsx.c.inc create mode 100644 target/loongarch/lsx_helper.c -- 2.31.1