Ignore:
Timestamp:
Nov 16, 2016, 7:37:33 PM (4 years ago)
Author:
matszpk
Message:

CLRadeonExtender: Fixed binFlags for ROCm in clrxdisasm. Add example for ROCm to DisasmDataTest?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/tests/amdasm/DisasmDataTest.cpp

    r2498 r2571  
    12411241/*7e000303         */ v_mov_b32       v0, v3
    12421242)ffDXD", true
     1243    },
     1244    /* rocm config */
     1245    { nullptr, nullptr, CLRX_SOURCE_DIR "/tests/amdasm/amdbins/rocm-fiji.hsaco",
     1246        R"ffDXD(.rocm
     1247.gpu Fiji
     1248.arch_minor 0
     1249.arch_stepping 3
     1250.kernel test1
     1251    .config
     1252        .dims x
     1253        .sgprsnum 16
     1254        .vgprsnum 8
     1255        .dx10clamp
     1256        .floatmode 0xc0
     1257        .priority 0
     1258        .userdatanum 8
     1259        .pgmrsrc1 0x002c0041
     1260        .pgmrsrc2 0x00000090
     1261        .codeversion 1, 0
     1262        .machine 1, 8, 0, 3
     1263        .kernel_code_entry_offset 0x100
     1264        .use_private_segment_buffer
     1265        .use_dispatch_ptr
     1266        .use_kernarg_segment_ptr
     1267        .private_elem_size 4
     1268        .use_ptr64
     1269        .kernarg_segment_size 8
     1270        .wavefront_sgpr_count 15
     1271        .workitem_vgpr_count 7
     1272        .kernarg_segment_align 16
     1273        .group_segment_align 16
     1274        .private_segment_align 16
     1275        .wavefront_size 64
     1276        .call_convention 0x0
     1277    .control_directive
     1278        .fill 128, 1, 0x00
     1279.kernel test2
     1280    .config
     1281        .dims x
     1282        .sgprsnum 16
     1283        .vgprsnum 8
     1284        .dx10clamp
     1285        .floatmode 0xc0
     1286        .priority 0
     1287        .userdatanum 8
     1288        .pgmrsrc1 0x002c0041
     1289        .pgmrsrc2 0x00000090
     1290        .codeversion 1, 0
     1291        .machine 1, 8, 0, 3
     1292        .kernel_code_entry_offset 0x100
     1293        .use_private_segment_buffer
     1294        .use_dispatch_ptr
     1295        .use_kernarg_segment_ptr
     1296        .private_elem_size 4
     1297        .use_ptr64
     1298        .kernarg_segment_size 8
     1299        .wavefront_sgpr_count 15
     1300        .workitem_vgpr_count 7
     1301        .kernarg_segment_align 16
     1302        .group_segment_align 16
     1303        .private_segment_align 16
     1304        .wavefront_size 64
     1305        .call_convention 0x0
     1306    .control_directive
     1307        .fill 128, 1, 0x00
     1308.text
     1309test1:
     1310.skip 256
     1311/*c0020082 00000004*/ s_load_dword    s2, s[4:5], 0x4
     1312/*c0060003 00000000*/ s_load_dwordx2  s[0:1], s[6:7], 0x0
     1313/*bf8c007f         */ s_waitcnt       lgkmcnt(0)
     1314/*8602ff02 0000ffff*/ s_and_b32       s2, s2, 0xffff
     1315/*92020802         */ s_mul_i32       s2, s2, s8
     1316/*32000002         */ v_add_u32       v0, vcc, s2, v0
     1317/*2202009f         */ v_ashrrev_i32   v1, 31, v0
     1318/*d28f0001 00020082*/ v_lshlrev_b64   v[1:2], 2, v[0:1]
     1319/*32060200         */ v_add_u32       v3, vcc, s0, v1
     1320/*7e020201         */ v_mov_b32       v1, s1
     1321/*38080302         */ v_addc_u32      v4, vcc, v2, v1, vcc
     1322/*2600008f         */ v_and_b32       v0, 15, v0
     1323/*7e020280         */ v_mov_b32       v1, 0
     1324/*dc500000 02000003*/ flat_load_dword v2, v[3:4]
     1325/*d28f0000 00020082*/ v_lshlrev_b64   v[0:1], 2, v[0:1]
     1326/*be801c00         */ s_getpc_b64     s[0:1]
     1327/*8000ff00 00000234*/ s_add_u32       s0, s0, 0x234
     1328/*82018001         */ s_addc_u32      s1, s1, 0
     1329/*320a0000         */ v_add_u32       v5, vcc, s0, v0
     1330/*7e000201         */ v_mov_b32       v0, s1
     1331/*380c0101         */ v_addc_u32      v6, vcc, v1, v0, vcc
     1332/*dc500000 00000005*/ flat_load_dword v0, v[5:6]
     1333/*bf8c0070         */ s_waitcnt       vmcnt(0) & lgkmcnt(0)
     1334/*0a000500         */ v_mul_f32       v0, v0, v2
     1335/*dc700000 00000003*/ flat_store_dword v[3:4], v0
     1336/*bf810000         */ s_endpgm
     1337.fill 29, 4, 0
     1338test2:
     1339.skip 256
     1340/*c0020082 00000004*/ s_load_dword    s2, s[4:5], 0x4
     1341/*c0060003 00000000*/ s_load_dwordx2  s[0:1], s[6:7], 0x0
     1342/*bf8c007f         */ s_waitcnt       lgkmcnt(0)
     1343/*8602ff02 0000ffff*/ s_and_b32       s2, s2, 0xffff
     1344/*92020802         */ s_mul_i32       s2, s2, s8
     1345/*32000002         */ v_add_u32       v0, vcc, s2, v0
     1346/*2202009f         */ v_ashrrev_i32   v1, 31, v0
     1347/*d28f0001 00020082*/ v_lshlrev_b64   v[1:2], 2, v[0:1]
     1348/*32060200         */ v_add_u32       v3, vcc, s0, v1
     1349/*7e020201         */ v_mov_b32       v1, s1
     1350/*38080302         */ v_addc_u32      v4, vcc, v2, v1, vcc
     1351/*2600008f         */ v_and_b32       v0, 15, v0
     1352/*7e020280         */ v_mov_b32       v1, 0
     1353/*dc500000 02000003*/ flat_load_dword v2, v[3:4]
     1354/*d28f0000 00020082*/ v_lshlrev_b64   v[0:1], 2, v[0:1]
     1355/*be801c00         */ s_getpc_b64     s[0:1]
     1356/*8000ff00 00000074*/ s_add_u32       s0, s0, 0x74
     1357/*82018001         */ s_addc_u32      s1, s1, 0
     1358/*320a0000         */ v_add_u32       v5, vcc, s0, v0
     1359/*7e000201         */ v_mov_b32       v0, s1
     1360/*380c0101         */ v_addc_u32      v6, vcc, v1, v0, vcc
     1361/*dc500000 00000005*/ flat_load_dword v0, v[5:6]
     1362/*bf8c0070         */ s_waitcnt       vmcnt(0) & lgkmcnt(0)
     1363/*02000500         */ v_add_f32       v0, v0, v2
     1364/*dc700000 00000003*/ flat_store_dword v[3:4], v0
     1365/*bf810000         */ s_endpgm
     1366data1:
     1367.global data1
     1368        .byte 0xcd, 0xcc, 0x8c, 0x3f, 0x33, 0x33, 0x13, 0x40
     1369        .byte 0x33, 0x33, 0x93, 0x40, 0x33, 0x33, 0xa3, 0x40
     1370        .byte 0x85, 0xeb, 0x91, 0xbf, 0x3d, 0x0a, 0x27, 0xc0
     1371        .byte 0x0a, 0xd7, 0x93, 0xc0, 0xb8, 0x1e, 0xa5, 0xc0
     1372        .byte 0x9a, 0x99, 0x49, 0x41, 0xcd, 0xcc, 0xac, 0x40
     1373        .byte 0x0a, 0xd7, 0x13, 0x40, 0xd7, 0xa3, 0x98, 0x40
     1374        .byte 0x9a, 0x99, 0x49, 0xc1, 0xcd, 0xcc, 0xac, 0xc0
     1375        .byte 0x0a, 0xd7, 0x13, 0xc0, 0xd7, 0xa3, 0x98, 0xc0
     1376data2:
     1377.global data2
     1378        .byte 0xcd, 0x8c, 0xaa, 0x43, 0x33, 0x33, 0x13, 0x40
     1379        .byte 0x33, 0x33, 0x93, 0x40, 0x52, 0xb8, 0xe6, 0x40
     1380        .byte 0xb8, 0x1e, 0x81, 0xc1, 0x3d, 0x0a, 0x27, 0xc0
     1381        .byte 0x85, 0xeb, 0x09, 0xc1, 0xb8, 0x1e, 0xa5, 0xc0
     1382        .byte 0x9a, 0x99, 0x49, 0x41, 0xcd, 0xcc, 0xaa, 0x42
     1383        .byte 0x0a, 0xd7, 0x33, 0x40, 0xd7, 0xa3, 0x98, 0x40
     1384        .byte 0xcd, 0xcc, 0x94, 0xc1, 0x33, 0x33, 0xb3, 0xc0
     1385        .byte 0x0a, 0xd7, 0x13, 0xc0, 0xd7, 0xa3, 0x98, 0xc0
     1386)ffDXD", true
    12431387    }
    12441388};
     
    12941438            resultStr = disasmOss.str();
    12951439        }
     1440        else if (isROCmBinary(binaryData.size(), binaryData.data()))
     1441        {
     1442            ROCmBinary rocmBin(binaryData.size(), binaryData.data(),
     1443                               ROCMBIN_CREATE_REGIONMAP);
     1444            Disassembler disasm(rocmBin, disasmOss, disasmFlags);
     1445            disasm.disassemble();
     1446            resultStr = disasmOss.str();
     1447        }
    12961448        else
    12971449        {   /* gallium */
Note: See TracChangeset for help on using the changeset viewer.