summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle
diff options
context:
space:
mode:
Diffstat (limited to 'src/Language/Fiddle')
-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_ = "