4 - You need GCC 3.4 or later to compile the s390 port.
5 - To run valgrind a z10 machine or any later model is recommended.
6 Older machine models down to and including z990 may work but have
7 not been tested extensively.
12 - 31-bit client programs are not supported.
13 - Hexadecimal floating point is not supported.
14 - Transactional memory is not supported. The transactional-execution
15 facility is masked off from HWCAP.
16 - A full list of unimplemented instructions can be retrieved from
17 `docs/internals/s390-opcodes.csv', by grepping for "not implemented".
18 - FP signalling is not accurate. E.g., the "compare and signal"
19 instructions behave like their non-signalling counterparts.
20 - On machine models predating z10, cachegrind will assume a z10 cache
21 architecture. Otherwise, cachegrind will query the hosts cache system
22 and use those parameters.
23 - Some gcc versions use mvc to copy 4/8 byte values. This will affect
24 certain debug messages. For example, memcheck will complain about
25 4 one-byte reads/writes instead of just a single read/write.
30 Valgrind does not require that the host machine has the same hardware
31 facilities as the machine for which the client program was compiled.
32 This is convenient. If possible, the JIT compiler will translate the
33 client instructions according to the facilities available on the host.
34 This means, though, that probing for hardware facilities by issuing
35 instructions from that facility and observing whether SIGILL is thrown
36 may not work. As a consequence, programs that attempt to do so may
37 behave differently. It is believed that this is a rare use case.
42 (1) ELF ABI s390x Supplement
43 https://github.com/IBM/s390x-abi/releases
44 (2) z/Architecture Principles of Operation
45 https://publibfp.dhe.ibm.com/epubs/pdf/a227832d.pdf
46 (3) Collection of z/Architecture publications
47 https://linux.mainframe.blog/zarchitecture-principles-of-operation/