1*d3582cfdSPhilippe Mathieu-Daudé /* 2*d3582cfdSPhilippe Mathieu-Daudé * Tiny Code Generator for QEMU 3*d3582cfdSPhilippe Mathieu-Daudé * 4*d3582cfdSPhilippe Mathieu-Daudé * Copyright (c) 2008 Fabrice Bellard 5*d3582cfdSPhilippe Mathieu-Daudé * 6*d3582cfdSPhilippe Mathieu-Daudé * Permission is hereby granted, free of charge, to any person obtaining a copy 7*d3582cfdSPhilippe Mathieu-Daudé * of this software and associated documentation files (the "Software"), to deal 8*d3582cfdSPhilippe Mathieu-Daudé * in the Software without restriction, including without limitation the rights 9*d3582cfdSPhilippe Mathieu-Daudé * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10*d3582cfdSPhilippe Mathieu-Daudé * copies of the Software, and to permit persons to whom the Software is 11*d3582cfdSPhilippe Mathieu-Daudé * furnished to do so, subject to the following conditions: 12*d3582cfdSPhilippe Mathieu-Daudé * 13*d3582cfdSPhilippe Mathieu-Daudé * The above copyright notice and this permission notice shall be included in 14*d3582cfdSPhilippe Mathieu-Daudé * all copies or substantial portions of the Software. 15*d3582cfdSPhilippe Mathieu-Daudé * 16*d3582cfdSPhilippe Mathieu-Daudé * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17*d3582cfdSPhilippe Mathieu-Daudé * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18*d3582cfdSPhilippe Mathieu-Daudé * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19*d3582cfdSPhilippe Mathieu-Daudé * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20*d3582cfdSPhilippe Mathieu-Daudé * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21*d3582cfdSPhilippe Mathieu-Daudé * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22*d3582cfdSPhilippe Mathieu-Daudé * THE SOFTWARE. 23*d3582cfdSPhilippe Mathieu-Daudé */ 24*d3582cfdSPhilippe Mathieu-Daudé 25*d3582cfdSPhilippe Mathieu-Daudé #ifndef TCG_MO_H 26*d3582cfdSPhilippe Mathieu-Daudé #define TCG_MO_H 27*d3582cfdSPhilippe Mathieu-Daudé 28*d3582cfdSPhilippe Mathieu-Daudé typedef enum { 29*d3582cfdSPhilippe Mathieu-Daudé /* Used to indicate the type of accesses on which ordering 30*d3582cfdSPhilippe Mathieu-Daudé is to be ensured. Modeled after SPARC barriers. 31*d3582cfdSPhilippe Mathieu-Daudé 32*d3582cfdSPhilippe Mathieu-Daudé This is of the form TCG_MO_A_B where A is before B in program order. 33*d3582cfdSPhilippe Mathieu-Daudé */ 34*d3582cfdSPhilippe Mathieu-Daudé TCG_MO_LD_LD = 0x01, 35*d3582cfdSPhilippe Mathieu-Daudé TCG_MO_ST_LD = 0x02, 36*d3582cfdSPhilippe Mathieu-Daudé TCG_MO_LD_ST = 0x04, 37*d3582cfdSPhilippe Mathieu-Daudé TCG_MO_ST_ST = 0x08, 38*d3582cfdSPhilippe Mathieu-Daudé TCG_MO_ALL = 0x0F, /* OR of the above */ 39*d3582cfdSPhilippe Mathieu-Daudé 40*d3582cfdSPhilippe Mathieu-Daudé /* Used to indicate the kind of ordering which is to be ensured by the 41*d3582cfdSPhilippe Mathieu-Daudé instruction. These types are derived from x86/aarch64 instructions. 42*d3582cfdSPhilippe Mathieu-Daudé It should be noted that these are different from C11 semantics. */ 43*d3582cfdSPhilippe Mathieu-Daudé TCG_BAR_LDAQ = 0x10, /* Following ops will not come forward */ 44*d3582cfdSPhilippe Mathieu-Daudé TCG_BAR_STRL = 0x20, /* Previous ops will not be delayed */ 45*d3582cfdSPhilippe Mathieu-Daudé TCG_BAR_SC = 0x30, /* No ops cross barrier; OR of the above */ 46*d3582cfdSPhilippe Mathieu-Daudé } TCGBar; 47*d3582cfdSPhilippe Mathieu-Daudé 48*d3582cfdSPhilippe Mathieu-Daudé #endif /* TCG_MO_H */ 49