Hi Richard, On Tue, May 31, 2016 at 4:34 PM, Richard Henderson <r...@twiddle.net> wrote: > On 05/31/2016 11:39 AM, Pranith Kumar wrote: >> >> + /* System instructions. */ >> + DMB_ISH = 0xd5033bbf, > > ... >> >> + case INDEX_op_mb: >> + tcg_out32(s, DMB_ISH); >> + break; > > > With the flags argument, this needs to be split. > > DMB_ISH = 0xd5033b8f
I just checked this. Shouldn't this be as follows: DMB_ISH = 0xd50338bf DMB_RD = 0x00000100 DMB_WR = 0x00000200 The logic seems to be ok. Thanks! > DMB_RD = 0x00000010 > DMB_WR = 0x00000020 > > if (a0 == TCG_MB_READ) { > a0 = DMB_RD; > } else if (a0 == TCG_MB_WRITE) { > a0 = DMB_WR; > } else { > a0 = DMB_RD | DMB_WR; > } > tcg_out32(s, DMB_ISH | a0); > > > > r~ -- Pranith