14c22e840SRichard Henderson /* SPDX-License-Identifier: MIT */ 24c22e840SRichard Henderson /* 34c22e840SRichard Henderson * Define i386 target-specific constraint sets. 44c22e840SRichard Henderson * Copyright (c) 2021 Linaro 54c22e840SRichard Henderson */ 64c22e840SRichard Henderson 74c22e840SRichard Henderson /* 84c22e840SRichard Henderson * C_On_Im(...) defines a constraint set with <n> outputs and <m> inputs. 94c22e840SRichard Henderson * Each operand should be a sequence of constraint letters as defined by 104c22e840SRichard Henderson * tcg-target-con-str.h; the constraint combination is inclusive or. 114c22e840SRichard Henderson * 124c22e840SRichard Henderson * C_N1_Im(...) defines a constraint set with 1 output and <m> inputs, 134c22e840SRichard Henderson * except that the output must use a new register. 1422d2e535SIlya Leoshkevich * 1522d2e535SIlya Leoshkevich * C_Nn_Om_Ik(...) defines a constraint set with <n + m> outputs and <k> 1622d2e535SIlya Leoshkevich * inputs, except that the first <n> outputs must use new registers. 174c22e840SRichard Henderson */ 184c22e840SRichard Henderson C_O0_I1(r) 194c22e840SRichard Henderson C_O0_I2(L, L) 204c22e840SRichard Henderson C_O0_I2(qi, r) 214c22e840SRichard Henderson C_O0_I2(re, r) 224c22e840SRichard Henderson C_O0_I2(ri, r) 23d3d1c30cSRichard Henderson C_O0_I2(r, reT) 244c22e840SRichard Henderson C_O0_I2(s, L) 254c22e840SRichard Henderson C_O0_I2(x, r) 264c22e840SRichard Henderson C_O0_I3(L, L, L) 274c22e840SRichard Henderson C_O0_I3(s, L, L) 284c22e840SRichard Henderson C_O0_I4(L, L, L, L) 294c22e840SRichard Henderson C_O0_I4(r, r, ri, ri) 304c22e840SRichard Henderson C_O1_I1(r, 0) 314c22e840SRichard Henderson C_O1_I1(r, L) 324c22e840SRichard Henderson C_O1_I1(r, q) 334c22e840SRichard Henderson C_O1_I1(r, r) 344c22e840SRichard Henderson C_O1_I1(x, r) 354c22e840SRichard Henderson C_O1_I1(x, x) 3673f97f0aSRichard Henderson C_O1_I2(q, 0, qi) 37d3d1c30cSRichard Henderson C_O1_I2(q, r, reT) 384c22e840SRichard Henderson C_O1_I2(r, 0, ci) 394c22e840SRichard Henderson C_O1_I2(r, 0, r) 404c22e840SRichard Henderson C_O1_I2(r, 0, re) 414c22e840SRichard Henderson C_O1_I2(r, 0, reZ) 424c22e840SRichard Henderson C_O1_I2(r, 0, ri) 434c22e840SRichard Henderson C_O1_I2(r, 0, rI) 444c22e840SRichard Henderson C_O1_I2(r, L, L) 45a341c84eSRichard Henderson C_O1_I2(r, r, r) 464c22e840SRichard Henderson C_O1_I2(r, r, re) 474c22e840SRichard Henderson C_O1_I2(r, r, ri) 48*0ad6d64bSRichard Henderson C_O1_I2(r, rO, re) 494c22e840SRichard Henderson C_O1_I2(x, x, x) 504c22e840SRichard Henderson C_N1_I2(r, r, r) 514c22e840SRichard Henderson C_N1_I2(r, r, rW) 52965d5d06SRichard Henderson C_O1_I3(x, 0, x, x) 534c22e840SRichard Henderson C_O1_I3(x, x, x, x) 54d8387f0eSRichard Henderson C_O1_I4(x, x, x, xO, x) 55d3d1c30cSRichard Henderson C_O1_I4(r, r, reT, r, 0) 564c22e840SRichard Henderson C_O1_I4(r, r, r, ri, ri) 574c22e840SRichard Henderson C_O2_I1(r, r, L) 584c22e840SRichard Henderson C_O2_I2(a, d, a, r) 594c22e840SRichard Henderson C_O2_I2(r, r, L, L) 604c22e840SRichard Henderson C_O2_I3(a, d, 0, 1, r) 61