Skip to content

s390x/tcg: Implement Vector-Enhancements Facility 2 for s390x

Goal

The emulation part of QEMU (currently TCG) for the s390x architecture lacks some facilities that were introduced with Z15 and used by GCC and LLVM with -march=z15. The goal of this request is to implement the Vector-Enhancements Facility 2 for the s390x tcg frontend so that s390x user and softmmu targets will be able to handle code containing instructions of that facility.

Technical details

  1. Implement the TCG variant for the Vector-Enhancements Facility 2 containing
  • VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR)
  • VECTOR LOAD ELEMENTS REVERSED (VLER)
  • VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ)
  • VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, VLEBRG)
  • VECTOR LOAD BYTE REVERSED ELEMENT AND REPLOCATE (VLBRREP)
  • VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR)
  • VECTOR STORE ELEMENTS REVERSED (VSTER)
  • VECTOR STORE BYTE REVERSED ELEMENT (VSTEBRH, VSTEBRF, VSTEBRG)
  • VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD)
  • VECTOR SHIFT RIGHT DOUBLE BY BIT (VSRD)
  • VECTOR STRING SEARCH (VSTRS)

and changes to

  • VECTOR SHIFT LEFT (VSL)
  • VECTOR SHIFT RIGHT ARITHMETIC (VSRA)
  • VECTOR SHIFT RIGHT LOGICAL (VSRL)
  • VECTOR FP CONVERT FROM FIXED (VCFPS)
  • VECTOR FP CONVERT FROM LOGICAL (VCFPL)
  • VECTOR FP CONVERT TO FIXED (VCSFP)
  • VECTOR FP CONVERT TO LOGICAL (VCLFP)
  1. Enable S390_FEAT_VECTOR_ENH2 in the QEMU_MAX cpu model
  2. Add testcases for the TCG implementation.

Additional information

http://publibfp.dhe.ibm.com/epubs/pdf/a227832c.pdf

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information