Commit Graph

35 Commits

Author SHA1 Message Date
Andreas Arnez
1bee3ab757 s390x: Wrap up misc-insn-3 and vec-enh-2 support
Wrap up support for the miscellaneous-instruction-extensions facility 3
and the vector-enhancements facility 2: Add 'case' statements for the
remaining unhandled arch13 instructions to 'guest_s390_toIR.c', document
the new support in 's390-opcodes.csv', adjust 's390-check-opcodes.pl', and
announce the new feature in 'NEWS'.
2021-09-01 14:47:10 +02:00
Andreas Arnez
159f132289 Bug 404076 - s390x: Implement z14 vector instructions
Implement the new instructions/features that were added to z/Architecture
with the vector-enhancements facility 1.  Also cover the instructions from
the vector-packed-decimal facility that are defined outside the chapter
"Vector Decimal Instructions", but not the ones from that chapter itself.

For a detailed list of newly supported instructions see the updates to
`docs/internals/s390-opcodes.csv'.

Since the miscellaneous instruction extensions facility 2 was already
addressed by Bug 404406, this completes the support necessary to run
general programs built with `--march=z14' under Valgrind.  The
vector-packed-decimal facility is currently not exploited by the standard
toolchain and libraries.
2020-12-08 19:37:39 +01:00
Andreas Arnez
e83c28e10c Bug 416301 - s390x: Support "compare and signal" instructions
Add VEX support for the s390x "compare and signal" instructions KEBR,
KDBR, KXBR, KEB, and KDB.  For now, let them behave exactly like their
non-signalling counterparts.  Enhance the bfp-4 test case to cover these
instructions as well.  Update the list of supported instructions in
s390-opcodes.csv.  Add a disclaimer to README.s390, explaining that FP
signalling is not handled accurately on s390x at the moment.
2020-02-06 12:28:19 +01:00
Andreas Arnez
dcceae252a s390x: Fix some typos in s390-opcodes.csv
Some lines in s390-opcodes.csv contain entries that look like this:

    ...,"arch12"implemented",...

They are probably introduced by some cut-and-paste error.  This is fixed.
2020-01-27 16:46:20 +01:00
Ilya Leoshkevich
50b20aa244 Bug 404406 - s390x: implement z14 miscellaneous instructions
(from bug 404406 comment 0):
Valgrind on s390x currently lacks support for the miscellaneous
instruction extensions facility 2.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
2019-06-12 20:19:33 +02:00
Andreas Arnez
e63f93a970 s390x: Clean up s390-check-opcodes.pl
Fix false positives when invoking s390-check-opcodes.pl.  Also clean up
some code formatting issues in that script.  Add the instructions TPEI and
IRBM to guest_s390_toIR.c and s390-opcodes.csv, so they are not longer
warned about.
2019-06-12 20:12:21 +02:00
Vadim Barkov
86bd889458 Bug 385411 s390x: Tests and internals for z13 vector FP support
Add test cases for the z13 vector FP support.  Bring s390-opcodes.csv
up-to-date, reflecting that the z13 vector instructions are now supported.
Also remove the non-support disclaimer for the vector facility from
README.s390.

The patch was contributed by Vadim Barkov, with some clean-up and minor
adjustments by Andreas Arnez.
2018-11-30 14:29:39 +01:00
Andreas Arnez
0a1d523a87 s390x: Vector integer and string insn support -- tests
This adds test cases and some internal stuff to the z/Architecture vector
integer and string instruction support.

