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) 25*cda7f93fSRichard Henderson C_O1_I2(r, 0, r) 26d1c36a90SRichard Henderson C_O1_I2(r, 0, ri) 27d1c36a90SRichard Henderson C_O1_I2(r, 0, rI) 28d1c36a90SRichard Henderson C_O1_I2(r, 0, rJ) 296c9b5c0fSRichard Henderson C_O1_I2(r, r, r) 30d1c36a90SRichard Henderson C_O1_I2(r, r, ri) 31d95b51d3SRichard Henderson C_O1_I2(r, r, rC) 32bfff8518SRichard Henderson C_O1_I2(r, r, rI) 3392c89a07SRichard Henderson C_O1_I2(r, r, rJ) 34b2509accSRichard Henderson C_O1_I2(r, r, rK) 354134083fSRichard Henderson C_O1_I2(r, r, rNKR) 36*cda7f93fSRichard Henderson C_O1_I2(r, r, rUV) 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) 4150695fb8SRichard Henderson C_O1_I4(v, v, v, vZ, v) 4250695fb8SRichard Henderson C_O1_I4(v, v, v, vZM, v) 43d95b51d3SRichard Henderson C_O1_I4(r, r, rC, rI, r) 444caad79fSRichard Henderson C_O2_I1(o, m, r) 454143f78dSRichard Henderson C_O2_I2(o, m, 0, r) 46668ce343SRichard Henderson C_O2_I2(o, m, r, r) 474143f78dSRichard Henderson C_O2_I3(o, m, 0, 1, r) 48