mc_translate.c: enable further uses of DLexpensive for scalar EQ/NE comparisons
[valgrind.git] / README.s390
bloba146eba2599c420fad228083e49733da11152240
2 Requirements
3 ------------
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.
10 Limitations
11 -----------
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 - FP signalling is not accurate. E.g., the "compare and signal"
17   instructions behave like their non-signalling counterparts.
18 - memcheck, cachegrind, drd, helgrind, massif, lackey, and none are
19   supported. 
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 - callgrind and all experimental tools are currently not supported.
24 - Some gcc versions use mvc to copy 4/8 byte values. This will affect
25   certain debug messages. For example, memcheck will complain about
26   4 one-byte reads/writes instead of just a single read/write.
29 Hardware facilities
30 -------------------
31 Valgrind does not require that the host machine has the same hardware
32 facilities as the machine for which the client program was compiled.
33 This is convenient. If possible, the JIT compiler will translate the
34 client instructions according to the facilities available on the host.
35 This means, though, that probing for hardware facilities by issuing
36 instructions from that facility and observing whether SIGILL is thrown
37 may not work. As a consequence, programs that attempt to do so may
38 behave differently. It is believed that this is a rare use case.
41 Recommendations
42 ---------------
43 Applications should be compiled with -fno-builtin to avoid
44 false positives due to builtin string operations when running memcheck.
47 Reading Material
48 ----------------
49 (1) ELF ABI s390x Supplement
50     https://github.com/IBM/s390x-abi/releases
51 (2) z/Architecture Principles of Operation
52     http://publibfp.dhe.ibm.com/epubs/pdf/a227832c.pdf
53 (3) z/Architecture Reference Summary
54     https://www.ibm.com/support/pages/system/files/2020-07/SA22-7871-10.pdf