summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-10-29 17:32:36 -0600
committerJosh Rahm <joshuarahm@gmail.com>2024-10-29 17:32:36 -0600
commit99c6351a8f7c55e66c9bb7a28490100401ca39cf (patch)
tree9ac5a8814bec42e0456638c845f91a066bb925ea /src
parentca115adfb3179c0fc120f6815ff1c21d53c9bfd7 (diff)
downloadfiddle-99c6351a8f7c55e66c9bb7a28490100401ca39cf.tar.gz
fiddle-99c6351a8f7c55e66c9bb7a28490100401ca39cf.tar.bz2
fiddle-99c6351a8f7c55e66c9bb7a28490100401ca39cf.zip
Fix bug where superfluous index argument was added to getters.
Diffstat (limited to 'src')
-rw-r--r--src/Language/Fiddle/Compiler/Backend/C.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Language/Fiddle/Compiler/Backend/C.hs b/src/Language/Fiddle/Compiler/Backend/C.hs
index 77eadf6..e9989a0 100644
--- a/src/Language/Fiddle/Compiler/Backend/C.hs
+++ b/src/Language/Fiddle/Compiler/Backend/C.hs
@@ -396,22 +396,22 @@ writeBitsGet structName regmeta fullPath offset typeRef docComms = do
(\a b -> if b == 1 then a else a <> " * " <> s b)
(tail setterArgumentNames)
(snd $ offsetCoefficients typeRef)
- ++ [s offset | offset /= 0]
unless (null shiftArguments) $
text ", "
- text $ Text.intercalate ", " $ zipWith (\f _ -> "int " <> f) (tail setterArgumentNames) shiftArguments
+ text $ Text.intercalate ", " $
+ zipWith (\f _ -> "int " <> f) (tail setterArgumentNames) shiftArguments
text ") {\n"
withIndent $ do
if null shiftArguments
then do
- text $ regCType <> " shift_ = 0"
+ text $ regCType <> " shift_ = " <> s offset
else do
text $ regCType <> " shift_ = "
- text $ Text.intercalate " + " shiftArguments
+ text $ Text.intercalate " + " (shiftArguments ++ [s offset | offset /= 0])
text ";\n"
text $ regCType <> " mask_ = "