diff options
author | Nikita Orlov <nikitf-97@mail.ru> | 2021-04-03 22:28:49 +0300 |
---|---|---|
committer | Nikita Orlov <nikitf-97@mail.ru> | 2021-04-03 22:28:49 +0300 |
commit | 717a132ea55eb634eda375d59d73df826712cd8b (patch) | |
tree | 5f669aed99d8c74e3141e454bc6ac7a4c84beed7 /src/Utils.hs | |
parent | 3d4e47bb5a290c638d61ddf6dcfdf1101f6bebae (diff) | |
download | suem-717a132ea55eb634eda375d59d73df826712cd8b.tar suem-717a132ea55eb634eda375d59d73df826712cd8b.tar.xz suem-717a132ea55eb634eda375d59d73df826712cd8b.zip |
BSR and RTS added
Diffstat (limited to 'src/Utils.hs')
-rw-r--r-- | src/Utils.hs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/Utils.hs b/src/Utils.hs index ee1cd7a..cd2f1e3 100644 --- a/src/Utils.hs +++ b/src/Utils.hs @@ -64,3 +64,15 @@ checkZero 0 = True checkZero _ = False -- TODO: carry & overflow checkers + +------------------------------------------------------------------------------- +-- Sign extender + +signExtend :: Word32 -> Int -> Word32 +signExtend x 1 + | x < 0x80 = x + | otherwise = x + 0xffffff00 +signExtend x 2 + | x < 0x8000 = x + | otherwise = x + 0xffff0000 +signExtend x 4 = x |