]> git.rm.cloudns.org Git - xonotic/gmqcc.git/commitdiff
ordering
authorRudolf Polzer <divverent@xonotic.org>
Mon, 26 Aug 2013 09:56:33 +0000 (11:56 +0200)
committerRudolf Polzer <divverent@xonotic.org>
Mon, 26 Aug 2013 09:56:33 +0000 (11:56 +0200)
gmqcc.h
ir.c

diff --git a/gmqcc.h b/gmqcc.h
index f7e9502f11ab81c9577530c778f46ab4968f19ab..5ac193533538bc9c0805e1c754cb268e360f138b 100644 (file)
--- a/gmqcc.h
+++ b/gmqcc.h
@@ -718,14 +718,15 @@ enum {
      * No-Return-Call
      */
     VINSTR_NRCALL,
+
     /* Emulated instructions. */
-    VINSTR_BITXOR,
-    VINSTR_BITAND_V,
-    VINSTR_BITOR_V,
-    VINSTR_BITXOR_V,
+    VINSTR_BITAND_V, /* BITAND_V must be the first emulated bitop */
     VINSTR_BITAND_VF,
+    VINSTR_BITOR_V,
     VINSTR_BITOR_VF,
-    VINSTR_BITXOR_VF
+    VINSTR_BITXOR,
+    VINSTR_BITXOR_V,
+    VINSTR_BITXOR_VF /* BITXOR_VF must be the last emulated bitop */
 };
 
 /* TODO: elide */
diff --git a/ir.c b/ir.c
index e60dfbd1ce0f35f9acf446be8b2b4f095ec06edc..d77f0110e62a87a6f6d152f3309e1b2cb2be5390 100644 (file)
--- a/ir.c
+++ b/ir.c
@@ -613,13 +613,7 @@ static bool instr_is_operation(uint16_t op)
              (op >= INSTR_NOT_F  && op <= INSTR_NOT_FNC) ||
              (op >= INSTR_AND    && op <= INSTR_BITOR) ||
              (op >= INSTR_CALL0  && op <= INSTR_CALL8) ||
-             (op == VINSTR_BITXOR) ||
-             (op == VINSTR_BITAND_V) ||
-             (op == VINSTR_BITAND_VF) ||
-             (op == VINSTR_BITOR_V) ||
-             (op == VINSTR_BITOR_VF) ||
-             (op == VINSTR_BITXOR_V) ||
-             (op == VINSTR_BITXOR_VF));
+             (op >= VINSTR_BITAND_V && op <= VINSTR_BITXOR_VF) );
 }
 
 static bool ir_function_pass_peephole(ir_function *self)