fpRelEA,
moveSp,
+ isUnconditionalJump,
+
Instr(..),
maxSpillSlots
)
moveSp n
= ADD False False sp (RIImm (ImmInt (n * wordLength))) sp
+-- | An instruction that will cause the one after it never to be exectuted
+isUnconditionalJump :: Instr -> Bool
+isUnconditionalJump ii
+ = case ii of
+ CALL{} -> True
+ JMP{} -> True
+ JMP_TBL{} -> True
+ BI ALWAYS _ _ -> True
+ BF ALWAYS _ _ -> True
+ _ -> False
+
-- | instance for sparc instruction set
instance Instruction Instr where
| ST Size Reg AddrMode -- size, src, dst
-- Int Arithmetic.
+ -- x: add/sub with carry bit.
+ -- In SPARC V9 addx and friends were renamed addc.
+ --
+ -- cc: modify condition codes
+ --
| ADD Bool Bool Reg RI Reg -- x?, cc?, src1, src2, dst
| SUB Bool Bool Reg RI Reg -- x?, cc?, src1, src2, dst