diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-12-03 17:49:28 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-12-03 17:49:28 -0700 |
commit | f371a310affd9501f48aa8ade4670f9a29070cad (patch) | |
tree | 3c7815e1d3672f425787855a0f25513cce49db9c /src/Language/Fiddle/Compiler/ConsistencyCheck.hs | |
parent | 673c99472da3de2d52bd29fec91978166f008766 (diff) | |
download | fiddle-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.hs | 7 |
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 ) |