summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-12-03 17:49:28 -0700
committerJosh Rahm <joshuarahm@gmail.com>2024-12-03 17:49:28 -0700
commitf371a310affd9501f48aa8ade4670f9a29070cad (patch)
tree3c7815e1d3672f425787855a0f25513cce49db9c /src/Language/Fiddle/Compiler/ConsistencyCheck.hs
parent673c99472da3de2d52bd29fec91978166f008766 (diff)
downloadfiddle-f371a310affd9501f48aa8ade4670f9a29070cad.tar.gz
fiddle-f371a310affd9501f48aa8ade4670f9a29070cad.tar.bz2
fiddle-f371a310affd9501f48aa8ade4670f9a29070cad.zip
Implement new syntactic-sugar for skip_to(). Allows specifying the offset directly on a register
Diffstat (limited to 'src/Language/Fiddle/Compiler/ConsistencyCheck.hs')
-rw-r--r--src/Language/Fiddle/Compiler/ConsistencyCheck.hs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
index c4924da..369aa02 100644
--- a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
+++ b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
@@ -194,15 +194,15 @@ advanceObjTypeBody (ObjTypeBody us decls a) startOffset = do
span = Present (FieldSpan offset size)
qmeta' = fmap (\q -> q {regSpan = span}) qmeta
doReturn (BufferDecl qmeta' (Guaranteed ident) sz' a) size
- (RegisterDecl qmeta mod ident size Nothing a) -> do
+ (RegisterDecl qmeta mod ident size Vacant Nothing a) -> do
let declaredSize = regSzToBits (getLeft size)
reifiedSizeBytes <- checkBitsSizeMod8 a declaredSize
let span = Present (FieldSpan offset reifiedSizeBytes)
qmeta' = fmap (\q -> q {regSpan = span}) qmeta
- doReturn (RegisterDecl qmeta' mod ident (changeRight size) Nothing a)
+ doReturn (RegisterDecl qmeta' mod ident (changeRight size) Vacant Nothing a)
=<< checkBitsSizeMod8 a declaredSize
- (RegisterDecl qmeta mod ident size (Just body) a) -> do
+ (RegisterDecl qmeta mod ident size Vacant (Just body) a) -> do
let declaredSize = regSzToBits (getLeft size)
(actualSize, body') <- advanceRegisterBody 0 body
@@ -218,6 +218,7 @@ advanceObjTypeBody (ObjTypeBody us decls a) startOffset = do
mod
ident
(changeRight size)
+ Vacant
(Just body')
a
)