-vanillaRegNos, floatRegNos, doubleRegNos :: [Int]
-vanillaRegNos = [1 .. mAX_Real_Vanilla_REG]
-floatRegNos = [1 .. mAX_Real_Float_REG]
-doubleRegNos = [1 .. mAX_Real_Double_REG]
-longRegNos = [1 .. mAX_Long_REG]
+useVanillaRegs | opt_Unregisterised = 0
+ | otherwise = mAX_Real_Vanilla_REG
+useFloatRegs | opt_Unregisterised = 0
+ | otherwise = mAX_Real_Float_REG
+useDoubleRegs | opt_Unregisterised = 0
+ | otherwise = mAX_Real_Double_REG
+useLongRegs | opt_Unregisterised = 0
+ | otherwise = mAX_Real_Long_REG
+
+vanillaRegNos, floatRegNos, doubleRegNos, longRegNos :: [Int]
+vanillaRegNos = regList useVanillaRegs
+floatRegNos = regList useFloatRegs
+doubleRegNos = regList useDoubleRegs
+longRegNos = regList useLongRegs