s390: This is a pre-patch for DFP support. It renames certain
identifiers to explicitly refer to BFP, as there will be counterparts
in the future for DFP. 
Patch by Maran <maranp@linux.vnet.ibm.com>.
Part of fixing #307113.


git-svn-id: svn://svn.valgrind.org/vex/trunk@2547 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/guest_s390_helpers.c b/priv/guest_s390_helpers.c
index 247d3ab..75f4021 100644
--- a/priv/guest_s390_helpers.c
+++ b/priv/guest_s390_helpers.c
@@ -874,14 +874,14 @@
 
 /* Convert an IRRoundingMode value to s390_round_t */
 #if defined(VGA_s390x)
-static s390_round_t
+static s390_bfp_round_t
 decode_bfp_rounding_mode(UInt irrm)
 {
    switch (irrm) {
-   case Irrm_NEAREST: return S390_ROUND_NEAREST_EVEN;
-   case Irrm_NegINF:  return S390_ROUND_NEGINF;
-   case Irrm_PosINF:  return S390_ROUND_POSINF;
-   case Irrm_ZERO:    return S390_ROUND_ZERO;
+   case Irrm_NEAREST: return S390_BFP_ROUND_NEAREST_EVEN;
+   case Irrm_NegINF:  return S390_BFP_ROUND_NEGINF;
+   case Irrm_PosINF:  return S390_BFP_ROUND_POSINF;
+   case Irrm_ZERO:    return S390_BFP_ROUND_ZERO;
    }
    vpanic("decode_bfp_rounding_mode");
 }
@@ -965,20 +965,20 @@
 ({                                                        \
    UInt cc;                                               \
    switch (decode_bfp_rounding_mode(cc_dep2)) {           \
-   case S390_ROUND_NEAREST_EVEN:                          \
+   case S390_BFP_ROUND_NEAREST_EVEN:                      \
       cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,4); \
       break;                                              \
-   case S390_ROUND_ZERO:                                  \
+   case S390_BFP_ROUND_ZERO:                              \
       cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,5); \
       break;                                              \
-   case S390_ROUND_POSINF:                                \
+   case S390_BFP_ROUND_POSINF:                            \
       cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,6); \
       break;                                              \
-   case S390_ROUND_NEGINF:                                \
+   case S390_BFP_ROUND_NEGINF:                            \
       cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,7); \
       break;                                              \
    default:                                               \
-      vpanic("unexpected rounding mode");                 \
+      vpanic("unexpected bfp rounding mode");             \
    }                                                      \
    cc;                                                    \
 })
@@ -997,20 +997,20 @@
 ({                                                         \
    UInt cc;                                                \
    switch (decode_bfp_rounding_mode(cc_dep2)) {            \
-   case S390_ROUND_NEAREST_EVEN:                           \
+   case S390_BFP_ROUND_NEAREST_EVEN:                       \
       cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,4); \
       break;                                               \
-   case S390_ROUND_ZERO:                                   \
+   case S390_BFP_ROUND_ZERO:                               \
       cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,5); \
       break;                                               \
-   case S390_ROUND_POSINF:                                 \
+   case S390_BFP_ROUND_POSINF:                             \
       cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,6); \
       break;                                               \
-   case S390_ROUND_NEGINF:                                 \
+   case S390_BFP_ROUND_NEGINF:                             \
       cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,7); \
       break;                                               \
    default:                                                \
-      vpanic("unexpected rounding mode");                  \
+      vpanic("unexpected bfp rounding mode");              \
    }                                                       \
    cc;                                                     \
 })
@@ -1034,20 +1034,20 @@
       s390_cc_thunk_put3 for rationale. */                           \
    cc_dep2 = cc_dep2 ^ cc_ndep;                                      \
    switch (decode_bfp_rounding_mode(cc_ndep)) {                      \
-   case S390_ROUND_NEAREST_EVEN:                                     \
+   case S390_BFP_ROUND_NEAREST_EVEN:                                 \
       cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
       break;                                                         \
-   case S390_ROUND_ZERO:                                             \
+   case S390_BFP_ROUND_ZERO:                                         \
       cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
       break;                                                         \
-   case S390_ROUND_POSINF:                                           \
+   case S390_BFP_ROUND_POSINF:                                       \
       cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
       break;                                                         \
-   case S390_ROUND_NEGINF:                                           \
+   case S390_BFP_ROUND_NEGINF:                                       \
       cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
       break;                                                         \
    default:                                                          \
-      vpanic("unexpected rounding mode");                            \
+      vpanic("unexpected bfp rounding mode");                        \
    }                                                                 \
    cc;                                                               \
 })
