= pprCondInstr SLIT("j") cond (pprCLabel_asm lab)
where lab = mkAsmTempLabel id
+pprInstr (JXX_GBL cond imm) = pprCondInstr SLIT("j") cond (pprImm imm)
+
pprInstr (JMP (OpImm imm)) = (<>) (ptext SLIT("\tjmp ")) (pprImm imm)
pprInstr (JMP op) = (<>) (ptext SLIT("\tjmp *")) (pprOperand wordRep op)
pprInstr (JMP_TBL op ids) = pprInstr (JMP op)
]
where lbl = mkAsmTempLabel id
+pprInstr (BCCFAR cond (BlockId id)) = vcat [
+ hcat [
+ ptext SLIT("\tb"),
+ pprCond (condNegate cond),
+ ptext SLIT("\t$+8")
+ ],
+ hcat [
+ ptext SLIT("\tb\t"),
+ pprCLabel_asm lbl
+ ]
+ ]
+ where lbl = mkAsmTempLabel id
+
pprInstr (JMP lbl) = hcat [ -- an alias for b that takes a CLabel
char '\t',
ptext SLIT("b"),
hcat [ ptext SLIT("1:\tmflr\t"), pprReg reg ]
]
+pprInstr LWSYNC = ptext SLIT("\tlwsync")
+
pprInstr _ = panic "pprInstr (ppc)"
pprLogic op reg1 reg2 ri = hcat [