Changeset 4877 in CLRX


Ignore:
Timestamp:
Aug 2, 2019, 1:52:53 PM (2 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: GCN: Fixed syntax for S_SUBVECTOR_LOOP_BEGIN and S_SUBVECTOR_LOOP_END.

Location:
CLRadeonExtender/trunk
Files:
4 edited

Legend:

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

    r4833 r4877  
    367367                        if ((!isGCN12 && opcode == 17) ||
    368368                            (isGCN12 && opcode == 16) || // if branch fork
    369                             (isGCN14 && opcode == 21) ||
    370                             (isGCN15 && opcode == 22)) // if s_call_b64
     369                            (isGCN14 && opcode == 21) || // if s_call_b64
     370                            (isGCN15 && (opcode == 22 ||
     371                                opcode == 27 || opcode == 28))) // if s_subvector_loop_*
    371372                            labels.push_back(startOffset +
    372373                                    ((pos+int16_t(insnCode&0xffff)+1)<<2));
  • CLRadeonExtender/trunk/amdasm/GCNInstructions.cpp

    r4832 r4877  
    160160    { "s_waitcnt_expcnt",    GCNENC_SOPK,   GCN_STDMODE,             25,   ARCH_GCN_1_5 },
    161161    { "s_waitcnt_lgkmcnt",   GCNENC_SOPK,   GCN_STDMODE,            26,   ARCH_GCN_1_5 },
    162     { "s_subvector_loop_begin", GCNENC_SOPK,   GCN_STDMODE,            27,   ARCH_GCN_1_5 },
    163     { "s_subvector_loop_end", GCNENC_SOPK,   GCN_STDMODE,            28,   ARCH_GCN_1_5 },
     162    { "s_subvector_loop_begin", GCNENC_SOPK,   GCN_IMM_REL,            27,   ARCH_GCN_1_5 },
     163    { "s_subvector_loop_end", GCNENC_SOPK,   GCN_IMM_REL,            28,   ARCH_GCN_1_5 },
    164164    { "s_mov_b32",           GCNENC_SOP1,   GCN_STDMODE,              3,    ARCH_GCN_1_0_1_5  },
    165165    { "s_mov_b64",           GCNENC_SOP1,   GCN_REG_ALL_64,           4,    ARCH_GCN_1_0_1_5  },
  • CLRadeonExtender/trunk/tests/amdasm/GCNAsmOpc15.cpp

    r4874 r4877  
    419419    { "    s_waitcnt_expcnt s43, 0xd3b9", 0xbcabd3b9U, 0, false, true, "" },
    420420    { "    s_waitcnt_lgkmcnt s43, 0xd3b9", 0xbd2bd3b9U, 0, false, true, "" },
    421     { "    s_subvector_loop_begin s43, 0xd3b9", 0xbdabd3b9U, 0, false, true, "" },
    422     { "    s_subvector_loop_end s43, 0xd3b9", 0xbe2bd3b9U, 0, false, true, "" },
     421    { "    s_subvector_loop_begin s43, xxxx+8\nxxxx:", 0xbdab0002U, 0, false, true, "" },
     422    { "    s_subvector_loop_end s43, xxxx+8\nxxxx:", 0xbe2b0002U, 0, false, true, "" },
    423423    /* SOPP encoding */
    424424    { "s_nop  0x0", 0xbf800000U, 0, false, true, "" },
  • CLRadeonExtender/trunk/tests/amdasm/GCNDisasmOpc15.cpp

    r4849 r4877  
    203203    { 0xbcabd3b9U, 0, false, "        s_waitcnt_expcnt s43, 0xd3b9\n" },
    204204    { 0xbd2bd3b9U, 0, false, "        s_waitcnt_lgkmcnt s43, 0xd3b9\n" },
    205     { 0xbdabd3b9U, 0, false, "        s_subvector_loop_begin s43, 0xd3b9\n" },
    206     { 0xbe2bd3b9U, 0, false, "        s_subvector_loop_end s43, 0xd3b9\n" },
     205    { 0xbdab0000U, 0, false, "        s_subvector_loop_begin s43, .L4_0\n" },
     206    { 0xbdab000aU, 0, false, "        s_subvector_loop_begin s43, .L44_0\n" },
     207    { 0xbe2b0000U, 0, false, "        s_subvector_loop_end s43, .L4_0\n" },
     208    { 0xbe2b000aU, 0, false, "        s_subvector_loop_end s43, .L44_0\n" },
    207209    /* SOP1 opcodes */
    208210    { 0xbed60014U, 0, false, "        SOP1_ill_0      s86, s20\n" },
Note: See TracChangeset for help on using the changeset viewer.