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. 144c22e840SRichard Henderson */ 154c22e840SRichard Henderson C_O0_I1(r) 164c22e840SRichard Henderson C_O0_I2(L, L) 174c22e840SRichard Henderson C_O0_I2(qi, r) 184c22e840SRichard Henderson C_O0_I2(re, r) 194c22e840SRichard Henderson C_O0_I2(ri, r) 204c22e840SRichard Henderson C_O0_I2(r, re) 214c22e840SRichard Henderson C_O0_I2(s, L) 224c22e840SRichard Henderson C_O0_I2(x, r) 234c22e840SRichard Henderson C_O0_I3(L, L, L) 244c22e840SRichard Henderson C_O0_I3(s, L, L) 254c22e840SRichard Henderson C_O0_I4(L, L, L, L) 264c22e840SRichard Henderson C_O0_I4(r, r, ri, ri) 274c22e840SRichard Henderson C_O1_I1(r, 0) 284c22e840SRichard Henderson C_O1_I1(r, L) 294c22e840SRichard Henderson C_O1_I1(r, q) 304c22e840SRichard Henderson C_O1_I1(r, r) 314c22e840SRichard Henderson C_O1_I1(x, r) 324c22e840SRichard Henderson C_O1_I1(x, x) 334c22e840SRichard Henderson C_O1_I2(Q, 0, Q) 344c22e840SRichard Henderson C_O1_I2(q, r, re) 354c22e840SRichard Henderson C_O1_I2(r, 0, ci) 364c22e840SRichard Henderson C_O1_I2(r, 0, r) 374c22e840SRichard Henderson C_O1_I2(r, 0, re) 384c22e840SRichard Henderson C_O1_I2(r, 0, reZ) 394c22e840SRichard Henderson C_O1_I2(r, 0, ri) 404c22e840SRichard Henderson C_O1_I2(r, 0, rI) 414c22e840SRichard Henderson C_O1_I2(r, L, L) 424c22e840SRichard Henderson C_O1_I2(r, r, re) 434c22e840SRichard Henderson C_O1_I2(r, r, ri) 444c22e840SRichard Henderson C_O1_I2(r, r, rI) 454c22e840SRichard Henderson C_O1_I2(x, x, x) 464c22e840SRichard Henderson C_N1_I2(r, r, r) 474c22e840SRichard Henderson C_N1_I2(r, r, rW) 48*965d5d06SRichard Henderson C_O1_I3(x, 0, x, x) 494c22e840SRichard Henderson C_O1_I3(x, x, x, x) 504c22e840SRichard Henderson C_O1_I4(r, r, re, r, 0) 514c22e840SRichard Henderson C_O1_I4(r, r, r, ri, ri) 524c22e840SRichard Henderson C_O2_I1(r, r, L) 534c22e840SRichard Henderson C_O2_I2(a, d, a, r) 544c22e840SRichard Henderson C_O2_I2(r, r, L, L) 554c22e840SRichard Henderson C_O2_I3(a, d, 0, 1, r) 564c22e840SRichard Henderson C_O2_I4(r, r, 0, 1, re, re) 57