/* SPDX-License-Identifier: MIT */ /* * Define i386 target-specific constraint sets. * Copyright (c) 2021 Linaro */ /* * C_On_Im(...) defines a constraint set with outputs and inputs. * Each operand should be a sequence of constraint letters as defined by * tcg-target-con-str.h; the constraint combination is inclusive or. * * C_N1_Im(...) defines a constraint set with 1 output and inputs, * except that the output must use a new register. * * C_Nn_Om_Ik(...) defines a constraint set with outputs and * inputs, except that the first outputs must use new registers. */ C_O0_I1(r) C_O0_I2(L, L) C_O0_I2(qi, r) C_O0_I2(re, r) C_O0_I2(ri, r) C_O0_I2(r, reT) C_O0_I2(s, L) C_O0_I2(x, r) C_O0_I3(L, L, L) C_O0_I3(s, L, L) C_O0_I4(L, L, L, L) C_O0_I4(r, r, ri, ri) C_O1_I1(r, 0) C_O1_I1(r, L) C_O1_I1(r, q) C_O1_I1(r, r) C_O1_I1(x, r) C_O1_I1(x, x) C_O1_I2(q, 0, qi) C_O1_I2(q, r, reT) C_O1_I2(r, 0, ci) C_O1_I2(r, 0, r) C_O1_I2(r, 0, re) C_O1_I2(r, 0, reZ) C_O1_I2(r, 0, ri) C_O1_I2(r, 0, rI) C_O1_I2(r, L, L) C_O1_I2(r, r, re) C_O1_I2(r, r, ri) C_O1_I2(r, r, rI) C_O1_I2(x, x, x) C_N1_I2(r, r, r) C_N1_I2(r, r, rW) C_O1_I3(x, 0, x, x) C_O1_I3(x, x, x, x) C_O1_I4(x, x, x, xO, x) C_O1_I4(r, r, reT, r, 0) C_O1_I4(r, r, r, ri, ri) C_O2_I1(r, r, L) C_O2_I2(a, d, a, r) C_O2_I2(r, r, L, L) C_O2_I3(a, d, 0, 1, r) C_N1_O1_I4(r, r, 0, 1, re, re)