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