@@ -1071,20 +1071,20 @@
       s390_cc_thunk_put3 for rationale. */                            \
    cc_dep2 = cc_dep2 ^ cc_ndep;                                       \
    switch (decode_bfp_rounding_mode(cc_ndep)) {                       \
-   case S390_ROUND_NEAREST_EVEN:                                      \
+   case S390_BFP_ROUND_NEAREST_EVEN:                                  \
       cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
       break;                                                          \
-   case S390_ROUND_ZERO:                                              \
+   case S390_BFP_ROUND_ZERO:                                          \
       cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
       break;                                                          \
-   case S390_ROUND_POSINF:                                            \
+   case S390_BFP_ROUND_POSINF:                                        \
       cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
       break;                                                          \
-   case S390_ROUND_NEGINF:                                            \
+   case S390_BFP_ROUND_NEGINF:                                        \
       cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
       break;                                                          \
    default:                                                           \
-      vpanic("unexpected rounding mode");                             \
+      vpanic("unexpected bfp rounding mode");                         \
    }                                                                  \
    cc;                                                                \
 })
diff --git a/priv/guest_s390_toIR.c b/priv/guest_s390_toIR.c
index 09b09b3..114f8bf 100644
--- a/priv/guest_s390_toIR.c
+++ b/priv/guest_s390_toIR.c
@@ -1397,7 +1397,7 @@
 /*--- Rounding modes                                       ---*/
 /*------------------------------------------------------------*/
 
-/* Extract the rounding mode from the guest FPC reg and encode it as an
+/* Extract the bfp rounding mode from the guest FPC reg and encode it as an
    IRRoundingMode:
 
    rounding mode | s390 | IR
@@ -1410,7 +1410,7 @@
    So:  IR = (4 - s390) & 3
 */
 static IRExpr *
-get_rounding_mode_from_fpc(void)
+get_bfp_rounding_mode_from_fpc(void)
 {
    IRTemp fpc_bits = newTemp(Ity_I32);
 
@@ -1432,7 +1432,7 @@
    /* For now silently adjust an unsupported rounding mode to "nearest" */
    IRExpr *rm_s390 = mkite(binop(Iop_CmpLE32S, mkexpr(fpc_bits), mkU32(3)),
                            mkexpr(fpc_bits),
-                           mkU32(S390_FPC_ROUND_NEAREST_EVEN));
+                           mkU32(S390_FPC_BFP_ROUND_NEAREST_EVEN));
 
    // rm_IR = (4 - rm_s390) & 3;
    return binop(Iop_And32, binop(Iop_Sub32, mkU32(4), rm_s390), mkU32(3));
@@ -1449,13 +1449,15 @@
    IRExpr *rm;
 
    switch (mode) {
-   case S390_ROUND_PER_FPC:       rm = get_rounding_mode_from_fpc(); break;
-   case S390_ROUND_NEAREST_AWAY:  /* not supported */
-   case S390_ROUND_PREPARE_SHORT: /* not supported */
-   case S390_ROUND_NEAREST_EVEN:  rm = mkU32(Irrm_NEAREST); break;
-   case S390_ROUND_ZERO:          rm = mkU32(Irrm_ZERO);    break;
-   case S390_ROUND_POSINF:        rm = mkU32(Irrm_PosINF);  break;
-   case S390_ROUND_NEGINF:        rm = mkU32(Irrm_NegINF);  break;
+   case S390_BFP_ROUND_PER_FPC:
+      rm = get_bfp_rounding_mode_from_fpc();
+      break;
+   case S390_BFP_ROUND_NEAREST_AWAY:  /* not supported */
+   case S390_BFP_ROUND_PREPARE_SHORT: /* not supported */
+   case S390_BFP_ROUND_NEAREST_EVEN:  rm = mkU32(Irrm_NEAREST); break;
+   case S390_BFP_ROUND_ZERO:          rm = mkU32(Irrm_ZERO);    break;
+   case S390_BFP_ROUND_POSINF:        rm = mkU32(Irrm_PosINF);  break;
+   case S390_BFP_ROUND_NEGINF:        rm = mkU32(Irrm_NegINF);  break;
    default:
       vpanic("encode_bfp_rounding_mode");
    }
@@ -8210,7 +8212,7 @@
             /* ok */
          } else {
             emulation_warning(EmWarn_S390X_invalid_rounding);
-            d2 = S390_FPC_ROUND_NEAREST_EVEN;
+            d2 = S390_FPC_BFP_ROUND_NEAREST_EVEN;
          }
       }
    }
