Changeset 4849 in CLRX
- Timestamp:
- Jul 26, 2019, 3:04:23 PM (5 months ago)
- Location:
- CLRadeonExtender/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
CLRadeonExtender/trunk/amdasm/GCNAsmEncode2.cpp
r4789 r4849 146 146 GCNOperand soffsetOp{}; 147 147 RegRange srsrcReg(0, 0); 148 const bool isGCN12 = (arch & ARCH_GCN_1_2_4)!=0; 149 const bool isGCN14 = (arch & ARCH_GCN_1_4)!=0; 148 const bool isGCN12 = (arch & ARCH_GCN_1_2_4_5)!=0; 149 const bool isGCN14 = (arch & ARCH_GCN_1_4_5)!=0; 150 const bool isGCN15 = ((arch&ARCH_GCN_1_5)!=0); 150 151 GCNAssembler* gcnAsm = static_cast<GCNAssembler*>(asmr.isaAssembler); 151 152 … … 430 431 (haveIdxen ? 0x2000U : 0U) | (haveGlc ? 0x4000U : 0U) | 431 432 ((haveAddr64 && !isGCN12) ? 0x8000U : 0U) | (haveLds ? 0x10000U : 0U) | 432 ((haveSlc && isGCN12) ? 0x20000U : 0) | (uint32_t(gcnInsn.code1)<<18)); 433 ((haveSlc && (isGCN12 && !isGCN15)) ? 0x20000U : 0) | 434 (uint32_t(gcnInsn.code1)<<18)); 433 435 else 434 436 { … … 444 446 SLEV(words[1], (vaddrReg.bstart()&0xff) | (uint32_t(vdataReg.bstart()&0xff)<<8) | 445 447 (uint32_t(srsrcReg.bstart()>>2)<<16) | 446 ((haveSlc && (!isGCN12 || gcnInsn.encoding==GCNENC_MTBUF)) ? (1U<<22) : 0) | 448 ((haveSlc && (!isGCN12 || isGCN15 || 449 gcnInsn.encoding==GCNENC_MTBUF)) ? (1U<<22) : 0) | 447 450 (haveTfe ? (1U<<23) : 0) | (uint32_t(soffsetOp.range.bstart())<<24)); 448 451 -
CLRadeonExtender/trunk/amdasm/GCNDisasmDecode.cpp
r4847 r4849 2225 2225 2226 2226 // print SLC if supplied 2227 if (((!isGCN12 || isGCN15 || 2228 gcnInsn.encoding==GCNENC_MTBUF) && (insnCode2 & 0x400000U)!=0) || 2229 ((isGCN12 && gcnInsn.encoding!=GCNENC_MTBUF) && (insnCode & 0x20000)!=0)) 2227 if (!isGCN15) 2228 { 2229 if (((!isGCN12 || gcnInsn.encoding==GCNENC_MTBUF) && (insnCode2 & 0x400000U)!=0) || 2230 ((isGCN12 && gcnInsn.encoding!=GCNENC_MTBUF) && (insnCode & 0x20000)!=0)) 2231 putChars(bufPtr, " slc", 4); 2232 } 2233 else if ((insnCode2 & 0x400000U)!=0) 2230 2234 putChars(bufPtr, " slc", 4); 2231 2235 -
CLRadeonExtender/trunk/tests/amdasm/GCNDisasmOpc15.cpp
r4842 r4849 2902 2902 "v[61:62], v[18:19], s[80:83], s35 offen idxen glc slc dlc lds tfe\n" }, 2903 2903 /* vaddr sizing */ 2904 { 0xe00 3725bU, 0x23b43d12U, true, " buffer_load_format_x "2905 "v[61:62], v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds tfe\n" },2906 { 0xe00 3425bU, 0x23b43d12U, true, " buffer_load_format_x "2907 "v[61:62], v18, s[80:83], s35 offset:603 glc slclds tfe\n" },2908 { 0xe00 3625bU, 0x23b43d12U, true, " buffer_load_format_x "2909 "v[61:62], v18, s[80:83], s35 idxen offset:603 glc slclds tfe\n" },2910 { 0xe00 3525bU, 0x23b43d12U, true, " buffer_load_format_x "2911 "v[61:62], v18, s[80:83], s35 offen offset:603 glc slclds tfe\n" },2904 { 0xe001725bU, 0x23b43d12U, true, " buffer_load_format_x " 2905 "v[61:62], v[18:19], s[80:83], s35 offen idxen offset:603 glc lds tfe\n" }, 2906 { 0xe001425bU, 0x23b43d12U, true, " buffer_load_format_x " 2907 "v[61:62], v18, s[80:83], s35 offset:603 glc lds tfe\n" }, 2908 { 0xe001625bU, 0x23b43d12U, true, " buffer_load_format_x " 2909 "v[61:62], v18, s[80:83], s35 idxen offset:603 glc lds tfe\n" }, 2910 { 0xe001525bU, 0x23b43d12U, true, " buffer_load_format_x " 2911 "v[61:62], v18, s[80:83], s35 offen offset:603 glc lds tfe\n" }, 2912 2912 /* flags */ 2913 2913 { 0xe003c25bU, 0xf0b43d12U, true, " buffer_load_format_x " 2914 "v[61:62], v18, s[80:83], 0.5 offset:603 glc dlc lds tfe\n" }, 2915 { 0xe001c25bU, 0xf0b43d12U, true, " buffer_load_format_x " 2916 "v[61:62], v18, s[80:83], 0.5 offset:603 glc dlc lds tfe\n" }, 2917 { 0xe001c25bU, 0xf0f43d12U, true, " buffer_load_format_x " 2914 2918 "v[61:62], v18, s[80:83], 0.5 offset:603 glc slc dlc lds tfe\n" }, 2915 2919 { 0xe001c25bU, 0xf0b43d12U, true, " buffer_load_format_x " 2916 2920 "v[61:62], v18, s[80:83], 0.5 offset:603 glc dlc lds tfe\n" }, 2917 { 0xe00 3c25bU, 0x23bd3d12U, true, " buffer_load_format_x "2918 "v[61:62], v18, ttmp[8:11], s35 offset:603 glc slcdlc lds tfe\n" },2919 { 0xe00 3c25bU, 0x23a93d12U, true, " buffer_load_format_x "2920 "v[61:62], v18, s[36:39], s35 offset:603 glc slcdlc lds tfe\n" },2921 { 0xe00 3f000U, 0x23b43d12U, true, " buffer_load_format_x "2922 "v[61:62], v[18:19], s[80:83], s35 offen idxen glc slcdlc lds tfe\n" },2921 { 0xe001c25bU, 0x23bd3d12U, true, " buffer_load_format_x " 2922 "v[61:62], v18, ttmp[8:11], s35 offset:603 glc dlc lds tfe\n" }, 2923 { 0xe001c25bU, 0x23a93d12U, true, " buffer_load_format_x " 2924 "v[61:62], v18, s[36:39], s35 offset:603 glc dlc lds tfe\n" }, 2925 { 0xe001f000U, 0x23b43d12U, true, " buffer_load_format_x " 2926 "v[61:62], v[18:19], s[80:83], s35 offen idxen glc dlc lds tfe\n" }, 2923 2927 /* MUBUF instructions */ 2924 2928 { 0xe000325bU, 0x23343d12U, true, " buffer_load_format_x " … … 2973 2977 "v61, v[18:19], s[80:83], s35 offen idxen offset:603\n" }, 2974 2978 { 0xe067725bU, 0x23343d12U, true, " buffer_store_byte_d16_hi " 2975 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },2979 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2976 2980 { 0xe068325bU, 0x23343d12U, true, " buffer_store_short " 2977 2981 "v61, v[18:19], s[80:83], s35 offen idxen offset:603\n" }, 2978 2982 { 0xe06f725bU, 0x23343d12U, true, " buffer_store_short_d16_hi " 2979 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },2983 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2980 2984 { 0xe070325bU, 0x23343d12U, true, " buffer_store_dword " 2981 2985 "v61, v[18:19], s[80:83], s35 offen idxen offset:603\n" }, … … 2987 2991 "v[61:63], v[18:19], s[80:83], s35 offen idxen offset:603\n" }, 2988 2992 { 0xe083725bU, 0x23343d12U, true, " buffer_load_ubyte_d16 " 2989 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },2993 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2990 2994 { 0xe087725bU, 0x23343d12U, true, " buffer_load_ubyte_d16_hi " 2991 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },2995 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2992 2996 { 0xe08b725bU, 0x23343d12U, true, " buffer_load_sbyte_d16 " 2993 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },2997 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2994 2998 { 0xe08f725bU, 0x23343d12U, true, " buffer_load_sbyte_d16_hi " 2995 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },2999 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2996 3000 { 0xe093725bU, 0x23343d12U, true, " buffer_load_short_d16 " 2997 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },3001 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 2998 3002 { 0xe097725bU, 0x23343d12U, true, " buffer_load_short_d16_hi " 2999 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc slclds\n" },3003 "v61, v[18:19], s[80:83], s35 offen idxen offset:603 glc lds\n" }, 3000 3004 { 0xe098325bU, 0x23343d12U, true, " MUBUF_ill_38 " 3001 3005 "v61, v[18:19], s[80:83], s35 offen idxen offset:603\n" },
Note: See TracChangeset
for help on using the changeset viewer.