xref: /qemu/tcg/s390x/tcg-target-con-set.h (revision 50695fb83e22ad011708b738d24c6c67d6296aaa)
1d1c36a90SRichard Henderson /* SPDX-License-Identifier: MIT */
2d1c36a90SRichard Henderson /*
3d1c36a90SRichard Henderson  * Define S390 target-specific constraint sets.
4d1c36a90SRichard Henderson  * Copyright (c) 2021 Linaro
5d1c36a90SRichard Henderson  */
6d1c36a90SRichard Henderson 
7d1c36a90SRichard Henderson /*
8d1c36a90SRichard Henderson  * C_On_Im(...) defines a constraint set with <n> outputs and <m> inputs.
9d1c36a90SRichard Henderson  * Each operand should be a sequence of constraint letters as defined by
10d1c36a90SRichard Henderson  * tcg-target-con-str.h; the constraint combination is inclusive or.
1122d2e535SIlya Leoshkevich  *
1222d2e535SIlya Leoshkevich  * C_Nn_Om_Ik(...) defines a constraint set with <n + m> outputs and <k>
1322d2e535SIlya Leoshkevich  * inputs, except that the first <n> outputs must use new registers.
14d1c36a90SRichard Henderson  */
15d1c36a90SRichard Henderson C_O0_I1(r)
16d1c36a90SRichard Henderson C_O0_I2(r, r)
17d1c36a90SRichard Henderson C_O0_I2(r, ri)
18d95b51d3SRichard Henderson C_O0_I2(r, rC)
1934ef7676SRichard Henderson C_O0_I2(v, r)
204caad79fSRichard Henderson C_O0_I3(o, m, r)
21d1c36a90SRichard Henderson C_O1_I1(r, r)
2234ef7676SRichard Henderson C_O1_I1(v, r)
23ae77bbe5SRichard Henderson C_O1_I1(v, v)
2434ef7676SRichard Henderson C_O1_I1(v, vr)
25d1c36a90SRichard Henderson C_O1_I2(r, 0, ri)
26d1c36a90SRichard Henderson C_O1_I2(r, 0, rI)
27d1c36a90SRichard Henderson C_O1_I2(r, 0, rJ)
286c9b5c0fSRichard Henderson C_O1_I2(r, r, r)
29d1c36a90SRichard Henderson C_O1_I2(r, r, ri)
30d95b51d3SRichard Henderson C_O1_I2(r, r, rC)
31bfff8518SRichard Henderson C_O1_I2(r, r, rI)
3292c89a07SRichard Henderson C_O1_I2(r, r, rJ)
33b2509accSRichard Henderson C_O1_I2(r, r, rK)
346c9b5c0fSRichard Henderson C_O1_I2(r, r, rKR)
356c9b5c0fSRichard Henderson C_O1_I2(r, r, rNK)
364134083fSRichard Henderson C_O1_I2(r, r, rNKR)
37d1c36a90SRichard Henderson C_O1_I2(r, rZ, r)
3822cb37b4SRichard Henderson C_O1_I2(v, v, r)
3934ef7676SRichard Henderson C_O1_I2(v, v, v)
409bca986dSRichard Henderson C_O1_I3(v, v, v, v)
41*50695fb8SRichard Henderson C_O1_I4(v, v, v, vZ, v)
42*50695fb8SRichard Henderson C_O1_I4(v, v, v, vZM, v)
4323d1394aSRichard Henderson C_O1_I4(r, r, ri, rI, r)
44d95b51d3SRichard Henderson C_O1_I4(r, r, rC, rI, r)
454caad79fSRichard Henderson C_O2_I1(o, m, r)
464143f78dSRichard Henderson C_O2_I2(o, m, 0, r)
47668ce343SRichard Henderson C_O2_I2(o, m, r, r)
484143f78dSRichard Henderson C_O2_I3(o, m, 0, 1, r)
4922d2e535SIlya Leoshkevich C_N1_O1_I4(r, r, 0, 1, ri, r)
50cbaddf30SRichard Henderson C_N1_O1_I4(r, r, 0, 1, rJU, r)
51