@@ -8273,7 +8275,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, get_fpr_w0(r2));
@@ -8291,7 +8293,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, get_fpr_dw0(r2));
@@ -8309,7 +8311,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, load(Ity_F32, mkexpr(op2addr)));
@@ -8327,7 +8329,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, load(Ity_F64, mkexpr(op2addr)));
@@ -8343,9 +8345,9 @@
 s390_irgen_CEFBR(UChar m3, UChar m4 __attribute__((unused)),
                  UChar r1, UChar r2)
 {
-   if (! s390_host_has_fpext && m3 != S390_ROUND_PER_FPC) {
+   if (! s390_host_has_fpext && m3 != S390_BFP_ROUND_PER_FPC) {
       emulation_warning(EmWarn_S390X_fpext_rounding);
-      m3 = S390_ROUND_PER_FPC;
+      m3 = S390_BFP_ROUND_PER_FPC;
    }
    IRTemp op2 = newTemp(Ity_I32);
 
@@ -8372,9 +8374,9 @@
 s390_irgen_CEGBR(UChar m3, UChar m4 __attribute__((unused)),
                  UChar r1, UChar r2)
 {
-   if (! s390_host_has_fpext && m3 != S390_ROUND_PER_FPC) {
+   if (! s390_host_has_fpext && m3 != S390_BFP_ROUND_PER_FPC) {
       emulation_warning(EmWarn_S390X_fpext_rounding);
-      m3 = S390_ROUND_PER_FPC;
+      m3 = S390_BFP_ROUND_PER_FPC;
    }
    IRTemp op2 = newTemp(Ity_I64);
 
@@ -8389,9 +8391,9 @@
 s390_irgen_CDGBR(UChar m3, UChar m4 __attribute__((unused)),
                  UChar r1, UChar r2)
 {
-   if (! s390_host_has_fpext && m3 != S390_ROUND_PER_FPC) {
+   if (! s390_host_has_fpext && m3 != S390_BFP_ROUND_PER_FPC) {
       emulation_warning(EmWarn_S390X_fpext_rounding);
-      m3 = S390_ROUND_PER_FPC;
+      m3 = S390_BFP_ROUND_PER_FPC;
    }
    IRTemp op2 = newTemp(Ity_I64);
 
@@ -8620,7 +8622,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, get_fpr_w0(r2));
@@ -8637,7 +8639,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, get_fpr_dw0(r2));
@@ -8654,7 +8656,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, load(Ity_F32, mkexpr(op2addr)));
@@ -8671,7 +8673,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, load(Ity_F64, mkexpr(op2addr)));
@@ -8756,9 +8758,9 @@
 s390_irgen_LEDBR(UChar m3, UChar m4 __attribute__((unused)),
                  UChar r1, UChar r2)
 {
-   if (! s390_host_has_fpext && m3 != S390_ROUND_PER_FPC) {
+   if (! s390_host_has_fpext && m3 != S390_BFP_ROUND_PER_FPC) {
       emulation_warning(EmWarn_S390X_fpext_rounding);
-      m3 = S390_ROUND_PER_FPC;
+      m3 = S390_BFP_ROUND_PER_FPC;
    }
    IRTemp op = newTemp(Ity_F64);
 
@@ -8775,7 +8777,8 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRRoundingMode rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRRoundingMode rounding_mode =
+      encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, get_fpr_w0(r2));
@@ -8792,7 +8795,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, get_fpr_dw0(r2));
@@ -8809,7 +8812,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, load(Ity_F32, mkexpr(op2addr)));
@@ -8826,7 +8829,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, load(Ity_F64, mkexpr(op2addr)));
@@ -8843,7 +8846,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, get_fpr_w0(r2));
@@ -8861,7 +8864,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, get_fpr_dw0(r2));
@@ -8879,7 +8882,7 @@
    IRTemp op1 = newTemp(Ity_F32);
    IRTemp op2 = newTemp(Ity_F32);
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_w0(r1));
    assign(op2, load(Ity_F32, mkexpr(op2addr)));
@@ -8897,7 +8900,7 @@
    IRTemp op1 = newTemp(Ity_F64);
    IRTemp op2 = newTemp(Ity_F64);
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_dw0(r1));
    assign(op2, load(Ity_F64, mkexpr(op2addr)));
