freedreno/ir3: rename mul.s/mul.u
authorRob Clark <robdclark@chromium.org>
Wed, 25 Sep 2019 17:21:24 +0000 (10:21 -0700)
committerRob Clark <robdclark@chromium.org>
Fri, 18 Oct 2019 22:08:54 +0000 (15:08 -0700)
to mul.s24/mul.u24, to better reflect that these are 24b multiply.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
src/freedreno/ir3/disasm-a3xx.c
src/freedreno/ir3/instr-a3xx.h
src/freedreno/ir3/ir3.h
src/freedreno/ir3/ir3_a4xx.c
src/freedreno/ir3/ir3_compiler_nir.c

index a5e1afc8de642dbf913d74ecb33c2d2d1c444023..093a38fa9b5a0277e2b75a408ed29ee49aea54c8 100644 (file)
@@ -914,8 +914,8 @@ static const struct opc_info {
        OPC(2, OPC_XOR_B,        xor.b),
        OPC(2, OPC_CMPV_U,       cmpv.u),
        OPC(2, OPC_CMPV_S,       cmpv.s),
-       OPC(2, OPC_MUL_U,        mul.u),
-       OPC(2, OPC_MUL_S,        mul.s),
+       OPC(2, OPC_MUL_U24,      mul.u24),
+       OPC(2, OPC_MUL_S24,      mul.s24),
        OPC(2, OPC_MULL_U,       mull.u),
        OPC(2, OPC_BFREV_B,      bfrev.b),
        OPC(2, OPC_CLZ_S,        clz.s),
index 3887736444d47b5c1082d98edf688c0504ef880d..29f2bd781bc35dc8c3462579b63b0c581b26caf9 100644 (file)
@@ -90,8 +90,8 @@ typedef enum {
        OPC_CMPV_U          = _OPC(2, 33),
        OPC_CMPV_S          = _OPC(2, 34),
        /* 35-47 - invalid */
-       OPC_MUL_U           = _OPC(2, 48),
-       OPC_MUL_S           = _OPC(2, 49),
+       OPC_MUL_U24         = _OPC(2, 48), /* 24b mul into 32b result */
+       OPC_MUL_S24         = _OPC(2, 49), /* 24b mul into 32b result with sign extension */
        OPC_MULL_U          = _OPC(2, 50),
        OPC_BFREV_B         = _OPC(2, 51),
        OPC_CLZ_S           = _OPC(2, 52),
index 8b7bdc618b2579a0ddd5e29c151a7cf48bff92ca..4fc65a90c928dd58ac75bef88ef079cd3065f8f2 100644 (file)
@@ -860,8 +860,8 @@ static inline bool ir3_cat2_int(opc_t opc)
        case OPC_MAX_S:
        case OPC_CMPV_U:
        case OPC_CMPV_S:
-       case OPC_MUL_U:
-       case OPC_MUL_S:
+       case OPC_MUL_U24:
+       case OPC_MUL_S24:
        case OPC_MULL_U:
        case OPC_CLZ_S:
        case OPC_ABSNEG_S:
@@ -953,8 +953,8 @@ static inline unsigned ir3_cat2_absneg(opc_t opc)
        case OPC_MAX_S:
        case OPC_CMPV_U:
        case OPC_CMPV_S:
-       case OPC_MUL_U:
-       case OPC_MUL_S:
+       case OPC_MUL_U24:
+       case OPC_MUL_S24:
        case OPC_MULL_U:
        case OPC_CLZ_S:
                return 0;
@@ -1335,8 +1335,8 @@ INSTR1(NOT_B)
 INSTR2(XOR_B)
 INSTR2(CMPV_U)
 INSTR2(CMPV_S)
-INSTR2(MUL_U)
-INSTR2(MUL_S)
+INSTR2(MUL_U24)
+INSTR2(MUL_S24)
 INSTR2(MULL_U)
 INSTR1(BFREV_B)
 INSTR1(CLZ_S)
index e1d188652b8622ebc22bd9c5dae77024c91a1cc7..dd654bacc7cdf9e0c723e5916eabc6a96c8a1457 100644 (file)
@@ -225,7 +225,7 @@ get_image_offset(struct ir3_context *ctx, const nir_variable *var,
                        (1 << var->data.driver_location));
 
        /* offset = coords.x * bytes_per_pixel: */
-       offset = ir3_MUL_S(b, coords[0], 0, create_uniform(b, cb + 0), 0);
+       offset = ir3_MUL_S24(b, coords[0], 0, create_uniform(b, cb + 0), 0);
        if (ncoords > 1) {
                /* offset += coords.y * y_pitch: */
                offset = ir3_MAD_S24(b, create_uniform(b, cb + 1), 0,
index 0e891041e1bac8a110f2251144a91ed5c411b340..c1501d81b90880054f29c94539e620c5917c6383 100644 (file)
@@ -2457,7 +2457,7 @@ emit_stream_out(struct ir3_context *ctx)
                base = create_uniform(ctx->block, regid(const_state->offsets.tfbo, i));
 
                /* 24-bit should be enough: */
-               off = ir3_MUL_U(ctx->block, vtxcnt, 0,
+               off = ir3_MUL_U24(ctx->block, vtxcnt, 0,
                                create_immed(ctx->block, stride * 4), 0);
 
                bases[i] = ir3_ADD_S(ctx->block, off, 0, base, 0);