aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd/compiler/aco_assembler.cpp
diff options
context:
space:
mode:
authorTimur Kristóf <[email protected]>2019-10-17 17:14:37 +0200
committerTimur Kristóf <[email protected]>2019-10-25 10:10:41 +0200
commit99aed688d346e26b23e2e00cb6f7df9be3415ccb (patch)
treedc22e5b5e9a93c3122ba2f66a8d9b8bbbe28ee8b /src/amd/compiler/aco_assembler.cpp
parent2bf8a9b33790614041df26a1a9327449cf3bb3f3 (diff)
aco/gfx10: Add notes about some GFX10 hazards.
ACO currently mitigates VMEMtoScalarWriteHazard and Offset3fBug (names from LLVM). There are some bugs that ACO needn't care about. Just to be on the safe side, add an assertion that makes sure that we aren't hit by FlatSegmentOffsetBug. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
Diffstat (limited to 'src/amd/compiler/aco_assembler.cpp')
-rw-r--r--src/amd/compiler/aco_assembler.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_assembler.cpp b/src/amd/compiler/aco_assembler.cpp
index ea7295816db..08debb25ad6 100644
--- a/src/amd/compiler/aco_assembler.cpp
+++ b/src/amd/compiler/aco_assembler.cpp
@@ -399,8 +399,10 @@ void emit_instruction(asm_context& ctx, std::vector<uint32_t>& out, Instruction*
assert(flat->offset <= 0x1fff);
encoding |= flat->offset & 0x1fff;
} else {
- assert(flat->offset <= 0x0fff);
- encoding |= flat->offset & 0x0fff;
+ /* GFX10 has a 12-bit immediate OFFSET field,
+ * but it has a hw bug: it ignores the offset, called FlatSegmentOffsetBug
+ */
+ assert(flat->offset == 0);
}
if (instr->format == Format::SCRATCH)
encoding |= 1 << 14;