Mesa (master): i965/fs: Add a helper function for detecting math opcodes.

Eric Anholt anholt at kemper.freedesktop.org
Thu Jan 20 01:36:53 UTC 2011


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jan 18 22:48:11 2011 -0800

i965/fs: Add a helper function for detecting math opcodes.

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    9 +--------
 src/mesa/drivers/dri/i965/brw_fs.h   |   12 ++++++++++++
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 5f2e9db..9a71e53 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -3138,14 +3138,7 @@ fs_visitor::compute_to_mrf()
 	       /* gen6 math instructions must have the destination be
 		* GRF, so no compute-to-MRF for them.
 		*/
-	       if (scan_inst->opcode == FS_OPCODE_RCP ||
-		   scan_inst->opcode == FS_OPCODE_RSQ ||
-		   scan_inst->opcode == FS_OPCODE_SQRT ||
-		   scan_inst->opcode == FS_OPCODE_EXP2 ||
-		   scan_inst->opcode == FS_OPCODE_LOG2 ||
-		   scan_inst->opcode == FS_OPCODE_SIN ||
-		   scan_inst->opcode == FS_OPCODE_COS ||
-		   scan_inst->opcode == FS_OPCODE_POW) {
+	       if (scan_inst->is_math()) {
 		  break;
 	       }
 	    }
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 7c991f3..f049795 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -313,6 +313,18 @@ public:
 	      opcode == FS_OPCODE_TXL);
    }
 
+   bool is_math()
+   {
+      return (opcode == FS_OPCODE_RCP ||
+	      opcode == FS_OPCODE_RSQ ||
+	      opcode == FS_OPCODE_SQRT ||
+	      opcode == FS_OPCODE_EXP2 ||
+	      opcode == FS_OPCODE_LOG2 ||
+	      opcode == FS_OPCODE_SIN ||
+	      opcode == FS_OPCODE_COS ||
+	      opcode == FS_OPCODE_POW);
+   }
+
    int opcode; /* BRW_OPCODE_* or FS_OPCODE_* */
    fs_reg dst;
    fs_reg src[3];




More information about the mesa-commit mailing list