-allocateReg :: RegNo -> FreeRegs -> FreeRegs
-allocateReg r f = f .&. complement (1 `shiftL` fromIntegral r)
+allocateReg :: RealReg -> FreeRegs -> FreeRegs
+allocateReg (RealRegSingle r) f
+ = f .&. complement (1 `shiftL` fromIntegral r)
+
+allocateReg _ _
+ = panic "RegAlloc.Linear.X86.FreeRegs.allocateReg: no reg"