Contributed by Vadim Barkov <vbrkov@gmail.com>.
2018-09-26 19:31:02 +02:00
Andreas Arnez
20976f432d s390x: Implement conditional trap instructions
This implements various z/Architecture instructions that conditionally
yield a data exception ("trap").  The condition is either based on a
comparison being true ("compare and trap") or on a loaded value being
zero ("load and trap").  These instructions haven't been widely used in
the past, but may now be emitted by newer compilers.  Note that the
resulting signal for a data exception is SIGFPE, not SIGTRAP.  Thus this
patch also adds a new jump kind Ijk_SigFPE.
2018-09-24 16:06:19 +02:00
Julian Seward
f1a49eeb42 Bug 385408 - s390x: z13 vector "support" instructions not implemented. Patch from Vadim Barkov (vbrkov@gmail.com).
(from bug 385408 comment 0):
Valgrind currently lacks support for the z/Architecture vector "support"
instructions introduced with z13.  These are documented in the
z/Architecture Principles of Operation, Eleventh Edition (March, 2015),
chapter 21: "Vector Overview and Support Instructions".
2018-01-11 18:20:27 +01:00
Christian Borntraeger
8f5ee3d3cc s390: support RISBLG/RISBHG, MVCIN, LDE/LDER
patch by Andreas Arnez <arnez@linux.vnet.ibm.com>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16027
2016-10-07 07:09:40 +00:00
Christian Borntraeger
b8593502ea Bug 361226 valgrind part: s390x: risbgn (EC59) not implemented
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15852
2016-04-07 18:55:25 +00:00
Florian Krohm
a696c9e44a s390: Fix BZ #359289, adding support for popcnt insn.
Companion patch is VEX r3210.
Patch by Andreas Arnez (arnez@linux.vnet.ibm.com).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15792
2016-02-17 20:00:59 +00:00
Florian Krohm
93504b89c4 Changes related to new IROp Iop_RoundF128toInt. See VEX r3183.
s390: Add testcase for fixbr.
Patch by Andreas Arnez <arnez@linux.vnet.ibm.com>.
Part of fixing BZ #350290.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15629
2015-09-05 20:39:27 +00:00
Florian Krohm
bee7a2bf8b Followup to r15406:
- update list of supported s390 opcodes
- update bug status
- keep BZ list in NEWS sorted


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15407
2015-07-09 21:05:26 +00:00
Florian Krohm
6c623bb826 s390: Announce support for DFP. Update the opcode spreadsheet
to reflect this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13474
2013-07-28 16:19:34 +00:00
Florian Krohm
14d5f7e33f Synch opcode list with <binutils>/opcodes/s390-opc.txt.
Fix some opcode categories (user space vs privileged operation)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13158
2012-12-06 05:04:35 +00:00
Florian Krohm
e4f15fd479 Update opcode table: add new insns for zEC12
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13151
2012-12-05 04:21:41 +00:00
Florian Krohm
5ac3ca3774 Update opcode status. Announce fix for BZ #306035.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13147
2012-12-02 21:34:57 +00:00
Florian Krohm
5a9766c0dd Updates for hfp insns.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12999
2012-09-18 21:15:54 +00:00
Florian Krohm
b792917720 s390: Add testcases for srnm and srnmb. Update opcode status list.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12997
2012-09-18 20:25:23 +00:00
Florian Krohm
9ff2c07432 Add bugzilla number.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12953
2012-09-03 15:39:19 +00:00
Florian Krohm
4c07b236f4 Add testcase to check the emulation warning for new supported opcodes
on hosts without floating point extension facility.
See companion patch VEX r2501.
Part of fixing bugzilla #306098.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12935
2012-09-02 18:10:34 +00:00
Florian Krohm
1229190124 s390: Valgrind-side changes to fixing bugzilla #274695:
Testcase, vbit tester update, memcheck support for the new IROps,
NEWS announcement and opcode list update.
Patch by Christian Borntraeger (borntraeger@de.ibm.com).
Vbit tester tweaks by myself.
Fixes bugzilla #274695.
See also companion patch VEX r2496.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12921
2012-09-01 00:15:45 +00:00
Florian Krohm
16690f1ef5 s390: Add testcase for the ecag insn. Based on patch by
Divya Vyas (divyvyas@linux.vnet.ibm.com). Update opcode list.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12903
2012-08-26 19:05:06 +00:00
Florian Krohm
f1d7df01e1 Add a testcase for the cu41 insn. Update opcode list, NEWS and bugstatus.
#289839 is finally fixed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12851
2012-08-06 00:10:53 +00:00
Florian Krohm
76a9da7830 Add testcases for the cu14 insn. Update opcode table.
Part of fixing #289839.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12837
2012-08-05 03:02:43 +00:00
Florian Krohm
ebc9830bb1 Add testcases for cu12. Update opcode table.
Part of fixing #289839.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12820
2012-08-03 18:37:26 +00:00
Florian Krohm
572800ce5a Remove entries with deprecated spellings (essentially duplicates).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12806
2012-07-30 16:18:19 +00:00
Florian Krohm
3630d97fcf Testcases for CU42. Part of fixing bugzilla #289839.
Update opcode table.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12804
2012-07-28 22:20:03 +00:00
Florian Krohm
da2bfe57dc Add testcases for CU24. Part of fixing #289839.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12771
2012-07-21 17:42:54 +00:00
Florian Krohm
21c67106a6 Add testcases for CU21. Update opcode table.
WRT the memcheck test: the good news is we get all the complaints
we want. The bad news is:
- the line numbers from within do_cu21 are off
- there are 2 complaints when attempting to convert from
  an uninitialised input buffer instead of one. One of them has a 
  completely bogus line number.

Possibly due to bad debug info?  Let's see what happens on machines
with more recent GCCs. 


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12765
2012-07-20 00:17:16 +00:00
Florian Krohm
932ea4ad94 Support "compare double ansd swap" insns: CDS, CDSY, and CDSG
valgrind bits for fixing bugzilla #291865. See also VEX r2372.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12615
2012-06-06 02:27:51 +00:00
Florian Krohm
cebbd02e94 Update s390 opcode list.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12451
2012-03-19 13:22:21 +00:00
Florian Krohm
f0973e2cc9 Add spreadsheet that lists all s390 opcodes in the following format:
1. column:  mnemonic
2. column:  description
3. column:  implementation status
4. column:  comments, if any

Prepared by Divya Vyas (divyvyas@linux.vnet.ibm.com).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12449
2012-03-18 01:51:12 +00:00