diff options
author | Timur Kristóf <[email protected]> | 2019-10-17 17:14:37 +0200 |
---|---|---|
committer | Timur Kristóf <[email protected]> | 2019-10-25 10:10:41 +0200 |
commit | 99aed688d346e26b23e2e00cb6f7df9be3415ccb (patch) | |
tree | dc22e5b5e9a93c3122ba2f66a8d9b8bbbe28ee8b /src/amd/compiler/aco_assembler.cpp | |
parent | 2bf8a9b33790614041df26a1a9327449cf3bb3f3 (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.cpp | 6 |
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; |