X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FPprMach.hs;h=5210940f500d0a527d32d31974620ef2d03fa575;hb=4d24d4f2dcf16513746cfd4ae2d1edc30eabf109;hp=26a6f286e147e16161fe2985197e597449b2f2e9;hpb=97169c5dd31537b28f5f8ad08cd6cdf82c1ecefd;p=ghc-hetmet.git diff --git a/compiler/nativeGen/PprMach.hs b/compiler/nativeGen/PprMach.hs index 26a6f28..5210940 100644 --- a/compiler/nativeGen/PprMach.hs +++ b/compiler/nativeGen/PprMach.hs @@ -1408,13 +1408,6 @@ pprInstr g@(GLD1 dst) pprInstr g@(GFTOI src dst) = pprInstr (GDTOI src dst) pprInstr g@(GDTOI src dst) - = pprG g (hcat [gtab, text "subl $4, %esp ; ", - gpush src 0, gsemi, text "fistpl 0(%esp) ; popl ", - pprReg I32 dst]) - -pprInstr g@(GITOF src dst) - = pprInstr (GITOD src dst) -pprInstr g@(GITOD src dst) = pprG g (vcat [ hcat [gtab, text "subl $8, %esp ; fnstcw 4(%esp)"], hcat [gtab, gpush src 0], @@ -1428,6 +1421,13 @@ pprInstr g@(GITOD src dst) where reg = pprReg I32 dst +pprInstr g@(GITOF src dst) + = pprInstr (GITOD src dst) +pprInstr g@(GITOD src dst) + = pprG g (hcat [gtab, text "pushl ", pprReg I32 src, + text " ; ffree %st(7); fildl (%esp) ; ", + gpop dst 1, text " ; addl $4,%esp"]) + {- Gruesome swamp follows. If you're unfortunate enough to have ventured this far into the jungle AND you give a Rat's Ass (tm) what's going on, here's the deal. Generate code to do a floating point comparison