fix RANGE function, reverse direction needed
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 30 Aug 2021 12:50:21 +0000 (13:50 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 30 Aug 2021 12:50:21 +0000 (13:50 +0100)
src/openpower/decoder/helpers.py

index 09f2324a256d8feb37fb3360420245de13634104..b1d9eb4c91c04d133d44647b59c28f98292451c3 100644 (file)
@@ -19,17 +19,17 @@ MODS = trunc_rems
 """
 Links:
 * https://bugs.libre-soc.org/show_bug.cgi?id=324 - add trunc_div and trunc_rem
+* https://bugs.libre-soc.org/show_bug.cgi?id=671#c38 - RANGE (and bugfixes)
 """
 
 
 def RANGE(start, end):
     if start > end:
+        # reverse direction
         # auto-subtract-one (sigh) due to python range
-        end -= 1
-    else:
-        # auto-add-one (sigh) due to python range
-        end += 1
-    return range(start, end)
+        return range(start, end-1, -1)
+    # auto-add-one (sigh) due to python range
+    return range(start, end+1)
 
 
 def exts(value, bits):