[flang] Adjust member function names in integer.h to avoid confusion.
authorpeter klausler <pklausler@nvidia.com>
Mon, 1 Apr 2019 17:43:42 +0000 (10:43 -0700)
committerpeter klausler <pklausler@nvidia.com>
Mon, 1 Apr 2019 23:52:03 +0000 (16:52 -0700)
Original-commit: flang-compiler/f18@56dba8fa0897294b1a6f59348938312c0dff3e7b
Reviewed-on: https://github.com/flang-compiler/f18/pull/370

flang/lib/evaluate/decimal.cc
flang/lib/evaluate/integer.h
flang/lib/evaluate/real.cc

index 9536d84..933780c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2018, NVIDIA CORPORATION.  All rights reserved.
+// Copyright (c) 2018-2019, NVIDIA CORPORATION.  All rights reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -128,7 +128,7 @@ public:
     bool sticky{false};
     while (!product.upper.IsZero()) {
       sticky |= product.lower.BTEST(0);
-      product.lower = product.lower.DSHIFTR(product.upper, 1);
+      product.lower = product.lower.SHIFTRWithFill(product.upper, 1);
       product.upper = product.upper.SHIFTR(1);
       ++exponent_;
     }
index b3b06cd..834cf65 100644 (file)
@@ -587,8 +587,8 @@ public:
     return unchanged.IOR(middle).IOR(least);
   }
 
-  // Double shifts, aka shifts with specific fill
-  constexpr Integer DSHIFTL(const Integer &fill, int count) const {
+  // Double shifts, aka shifts with specific fill.
+  constexpr Integer SHIFTLWithFill(const Integer &fill, int count) const {
     if (count <= 0) {
       return *this;
     } else if (count >= 2 * bits) {
@@ -602,7 +602,7 @@ public:
     }
   }
 
-  constexpr Integer DSHIFTR(const Integer &fill, int count) const {
+  constexpr Integer SHIFTRWithFill(const Integer &fill, int count) const {
     if (count <= 0) {
       return *this;
     } else if (count >= 2 * bits) {
@@ -616,6 +616,16 @@ public:
     }
   }
 
+  constexpr Integer DSHIFTL(const Integer &fill, int count) const {
+    // DSHIFTL(I,J) shifts I:J left; the second argument is the right fill.
+    return SHIFTLWithFill(fill, count);
+  }
+
+  constexpr Integer DSHIFTR(const Integer &value, int count) const {
+    // DSHIFTR(I,J) shifts I:J right; the *first* argument is the left fill.
+    return value.SHIFTRWithFill(*this, count);
+  }
+
   // Vacated upper bits are filled with zeroes.
   constexpr Integer SHIFTR(int count) const {
     if (count <= 0) {
index 80781d1..97ff9fc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2018, NVIDIA CORPORATION.  All rights reserved.
+// Copyright (c) 2018-2019, NVIDIA CORPORATION.  All rights reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -174,7 +174,7 @@ ValueWithRealFlags<Real<W, P, IM>> Real<W, P, IM>::Multiply(
         } else {
           sticky = !product.lower.IAND(product.lower.MASKR(rshift)).IsZero();
         }
-        product.lower = product.lower.DSHIFTR(product.upper, rshift);
+        product.lower = product.lower.SHIFTRWithFill(product.upper, rshift);
         product.upper = product.upper.SHIFTR(rshift);
         if (sticky) {
           product.lower = product.lower.IBSET(0);
@@ -189,7 +189,7 @@ ValueWithRealFlags<Real<W, P, IM>> Real<W, P, IM>::Multiply(
         lshift = exponent - 1;
       }
       exponent -= lshift;
-      product.upper = product.upper.DSHIFTL(product.lower, lshift);
+      product.upper = product.upper.SHIFTLWithFill(product.lower, lshift);
       product.lower = product.lower.SHIFTL(lshift);
       RoundingBits roundingBits{product.lower, product.lower.bits};
       NormalizeAndRound(result, isNegative, exponent, product.upper, rounding,