Changeset 3095 in CLRX


Ignore:
Timestamp:
May 28, 2017, 7:12:03 PM (2 years ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: update. remove bitfields from VOPExtraModifiers. Add negMod and absMod to VOPExtraModifiers.

Location:
CLRadeonExtender/trunk/amdasm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/GCNAsmHelpers.cpp

    r3094 r3095  
    15441544    bool haveBankMask = false, haveRowMask = false;
    15451545    bool haveBoundCtrl = false, haveDppCtrl = false;
     1546    bool haveNeg = false, haveAbs = false;
    15461547   
    15471548    if (extraMods!=nullptr)
    1548         *extraMods = { 6, 0, (withSDWAOperands>=2)?6U:0U, (withSDWAOperands>=3)?6U:0U,
    1549                     15, 15, 0xe4 /* TODO: why not 0xe4? */, false, false };
     1549        *extraMods = { 6, 0, cxbyte((withSDWAOperands>=2)?6:0),
     1550                    cxbyte((withSDWAOperands>=3)?6:0),
     1551                    15, 15, 0xe4 /* TODO: why not 0xe4? */, false, false, 0U, 0U };
    15501552   
    15511553    skipSpacesToEnd(linePtr, end);
     
    16491651                    }
    16501652                }
     1653                /*else if (::strcmp(mod, "abs")==0)
     1654                {
     1655                    cxbyte absVal = 0;
     1656                    if (linePtr!=end && *linePtr==':')
     1657                    {
     1658                        linePtr++;
     1659                        if (parseImm(asmr, linePtr, absVal, nullptr, 2, WS_UNSIGNED))
     1660                        {
     1661                            extraMods->absMod = absVal;
     1662                            if (haveAbs)
     1663                                asmr.printWarning(modPlace, "Abs is already defined");
     1664                            haveAbs = true;
     1665                        }
     1666                    }
     1667                    else
     1668                        good = false;
     1669                }
     1670                else if (::strcmp(mod, "neg")==0)
     1671                {
     1672                    cxbyte negVal = 0;
     1673                    if (linePtr!=end && *linePtr==':')
     1674                    {
     1675                        linePtr++;
     1676                        if (parseImm(asmr, linePtr, negVal, nullptr, 2, WS_UNSIGNED))
     1677                        {
     1678                            extraMods->negMod = negVal;
     1679                            if (haveNeg)
     1680                                asmr.printWarning(modPlace, "Neg is already defined");
     1681                            haveNeg = true;
     1682                        }
     1683                    }
     1684                    else
     1685                        good = false;
     1686                }*/
    16511687                else if (::strcmp(mod, "vop3")==0)
    16521688                {
  • CLRadeonExtender/trunk/amdasm/GCNAsmInternals.h

    r3088 r3095  
    129129struct CLRX_INTERNAL VOPExtraModifiers
    130130{   // TODO: check that for MSVC 2015
    131     cxuint dstSel:3;
    132     cxuint dstUnused:2;
    133     cxuint src0Sel:3;
    134     cxuint src1Sel:3;
    135     cxuint bankMask:4;
    136     cxuint rowMask:4;
    137     cxuint dppCtrl:9;
    138     cxuint needSDWA:1;
    139     cxuint needDPP:1;
     131    cxbyte dstSel;
     132    cxbyte dstUnused;
     133    cxbyte src0Sel;
     134    cxbyte src1Sel;
     135    cxbyte bankMask;
     136    cxbyte rowMask;
     137    uint16_t dppCtrl;
     138    bool needSDWA;
     139    bool needDPP;
     140    cxbyte absMod;
     141    cxbyte negMod;
    140142};
    141143
Note: See TracChangeset for help on using the changeset viewer.