def macroop OUTS_R_M {
    # Find the constant we need to either add or subtract from rdi
    ruflag t0, 10
    movi t3, t3, dsz, flags=(CEZF,), dataSize=asz
    subi t4, t0, dsz, dataSize=asz
    mov t3, t3, t4, flags=(nCEZF,), dataSize=asz

    zexti t2, reg, 15, dataSize=8

    mfence
    ld t6, ds, [1, t0, rsi]
    st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8, \
        nonSpec=True
    mfence

    add rsi, rsi, t3, dataSize=asz