summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/amd/compiler/aco_assembler.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/amd/compiler/aco_assembler.cpp b/src/amd/compiler/aco_assembler.cpp
index 39bf9eca21c..9070d88e1c6 100644
--- a/src/amd/compiler/aco_assembler.cpp
+++ b/src/amd/compiler/aco_assembler.cpp
@@ -415,7 +415,13 @@ void emit_instruction(asm_context& ctx, std::vector<uint32_t>& out, Instruction*
}
case Format::EXP: {
Export_instruction* exp = static_cast<Export_instruction*>(instr);
- uint32_t encoding = (0b110001 << 26);
+ uint32_t encoding;
+ if (ctx.chip_class <= GFX9) {
+ encoding = (0b110001 << 26);
+ } else if (ctx.chip_class >= GFX10) {
+ encoding = (0b111110 << 26);
+ }
+
encoding |= exp->valid_mask ? 0b1 << 12 : 0;
encoding |= exp->done ? 0b1 << 11 : 0;
encoding |= exp->compressed ? 0b1 << 10 : 0;