summaryrefslogtreecommitdiff
path: root/compiler/GHC/ByteCode/Asm.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/ByteCode/Asm.hs')
-rw-r--r--compiler/GHC/ByteCode/Asm.hs12
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