diff options
Diffstat (limited to 'compiler/GHC/ByteCode/Asm.hs')
-rw-r--r-- | compiler/GHC/ByteCode/Asm.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/compiler/GHC/ByteCode/Asm.hs b/compiler/GHC/ByteCode/Asm.hs index 72d29e3260..b59748bc92 100644 --- a/compiler/GHC/ByteCode/Asm.hs +++ b/compiler/GHC/ByteCode/Asm.hs @@ -182,7 +182,7 @@ assembleBCO platform (ProtoBCO { protoBCOName = nm | isLarge n_insns0 = (inspectAsm platform True initial_offset asm, True) | otherwise = ((n_insns0, lbl_map0), False) - env :: Word16 -> Word + env :: LocalLabel -> Word env lbl = fromMaybe (pprPanic "assembleBCO.findLabel" (ppr lbl)) (Map.lookup lbl lbl_map) @@ -222,13 +222,13 @@ type AsmState = (SizedSeq Word16, data Operand = Op Word | SmallOp Word16 - | LabelOp Word16 + | LabelOp LocalLabel -- (unused) | LargeOp Word data Assembler a = AllocPtr (IO BCOPtr) (Word -> Assembler a) | AllocLit [BCONPtr] (Word -> Assembler a) - | AllocLabel Word16 (Assembler a) + | AllocLabel LocalLabel (Assembler a) | Emit Word16 [Operand] (Assembler a) | NullAsm a deriving (Functor) @@ -253,13 +253,13 @@ ptr = ioptr . return lit :: [BCONPtr] -> Assembler Word lit l = AllocLit l return -label :: Word16 -> Assembler () +label :: LocalLabel -> Assembler () label w = AllocLabel w (return ()) emit :: Word16 -> [Operand] -> Assembler () emit w ops = Emit w ops (return ()) -type LabelEnv = Word16 -> Word +type LabelEnv = LocalLabel -> Word largeOp :: Bool -> Operand -> Bool largeOp long_jumps op = case op of @@ -299,7 +299,7 @@ runAsm platform long_jumps e = go in ((), (st_i1,st_l0,st_p0)) go k -type LabelEnvMap = Map Word16 Word +type LabelEnvMap = Map LocalLabel Word data InspectState = InspectState { instrCount :: !Word |