trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclusions
        | let cALLOCATABLE_REGS_DOUBLE
                  =        (case platformArch platform of
                            ArchX86       -> 6
                            ArchX86_64    -> 0
                            ArchPPC       -> 26
                            ArchSPARC     -> 11
                            ArchSPARC64   -> panic "trivColorable ArchSPARC64"
                            ArchPPC_64 _  -> panic "trivColorable ArchPPC_64"
                            ArchARM _ _ _ -> panic "trivColorable ArchARM"
                            ArchARM64     -> panic "trivColorable ArchARM64"
                            ArchAlpha     -> panic "trivColorable ArchAlpha"
                            ArchMipseb    -> panic "trivColorable ArchMipseb"
                            ArchMipsel    -> panic "trivColorable ArchMipsel"
                            ArchJavaScript-> panic "trivColorable ArchJavaScript"
                            ArchUnknown   -> panic "trivColorable ArchUnknown")
        , count2        <- accSqueeze 0 cALLOCATABLE_REGS_DOUBLE
                                (virtualRegSqueeze RcDouble)
                                conflicts

        , count3        <- accSqueeze  count2    cALLOCATABLE_REGS_DOUBLE
                                (realRegSqueeze   RcDouble)
                                exclusions

        = count3 < cALLOCATABLE_REGS_DOUBLE
trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclusions
        | let cALLOCATABLE_REGS_DOUBLE
                  =        (case platformArch platform of
                            ArchX86       -> 6
                            ArchX86_64    -> 0
                            ArchPPC       -> 26
                            ArchSPARC     -> 11
                            ArchSPARC64   -> panic "trivColorable ArchSPARC64"
                            ArchPPC_64 _  -> panic "trivColorable ArchPPC_64"
                            ArchARM _ _ _ -> panic "trivColorable ArchARM"
                            ArchARM64     -> panic "trivColorable ArchARM64"
                            ArchAlpha     -> panic "trivColorable ArchAlpha"
                            ArchMipseb    -> panic "trivColorable ArchMipseb"
                            ArchMipsel    -> panic "trivColorable ArchMipsel"
                            ArchJavaScript-> panic "trivColorable ArchJavaScript"
                            ArchUnknown   -> panic "trivColorable ArchUnknown")
        , count2        <- accSqueeze 0 cALLOCATABLE_REGS_DOUBLE
                                (virtualRegSqueeze RcDouble)
                                conflicts

        , count3        <- accSqueeze  count2    cALLOCATABLE_REGS_DOUBLE
                                (realRegSqueeze   RcDouble)
                                exclusions

        = count3 < cALLOCATABLE_REGS_DOUBLE
trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclusions
        | let cALLOCATABLE_REGS_DOUBLE
                  =        (case platformArch platform of
                            ArchX86       -> 6
                            ArchX86_64    -> 0
                            ArchPPC       -> 26
                            ArchSPARC     -> 11
                            ArchSPARC64   -> panic "trivColorable ArchSPARC64"
                            ArchPPC_64 _  -> panic "trivColorable ArchPPC_64"
                            ArchARM _ _ _ -> panic "trivColorable ArchARM"
                            ArchARM64     -> panic "trivColorable ArchARM64"
                            ArchAlpha     -> panic "trivColorable ArchAlpha"
                            ArchMipseb    -> panic "trivColorable ArchMipseb"
                            ArchMipsel    -> panic "trivColorable ArchMipsel"
                            ArchJavaScript-> panic "trivColorable ArchJavaScript"
                            ArchUnknown   -> panic "trivColorable ArchUnknown")
        , count2        <- accSqueeze 0 cALLOCATABLE_REGS_DOUBLE
                                (virtualRegSqueeze RcDouble)
                                conflicts

        , count3        <- accSqueeze  count2    cALLOCATABLE_REGS_DOUBLE
                                (realRegSqueeze   RcDouble)
                                exclusions

        = count3 < cALLOCATABLE_REGS_DOUBLE