Mesa (master): tgsi/text: Allow `-|src|` variant of `-(|src|)`.

Michał Król michal at kemper.freedesktop.org
Fri Apr 3 12:59:37 UTC 2009


Module: Mesa
Branch: master
Commit: cc770e0a0cbb2c0ff4327ffb0bf20f52ccc218cc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cc770e0a0cbb2c0ff4327ffb0bf20f52ccc218cc

Author: Michal Krol <michal at vmware.com>
Date:   Fri Apr  3 14:54:20 2009 +0200

tgsi/text: Allow `-|src|` variant of `-(|src|)`.

---

 src/gallium/auxiliary/tgsi/tgsi_text.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
index fdaee9b..bb1c7dc 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_text.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
@@ -562,6 +562,7 @@ parse_src_operand(
    uint ind_file;
    int ind_index;
    uint swizzle[4];
+   boolean parsed_ext_negate_paren = FALSE;
    boolean parsed_swizzle;
    boolean parsed_extswizzle;
 
@@ -574,10 +575,17 @@ parse_src_operand(
          src->SrcRegisterExtMod.Negate = 1;
          eat_opt_white( &cur );
          ctx->cur = cur;
+         parsed_ext_negate_paren = TRUE;
+      }
+      else if (*cur == '|') {
+         cur++;
+         src->SrcRegisterExtMod.Negate = 1;
+         src->SrcRegisterExtMod.Absolute = 1;
+         eat_opt_white(&cur);
+         ctx->cur = cur;
       }
    }
-
-   if (*ctx->cur == '|') {
+   else if (*ctx->cur == '|') {
       ctx->cur++;
       eat_opt_white( &ctx->cur );
       src->SrcRegisterExtMod.Absolute = 1;
@@ -715,7 +723,7 @@ parse_src_operand(
       ctx->cur++;
    }
 
-   if (src->SrcRegisterExtMod.Negate) {
+   if (parsed_ext_negate_paren) {
       eat_opt_white( &ctx->cur );
       if (*ctx->cur != ')') {
          report_error( ctx, "Expected `)'" );




More information about the mesa-commit mailing list