diff mbox

[35/90] assembler: Simplify get_subreg_address()

Message ID 1359991705-5254-36-git-send-email-damien.lespiau@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lespiau, Damien Feb. 4, 2013, 3:27 p.m. UTC
This function can only be called to resolve subreg_nr in direct mode
(there is an other function for the indirect case) and it makes no sense
to call it with an immediate operand.

Express those facts with asserts and simplify the logic.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 assembler/gram.y |   17 +++++------------
 1 files changed, 5 insertions(+), 12 deletions(-)
diff mbox

Patch

diff --git a/assembler/gram.y b/assembler/gram.y
index 844904d..f608d82 100644
--- a/assembler/gram.y
+++ b/assembler/gram.y
@@ -2716,18 +2716,11 @@  static int get_subreg_address(GLuint regfile, GLuint type, GLuint subreg, GLuint
 {
     int unit_size = 1;
 
-    if (address_mode == BRW_ADDRESS_DIRECT) {
-        if (advanced_flag == 1) {
-            if ((regfile == BRW_GENERAL_REGISTER_FILE ||
-                 regfile == BRW_MESSAGE_REGISTER_FILE || 
-                 regfile == BRW_ARCHITECTURE_REGISTER_FILE)) {
-                
-                unit_size = get_type_size(type);
-            } 
-        }
-    } else {
-        unit_size = 1;
-    }
+    assert(address_mode == BRW_ADDRESS_DIRECT);
+    assert(regfile != BRW_IMMEDIATE_VALUE);
+
+    if (advanced_flag)
+	unit_size = get_type_size(type);
 
     return subreg * unit_size;
 }