From 0b76e22a961f804c030db02f732a294691d382fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 27 Sep 2022 14:45:16 +0200 Subject: [PATCH] aco: simplify operands_offset calculation in create_instruction() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Timur Kristóf Part-of: --- src/amd/compiler/aco_ir.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amd/compiler/aco_ir.h b/src/amd/compiler/aco_ir.h index eeee5ac86f6..1f9d7cb1cb3 100644 --- a/src/amd/compiler/aco_ir.h +++ b/src/amd/compiler/aco_ir.h @@ -1787,13 +1787,13 @@ create_instruction(aco_opcode opcode, Format format, uint32_t num_operands, { std::size_t size = sizeof(T) + num_operands * sizeof(Operand) + num_definitions * sizeof(Definition); - char* data = (char*)calloc(1, size); + void* data = calloc(1, size); T* inst = (T*)data; inst->opcode = opcode; inst->format = format; - uint16_t operands_offset = data + sizeof(T) - (char*)&inst->operands; + uint16_t operands_offset = sizeof(T) - offsetof(Instruction, operands); inst->operands = aco::span(operands_offset, num_operands); uint16_t definitions_offset = (char*)inst->operands.end() - (char*)&inst->definitions; inst->definitions = aco::span(definitions_offset, num_definitions);