Put the Qop member into a separate struct (IRQop) and link to that
from IRExpr.  Reduces size of IRExpr from 48 to 40 bytes on LP64.


git-svn-id: svn://svn.valgrind.org/vex/trunk@2363 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/host_s390_isel.c b/priv/host_s390_isel.c
index a469632..e21f700 100644
--- a/priv/host_s390_isel.c
+++ b/priv/host_s390_isel.c
@@ -1760,13 +1760,13 @@
       s390_bfp_triop_t bfpop;
       s390_round_t rounding_mode;
 
-      op1 = s390_isel_float_expr(env, expr->Iex.Qop.arg2);
-      op2 = s390_isel_float_expr(env, expr->Iex.Qop.arg3);
-      op3 = s390_isel_float_expr(env, expr->Iex.Qop.arg4);
+      op1 = s390_isel_float_expr(env, expr->Iex.Qop.details->arg2);
+      op2 = s390_isel_float_expr(env, expr->Iex.Qop.details->arg3);
+      op3 = s390_isel_float_expr(env, expr->Iex.Qop.details->arg4);
       dst = newVRegF(env);
       addInstr(env, s390_insn_move(size, dst, op1));
 
-      switch (expr->Iex.Qop.op) {
+      switch (expr->Iex.Qop.details->op) {
       case Iop_MAddF32:
       case Iop_MAddF64:  bfpop = S390_BFP_MADD; break;
       case Iop_MSubF32:
@@ -1776,7 +1776,7 @@
          goto irreducible;
       }
 
-      rounding_mode = decode_rounding_mode(expr->Iex.Qop.arg1);
+      rounding_mode = decode_rounding_mode(expr->Iex.Qop.details->arg1);
       addInstr(env, s390_insn_bfp_triop(size, bfpop, dst, op2, op3,
                                         rounding_mode));
       return dst;