Changeset 4798 in CLRX


Ignore:
Timestamp:
Jul 17, 2019, 4:35:25 PM (5 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: Add SOPK instructions testcases for GFX10. Fixed mnemonic for S_SUBVECTOR_LOOP_*. Include CALL control flow type for S_CALL.

Location:
CLRadeonExtender/trunk
Files:
4 edited

Legend:

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

    r4797 r4798  
    366366                asmr.sections[asmr.currentSection].addCodeFlowEntry({
    367367                    size_t(asmr.currentOutPos), size_t(value),
    368                     (isGCN14 && gcnInsn.code1==21) ? AsmCodeFlowType::CALL :
    369                             AsmCodeFlowType::CJUMP });
     368                    ((isGCN14 && gcnInsn.code1==21) || (isGCN15 && gcnInsn.code1==22)) ?
     369                            AsmCodeFlowType::CALL : AsmCodeFlowType::CJUMP });
    370370            }
    371371        }
  • CLRadeonExtender/trunk/amdasm/GCNInstructions.cpp

    r4774 r4798  
    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_begin",  GCNENC_SOPK,   GCN_STDMODE,            27,   ARCH_GCN_1_5 },
    163     { "s_subvector_end",    GCNENC_SOPK,   GCN_STDMODE,            28,   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 },
    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

    r4797 r4798  
    413413    { "    s_getreg_b32    s43, hwreg(HWREG_POPS_PACKER, 0, 1)",
    414414                0xb92b0017U, 0, false, true, "" },
     415    // SOPK instructions
     416    { "s_call_b64 s[44:45], xxxx+8\nxxxx:", 0xbb2c0002U, 0, false, true, "" },
     417    { "    s_waitcnt_vscnt  s43, 0xd3b9", 0xbbabd3b9U, 0, false, true, "" },
     418    { "    s_waitcnt_vmcnt  s43, 0xd3b9", 0xbc2bd3b9U, 0, false, true, "" },
     419    { "    s_waitcnt_expcnt s43, 0xd3b9", 0xbcabd3b9U, 0, false, true, "" },
     420    { "    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, "" },
    415423    { nullptr, 0, 0, false, false, 0 }
    416424};
  • CLRadeonExtender/trunk/tests/amdasm/GCNDisasmOpc15.cpp

    r4793 r4798  
    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_begin s43, 0xd3b9\n" },
    206     { 0xbe2bd3b9U, 0, false, "        s_subvector_end 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" },
    207207    /* SOP1 opcodes */
    208208    { 0xbed60014U, 0, false, "        SOP1_ill_0      s86, s20\n" },
Note: See TracChangeset for help on using the changeset viewer.