From 194327c1364e5bd83f6c0cede22aa5b4b05c5421 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 6 Jul 2022 09:07:41 +0200 Subject: [PATCH] etnaviv: handle missing alu conversion opcodes Signed-off-by: Italo Nicola Reviewed-by: Faith Ekstrand Reviewed-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c | 10 ++++++++++ src/gallium/drivers/etnaviv/etnaviv_disasm.c | 1 + 2 files changed, 11 insertions(+) diff --git a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c index 54e8679..347bb48 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c @@ -77,9 +77,19 @@ static const struct etna_op_info etna_ops[] = { /* type convert */ IOP(i2f32, I2F, 0_X_X), + IOP(i2i32, I2I, 0_X_X), + OPCT(i2i16, I2I, 0_X_X, TRUE, S16), + OPCT(i2i8, I2I, 0_X_X, TRUE, S8), UOP(u2f32, I2F, 0_X_X), + UOP(u2u32, I2I, 0_X_X), + OPCT(u2u16, I2I, 0_X_X, TRUE, U16), + OPCT(u2u8, I2I, 0_X_X, TRUE, U8), IOP(f2i32, F2I, 0_X_X), + OPCT(f2i16, F2I, 0_X_X, TRUE, S16), + OPCT(f2i8, F2I, 0_X_X, TRUE, S8), UOP(f2u32, F2I, 0_X_X), + OPCT(f2u16, F2I, 0_X_X, TRUE, U16), + OPCT(f2u8, F2I, 0_X_X, TRUE, U8), UOP(b2f32, AND, 0_X_X), /* AND with fui(1.0f) */ UOP(b2i32, AND, 0_X_X), /* AND with 1 */ diff --git a/src/gallium/drivers/etnaviv/etnaviv_disasm.c b/src/gallium/drivers/etnaviv/etnaviv_disasm.c index 67eb400..fea8cb3 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_disasm.c +++ b/src/gallium/drivers/etnaviv/etnaviv_disasm.c @@ -501,6 +501,7 @@ static const struct opc_info { OPC(FLOOR), OPC(CEIL), OPC(SIGN), + OPC(I2I), OPC(I2F), OPC(F2I), OPC(CMP), -- 2.7.4