qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH 00/43] Add LoongArch LSX instructions


From: Song Gao
Subject: [RFC PATCH 00/43] Add LoongArch LSX instructions
Date: Sat, 24 Dec 2022 16:15:50 +0800

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]