freedreno/a3xx/compiler: move function
authorRob Clark <robclark@freedesktop.org>
Mon, 21 Jul 2014 18:16:44 +0000 (14:16 -0400)
committerRob Clark <robclark@freedesktop.org>
Wed, 23 Jul 2014 13:03:09 +0000 (09:03 -0400)
Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/a3xx/fd3_compiler.c

index 3159e7adee9e60b6eaac3069de3f5e6ba31aa08c..cee446a9fa80e126f5282ed959f896512bf83c43 100644 (file)
@@ -348,41 +348,6 @@ pop_block(struct fd3_compile_context *ctx)
        compile_assert(ctx, ctx->block);
 }
 
-static void
-ssa_dst(struct fd3_compile_context *ctx, struct ir3_instruction *instr,
-               const struct tgsi_dst_register *dst, unsigned chan)
-{
-       unsigned n = regid(dst->Index, chan);
-       unsigned idx = ctx->num_output_updates;
-
-       compile_assert(ctx, idx < ARRAY_SIZE(ctx->output_updates));
-
-       /* NOTE: defer update of temporaries[idx] or output[idx]
-        * until instr_finish(), so that if the current instruction
-        * reads the same TEMP/OUT[] it gets the old value:
-        *
-        * bleh.. this might be a bit easier to just figure out
-        * in instr_finish().  But at that point we've already
-        * lost information about OUTPUT vs TEMPORARY register
-        * file..
-        */
-
-       switch (dst->File) {
-       case TGSI_FILE_OUTPUT:
-               compile_assert(ctx, n < ctx->block->noutputs);
-               ctx->output_updates[idx].instrp = &ctx->block->outputs[n];
-               ctx->output_updates[idx].instr = instr;
-               ctx->num_output_updates++;
-               break;
-       case TGSI_FILE_TEMPORARY:
-               compile_assert(ctx, n < ctx->block->ntemporaries);
-               ctx->output_updates[idx].instrp = &ctx->block->temporaries[n];
-               ctx->output_updates[idx].instr = instr;
-               ctx->num_output_updates++;
-               break;
-       }
-}
-
 static struct ir3_instruction *
 create_output(struct ir3_block *block, struct ir3_instruction *instr,
                unsigned n)
@@ -467,6 +432,41 @@ create_immed(struct fd3_compile_context *ctx, float val)
        return instr;
 }
 
+static void
+ssa_dst(struct fd3_compile_context *ctx, struct ir3_instruction *instr,
+               const struct tgsi_dst_register *dst, unsigned chan)
+{
+       unsigned n = regid(dst->Index, chan);
+       unsigned idx = ctx->num_output_updates;
+
+       compile_assert(ctx, idx < ARRAY_SIZE(ctx->output_updates));
+
+       /* NOTE: defer update of temporaries[idx] or output[idx]
+        * until instr_finish(), so that if the current instruction
+        * reads the same TEMP/OUT[] it gets the old value:
+        *
+        * bleh.. this might be a bit easier to just figure out
+        * in instr_finish().  But at that point we've already
+        * lost information about OUTPUT vs TEMPORARY register
+        * file..
+        */
+
+       switch (dst->File) {
+       case TGSI_FILE_OUTPUT:
+               compile_assert(ctx, n < ctx->block->noutputs);
+               ctx->output_updates[idx].instrp = &ctx->block->outputs[n];
+               ctx->output_updates[idx].instr = instr;
+               ctx->num_output_updates++;
+               break;
+       case TGSI_FILE_TEMPORARY:
+               compile_assert(ctx, n < ctx->block->ntemporaries);
+               ctx->output_updates[idx].instrp = &ctx->block->temporaries[n];
+               ctx->output_updates[idx].instr = instr;
+               ctx->num_output_updates++;
+               break;
+       }
+}
+
 static void
 ssa_src(struct fd3_compile_context *ctx, struct ir3_register *reg,
                const struct tgsi_src_register *src, unsigned chan)