From ce1cc9aac2e4518160263ffd119ba1eea5083cc1 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Fri, 4 Apr 2008 08:53:43 -0400 Subject: [PATCH] Moved some DCL stuff from parse_args() to state() implementation. --HG-- branch : trunk --- mojoshader.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mojoshader.c b/mojoshader.c index 52f11199..4bbbd332 100644 --- a/mojoshader.c +++ b/mojoshader.c @@ -2678,8 +2678,6 @@ static int parse_args_DCL(Context *ctx) if ((token & reserved_mask) != 0) return fail(ctx, "reserved bits in DCL dword aren't zero"); - set_defined_register(ctx, regtype, regnum); - return 3; } // parse_args_DCL @@ -2798,6 +2796,13 @@ static void state_DEFB(Context *ctx) set_defined_register(ctx, regtype, regnum); } // state_DEFB +static void state_DCL(Context *ctx) +{ + const RegisterType regtype = ctx->dest_args[0].regtype; + const int regnum = ctx->dest_args[0].regnum; + set_defined_register(ctx, regtype, regnum); +} // state_DCL + static void state_FRC(Context *ctx) { if (!shader_version_atleast(ctx, 2, 0)) @@ -3037,7 +3042,7 @@ static const Instruction instructions[] = INSTRUCTION_STATE(RET, 0, NULL, MOJOSHADER_TYPE_ANY), INSTRUCTION_STATE(ENDLOOP, 0, NULL, MOJOSHADER_TYPE_ANY), INSTRUCTION_STATE(LABEL, 1, S, MOJOSHADER_TYPE_ANY), - INSTRUCTION(DCL, 2, DCL, MOJOSHADER_TYPE_ANY), + INSTRUCTION_STATE(DCL, 2, DCL, MOJOSHADER_TYPE_ANY), INSTRUCTION(POW, 3, DSS, MOJOSHADER_TYPE_ANY), INSTRUCTION(CRS, 3, DSS, MOJOSHADER_TYPE_ANY), INSTRUCTION(SGN, 4, DSSS, MOJOSHADER_TYPE_ANY),