@@ -10309,7 +10312,7 @@
    IRTemp op1 = newTemp(Ity_F128);
    IRTemp op2 = newTemp(Ity_F128);
    IRTemp result = newTemp(Ity_F128);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_pair(r1));
    assign(op2, get_fpr_pair(r2));
@@ -10594,7 +10597,7 @@
    IRTemp op1 = newTemp(Ity_F128);
    IRTemp op2 = newTemp(Ity_F128);
    IRTemp result = newTemp(Ity_F128);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_pair(r1));
    assign(op2, get_fpr_pair(r2));
@@ -10749,9 +10752,9 @@
 s390_irgen_LDXBR(UChar m3, UChar m4 __attribute__((unused)),
                  UChar r1, UChar r2)
 {
-   if (! s390_host_has_fpext && m3 != S390_ROUND_PER_FPC) {
+   if (! s390_host_has_fpext && m3 != S390_BFP_ROUND_PER_FPC) {
       emulation_warning(EmWarn_S390X_fpext_rounding);
-      m3 = S390_ROUND_PER_FPC;
+      m3 = S390_BFP_ROUND_PER_FPC;
    }
    IRTemp result = newTemp(Ity_F64);
 
@@ -10766,9 +10769,9 @@
 s390_irgen_LEXBR(UChar m3, UChar m4 __attribute__((unused)),
                  UChar r1, UChar r2)
 {
-   if (! s390_host_has_fpext && m3 != S390_ROUND_PER_FPC) {
+   if (! s390_host_has_fpext && m3 != S390_BFP_ROUND_PER_FPC) {
       emulation_warning(EmWarn_S390X_fpext_rounding);
-      m3 = S390_ROUND_PER_FPC;
+      m3 = S390_BFP_ROUND_PER_FPC;
    }
    IRTemp result = newTemp(Ity_F32);
 
@@ -10785,7 +10788,7 @@
    IRTemp op1 = newTemp(Ity_F128);
    IRTemp op2 = newTemp(Ity_F128);
    IRTemp result = newTemp(Ity_F128);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_pair(r1));
    assign(op2, get_fpr_pair(r2));
@@ -10799,7 +10802,7 @@
 static HChar *
 s390_irgen_MAEBR(UChar r1, UChar r3, UChar r2)
 {
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_w0(r1, qop(Iop_MAddF32, mkexpr(rounding_mode),
                       get_fpr_w0(r1), get_fpr_w0(r2), get_fpr_w0(r3)));
@@ -10810,7 +10813,7 @@
 static HChar *
 s390_irgen_MADBR(UChar r1, UChar r3, UChar r2)
 {
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_dw0(r1, qop(Iop_MAddF64, mkexpr(rounding_mode),
                        get_fpr_dw0(r1), get_fpr_dw0(r2), get_fpr_dw0(r3)));
@@ -10822,7 +10825,7 @@
 s390_irgen_MAEB(UChar r3, IRTemp op2addr, UChar r1)
 {
    IRExpr *op2 = load(Ity_F32, mkexpr(op2addr));
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_w0(r1, qop(Iop_MAddF32, mkexpr(rounding_mode),
                       get_fpr_w0(r1), op2, get_fpr_w0(r3)));
@@ -10834,7 +10837,7 @@
 s390_irgen_MADB(UChar r3, IRTemp op2addr, UChar r1)
 {
    IRExpr *op2 = load(Ity_F64, mkexpr(op2addr));
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_dw0(r1, qop(Iop_MAddF64, mkexpr(rounding_mode),
                        get_fpr_dw0(r1), op2, get_fpr_dw0(r3)));
@@ -10845,7 +10848,7 @@
 static HChar *
 s390_irgen_MSEBR(UChar r1, UChar r3, UChar r2)
 {
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_w0(r1, qop(Iop_MSubF32, mkexpr(rounding_mode),
                       get_fpr_w0(r1), get_fpr_w0(r2), get_fpr_w0(r3)));
@@ -10856,7 +10859,7 @@
 static HChar *
 s390_irgen_MSDBR(UChar r1, UChar r3, UChar r2)
 {
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_dw0(r1, qop(Iop_MSubF64, mkexpr(rounding_mode),
                        get_fpr_dw0(r1), get_fpr_dw0(r2), get_fpr_dw0(r3)));
@@ -10868,7 +10871,7 @@
 s390_irgen_MSEB(UChar r3, IRTemp op2addr, UChar r1)
 {
    IRExpr *op2 = load(Ity_F32, mkexpr(op2addr));
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_w0(r1, qop(Iop_MSubF32, mkexpr(rounding_mode),
                       get_fpr_w0(r1), op2, get_fpr_w0(r3)));
@@ -10880,7 +10883,7 @@
 s390_irgen_MSDB(UChar r3, IRTemp op2addr, UChar r1)
 {
    IRExpr *op2 = load(Ity_F64, mkexpr(op2addr));
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    put_fpr_dw0(r1, qop(Iop_MSubF64, mkexpr(rounding_mode),
                        get_fpr_dw0(r1), op2, get_fpr_dw0(r3)));
@@ -10892,7 +10895,7 @@
 s390_irgen_SQEBR(UChar r1, UChar r2)
 {
    IRTemp result = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(result, binop(Iop_SqrtF32, mkexpr(rounding_mode), get_fpr_w0(r2)));
    put_fpr_w0(r1, mkexpr(result));
@@ -10904,7 +10907,7 @@
 s390_irgen_SQDBR(UChar r1, UChar r2)
 {
    IRTemp result = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(result, binop(Iop_SqrtF64, mkexpr(rounding_mode), get_fpr_dw0(r2)));
    put_fpr_dw0(r1, mkexpr(result));
@@ -10916,7 +10919,7 @@
 s390_irgen_SQXBR(UChar r1, UChar r2)
 {
    IRTemp result = newTemp(Ity_F128);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(result, binop(Iop_SqrtF128, mkexpr(rounding_mode),
                         get_fpr_pair(r2)));
@@ -10929,7 +10932,7 @@
 s390_irgen_SQEB(UChar r1, IRTemp op2addr)
 {
    IRTemp op = newTemp(Ity_F32);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op, load(Ity_F32, mkexpr(op2addr)));
    put_fpr_w0(r1, binop(Iop_SqrtF32, mkexpr(rounding_mode), mkexpr(op)));
@@ -10941,7 +10944,7 @@
 s390_irgen_SQDB(UChar r1, IRTemp op2addr)
 {
    IRTemp op = newTemp(Ity_F64);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op, load(Ity_F64, mkexpr(op2addr)));
    put_fpr_dw0(r1, binop(Iop_SqrtF64, mkexpr(rounding_mode), mkexpr(op)));
@@ -10955,7 +10958,7 @@
    IRTemp op1 = newTemp(Ity_F128);
    IRTemp op2 = newTemp(Ity_F128);
    IRTemp result = newTemp(Ity_F128);
-   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_ROUND_PER_FPC);
+   IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
 
    assign(op1, get_fpr_pair(r1));
    assign(op2, get_fpr_pair(r2));
diff --git a/priv/host_s390_defs.c b/priv/host_s390_defs.c
index 01056ef..3ffe0eb 100644
--- a/priv/host_s390_defs.c
+++ b/priv/host_s390_defs.c
@@ -708,8 +708,8 @@
    case S390_INSN_GADD:
       break;
 
-   case S390_INSN_SET_FPCRM:
-      addHRegUse(u, HRmRead,  insn->variant.set_fpcrm.mode);
+   case S390_INSN_SET_FPC_BFPRM:
+      addHRegUse(u, HRmRead,  insn->variant.set_fpc_bfprm.mode);
       break;
 
    case S390_INSN_EVCHECK:
@@ -936,9 +936,9 @@
    case S390_INSN_GADD:
       break;
 
-   case S390_INSN_SET_FPCRM:
-      insn->variant.set_fpcrm.mode =
-         lookupHRegRemap(m, insn->variant.set_fpcrm.mode);
+   case S390_INSN_SET_FPC_BFPRM:
+      insn->variant.set_fpc_bfprm.mode =
+         lookupHRegRemap(m, insn->variant.set_fpc_bfprm.mode);
       break;
 
    case S390_INSN_EVCHECK:
@@ -4738,7 +4738,7 @@
 
 s390_insn *
 s390_insn_bfp_convert(UChar size, s390_conv_t tag, HReg dst, HReg op,
-                      s390_round_t rounding_mode)
+                      s390_bfp_round_t rounding_mode)
 {
    s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
 
@@ -4841,7 +4841,7 @@
 static s390_insn *
 s390_insn_bfp128_convert(UChar size, s390_conv_t tag, HReg dst_hi,
                          HReg dst_lo, HReg op_hi, HReg op_lo,
-                         s390_round_t rounding_mode)
+                         s390_bfp_round_t rounding_mode)
 {
    s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
 
@@ -4874,7 +4874,7 @@
 {
    /* Conversion to bfp128 never requires a rounding mode. Provide default
       rounding mode. It will not be used when emitting insns. */
-   s390_round_t rounding_mode = S390_ROUND_NEAREST_EVEN;
+   s390_bfp_round_t rounding_mode = S390_BFP_ROUND_NEAREST_EVEN;
 
    return s390_insn_bfp128_convert(size, tag, dst_hi, dst_lo, op,
                                    INVALID_HREG, rounding_mode);
@@ -4884,7 +4884,7 @@
 s390_insn *
 s390_insn_bfp128_convert_from(UChar size, s390_conv_t tag, HReg dst,
                               HReg op_hi, HReg op_lo,
-                              s390_round_t rounding_mode)
+                              s390_bfp_round_t rounding_mode)
 {
    return s390_insn_bfp128_convert(size, tag, dst, INVALID_HREG, op_hi, op_lo,
                                    rounding_mode);
@@ -4932,15 +4932,15 @@
 
 
 s390_insn *
-s390_insn_set_fpcrm(UChar size, HReg mode)
+s390_insn_set_fpc_bfprm(UChar size, HReg mode)
 {
    vassert(size == 4);
 
    s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
 
-   insn->tag  = S390_INSN_SET_FPCRM;
+   insn->tag  = S390_INSN_SET_FPC_BFPRM;
    insn->size = size;
-   insn->variant.set_fpcrm.mode = mode;
+   insn->variant.set_fpc_bfprm.mode = mode;
 
    return insn;
 }
@@ -5451,8 +5451,9 @@
                    insn->variant.gadd.value);
       break;
 
-   case S390_INSN_SET_FPCRM:
-      s390_sprintf(buf, "%M %R", "v-set-fpcrm", insn->variant.set_fpcrm.mode);
+   case S390_INSN_SET_FPC_BFPRM:
+      s390_sprintf(buf, "%M %R", "v-set-fpc-bfprm",
+                   insn->variant.set_fpc_bfprm.mode);
       break;
 
    case S390_INSN_EVCHECK:
@@ -7415,7 +7416,7 @@
 {
    UInt  r1 = hregNumber(insn->variant.bfp_convert.dst_hi);
    UInt  r2 = hregNumber(insn->variant.bfp_convert.op_hi);
-   s390_round_t m3 = insn->variant.bfp_convert.rounding_mode;
+   s390_bfp_round_t m3 = insn->variant.bfp_convert.rounding_mode;
    /* The IEEE-inexact-exception control is not modelled. So the
       m4 field is 0 (which is what GCC does, too) */
    const UInt m4 = 0;
@@ -7518,9 +7519,9 @@
 
 
 static UChar *
-s390_insn_set_fpcrm_emit(UChar *buf, const s390_insn *insn)
+s390_insn_set_fpc_bfprm_emit(UChar *buf, const s390_insn *insn)
 {
-   UInt mode = hregNumber(insn->variant.set_fpcrm.mode);
+   UInt mode = hregNumber(insn->variant.set_fpc_bfprm.mode);
 
    /* Copy FPC from guest state to R0 and OR in the new rounding mode */
    buf = s390_emit_L(buf, R0, 0, S390_REGNO_GUEST_STATE_POINTER,
@@ -8074,8 +8075,8 @@
       end = s390_insn_gadd_emit(buf, insn);
       break;
 
-   case S390_INSN_SET_FPCRM:
-      end = s390_insn_set_fpcrm_emit(buf, insn);
+   case S390_INSN_SET_FPC_BFPRM:
+      end = s390_insn_set_fpc_bfprm_emit(buf, insn);
       break;
 
    case S390_INSN_PROFINC:
diff --git a/priv/host_s390_defs.h b/priv/host_s390_defs.h
index 7ce0793..6034b48 100644
--- a/priv/host_s390_defs.h
+++ b/priv/host_s390_defs.h
@@ -140,7 +140,7 @@
    S390_INSN_MFENCE,
    S390_INSN_GZERO,   /* Assign zero to a guest register */
    S390_INSN_GADD,    /* Add a value to a guest register */
-   S390_INSN_SET_FPCRM, /* Set the rounding mode in the FPC */
+   S390_INSN_SET_FPC_BFPRM, /* Set the bfp rounding mode in the FPC */
    /* The following 5 insns are mandated by translation chaining */
    S390_INSN_XDIRECT,     /* direct transfer to guest address */
    S390_INSN_XINDIR,      /* indirect transfer to guest address */
@@ -257,28 +257,28 @@
 /* Rounding mode as it is encoded in the m3 field of certain
    instructions (e.g. CFEBR) */
 typedef enum {
-   S390_ROUND_PER_FPC       = 0,
-   S390_ROUND_NEAREST_AWAY  = 1,
+   S390_BFP_ROUND_PER_FPC       = 0,
+   S390_BFP_ROUND_NEAREST_AWAY  = 1,
    /* 2 is not allowed */
-   S390_ROUND_PREPARE_SHORT = 3,
-   S390_ROUND_NEAREST_EVEN  = 4,
-   S390_ROUND_ZERO          = 5,
-   S390_ROUND_POSINF        = 6,
-   S390_ROUND_NEGINF        = 7
-} s390_round_t;
+   S390_BFP_ROUND_PREPARE_SHORT = 3,
+   S390_BFP_ROUND_NEAREST_EVEN  = 4,
+   S390_BFP_ROUND_ZERO          = 5,
+   S390_BFP_ROUND_POSINF        = 6,
+   S390_BFP_ROUND_NEGINF        = 7
+} s390_bfp_round_t;
 
 
 /* Rounding mode as it is encoded in bits [29:31] of the FPC register.
    Only rounding modes 0..3 are universally supported. Others require
    additional hardware facilities. */
 typedef enum {
-   S390_FPC_ROUND_NEAREST_EVEN  = 0,
-   S390_FPC_ROUND_ZERO          = 1,
-   S390_FPC_ROUND_POSINF        = 2,
-   S390_FPC_ROUND_NEGINF        = 3,
+   S390_FPC_BFP_ROUND_NEAREST_EVEN  = 0,
+   S390_FPC_BFP_ROUND_ZERO          = 1,
+   S390_FPC_BFP_ROUND_POSINF        = 2,
+   S390_FPC_BFP_ROUND_NEGINF        = 3,
    /* 4,5,6 are not allowed */
-   S390_FPC_ROUND_PREPARE_SHORT = 7
-} s390_fpc_round_t;
+   S390_FPC_BFP_ROUND_PREPARE_SHORT = 7
+} s390_fpc_bfp_round_t;
 
 
 /* Invert the condition code */
@@ -438,7 +438,7 @@
       } bfp_unop;
       struct {
          s390_conv_t  tag;
-         s390_round_t rounding_mode;
+         s390_bfp_round_t rounding_mode;
          HReg         dst_hi; /* 128-bit result high part; 32/64-bit result */
          HReg         dst_lo; /* 128-bit result low part */
          HReg         op_hi;  /* 128-bit operand high part; 32/64-bit opnd */
@@ -463,7 +463,7 @@
       } gadd;
       struct {
          HReg             mode;
-      } set_fpcrm;
+      } set_fpc_bfprm;
 
       /* The next 5 entries are generic to support translation chaining */
 
@@ -541,7 +541,7 @@
                               HReg op);
 s390_insn *s390_insn_bfp_compare(UChar size, HReg dst, HReg op1, HReg op2);
 s390_insn *s390_insn_bfp_convert(UChar size, s390_conv_t tag, HReg dst,
-                                 HReg op, s390_round_t);
+                                 HReg op, s390_bfp_round_t);
 s390_insn *s390_insn_bfp128_binop(UChar size, s390_bfp_binop_t, HReg dst_hi,
                                   HReg dst_lo, HReg op2_hi, HReg op2_lo);
 s390_insn *s390_insn_bfp128_unop(UChar size, s390_bfp_unop_t, HReg dst_hi,
@@ -552,11 +552,11 @@
                                        HReg dst_hi, HReg dst_lo, HReg op);
 s390_insn *s390_insn_bfp128_convert_from(UChar size, s390_conv_t,
                                          HReg dst, HReg op_hi, HReg op_lo,
-                                         s390_round_t);
+                                         s390_bfp_round_t);
 s390_insn *s390_insn_mfence(void);
 s390_insn *s390_insn_gzero(UChar size, UInt offset);
 s390_insn *s390_insn_gadd(UChar size, UInt offset, UChar delta, ULong value);
-s390_insn *s390_insn_set_fpcrm(UChar size, HReg mode);
+s390_insn *s390_insn_set_fpc_bfprm(UChar size, HReg mode);
 
 /* Five for translation chaining */
 s390_insn *s390_insn_xdirect(s390_cc_t cond, Addr64 dst, s390_amode *guest_IA,
diff --git a/priv/host_s390_isel.c b/priv/host_s390_isel.c
index 1c14749..afa5df8 100644
--- a/priv/host_s390_isel.c
+++ b/priv/host_s390_isel.c
@@ -577,7 +577,7 @@
    addInstr(env, s390_insn_alu(4, S390_ALU_SUB, mode, s390_opnd_reg(ir)));
    addInstr(env, s390_insn_alu(4, S390_ALU_AND, mode, s390_opnd_imm(3)));
 
-   addInstr(env, s390_insn_set_fpcrm(4, mode));
+   addInstr(env, s390_insn_set_fpc_bfprm(4, mode));
 }
 
 
@@ -585,7 +585,7 @@
    a rounding mode in the insn itself. In that case there is no need to
    stick the rounding mode into the FPC -- a good thing. However, the
    rounding mode must be known. */
-static s390_round_t
+static s390_bfp_round_t
 get_bfp_rounding_mode(ISelEnv *env, IRExpr *irrm)
 {
    if (irrm->tag == Iex_Const) {          /* rounding mode is known */
@@ -593,17 +593,17 @@
       IRRoundingMode mode = irrm->Iex.Const.con->Ico.U32;
 
       switch (mode) {
-      case Irrm_NEAREST:  return S390_ROUND_NEAREST_EVEN;
-      case Irrm_ZERO:     return S390_ROUND_ZERO;
-      case Irrm_PosINF:   return S390_ROUND_POSINF;
-      case Irrm_NegINF:   return S390_ROUND_NEGINF;
+      case Irrm_NEAREST:  return S390_BFP_ROUND_NEAREST_EVEN;
+      case Irrm_ZERO:     return S390_BFP_ROUND_ZERO;
+      case Irrm_PosINF:   return S390_BFP_ROUND_POSINF;
+      case Irrm_NegINF:   return S390_BFP_ROUND_NEGINF;
       default:
          vpanic("get_bfp_rounding_mode");
       }
    }
 
    set_bfp_rounding_mode_in_fpc(env, irrm);
-   return S390_ROUND_PER_FPC;
+   return S390_BFP_ROUND_PER_FPC;
 }
 
 
@@ -981,7 +981,7 @@
       case Iop_F128toI64U: conv = S390_BFP_F128_TO_U64; goto do_convert_128;
 
       do_convert: {
-         s390_round_t rounding_mode;
+         s390_bfp_round_t rounding_mode;
 
          res  = newVRegI(env);
          h1   = s390_isel_float_expr(env, arg2);   /* Process operand */
@@ -993,7 +993,7 @@
       }
 
       do_convert_128: {
-         s390_round_t rounding_mode;
+         s390_bfp_round_t rounding_mode;
          HReg op_hi, op_lo, f13, f15;
 
          res = newVRegI(env);
@@ -1956,7 +1956,7 @@
          goto convert;
 
       convert: {
-         s390_round_t rounding_mode;
+         s390_bfp_round_t rounding_mode;
          /* convert-from-fixed and load-rounded have a rounding mode field
             when the floating point extension facility is installed. */
          dst = newVRegF(env);
@@ -1964,7 +1964,7 @@
             rounding_mode = get_bfp_rounding_mode(env, irrm);
          } else {
             set_bfp_rounding_mode_in_fpc(env, irrm);
-            rounding_mode = S390_ROUND_PER_FPC;
+            rounding_mode = S390_BFP_ROUND_PER_FPC;
          }
          addInstr(env, s390_insn_bfp_convert(size, conv, dst, h1,
                                              rounding_mode));
@@ -1977,7 +1977,7 @@
       case Iop_F128toF64:
       case Iop_F128toF32: {
          HReg op_hi, op_lo, f13, f15;
-         s390_round_t rounding_mode;
+         s390_bfp_round_t rounding_mode;
 
          conv = op == Iop_F128toF32 ? S390_BFP_F128_TO_F32
                                     : S390_BFP_F128_TO_F64;
@@ -1999,7 +1999,7 @@
             rounding_mode = get_bfp_rounding_mode(env, irrm);
          } else {
             set_bfp_rounding_mode_in_fpc(env, irrm);
-            rounding_mode = S390_ROUND_PER_FPC;
+            rounding_mode = S390_BFP_ROUND_PER_FPC;
          }
          addInstr(env, s390_insn_bfp128_convert_from(size, conv, dst, f13, f15,
                                                      rounding_mode));
@@ -2064,7 +2064,7 @@
          /* No rounding mode is needed for these conversions. Just stick
             one in. It won't be used later on. */
          addInstr(env, s390_insn_bfp_convert(size, conv, dst, h1,
-                                             S390_ROUND_NEAREST_EVEN));
+                                             S390_BFP_ROUND_NEAREST_EVEN));
          return dst;
 
       default: