summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_print_asm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/amd/compiler/aco_print_asm.cpp')
-rw-r--r--src/amd/compiler/aco_print_asm.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/amd/compiler/aco_print_asm.cpp b/src/amd/compiler/aco_print_asm.cpp
index d3f4c3cb40d..deb15a8b256 100644
--- a/src/amd/compiler/aco_print_asm.cpp
+++ b/src/amd/compiler/aco_print_asm.cpp
@@ -9,7 +9,7 @@
namespace aco {
void print_asm(Program *program, std::vector<uint32_t>& binary,
- unsigned exec_size, enum radeon_family family, std::ostream& out)
+ unsigned exec_size, std::ostream& out)
{
std::vector<bool> referenced_blocks(program->blocks.size());
referenced_blocks[0] = true;
@@ -30,9 +30,15 @@ void print_asm(Program *program, std::vector<uint32_t>& binary,
symbols.emplace_back(block.offset * 4, llvm::StringRef(block_names[block_names.size() - 1].data()), 0);
}
- LLVMDisasmContextRef disasm = LLVMCreateDisasmCPU("amdgcn-mesa-mesa3d",
- ac_get_llvm_processor_name(family),
- &symbols, 0, NULL, NULL);
+ const char *features = "";
+ if (program->chip_class >= GFX10 && program->wave_size == 64) {
+ features = "+wavefrontsize64";
+ }
+
+ LLVMDisasmContextRef disasm = LLVMCreateDisasmCPUFeatures("amdgcn-mesa-mesa3d",
+ ac_get_llvm_processor_name(program->family),
+ features,
+ &symbols, 0, NULL, NULL);
char outline[1024];
size_t pos = 0;