From 172e212b12e1d6453c6408e47f0f138bfc9967f6 Mon Sep 17 00:00:00 2001
From: sewardj <unknown>
Date: Tue, 25 Jan 2000 19:18:42 +0000
Subject: [PATCH] [project @ 2000-01-25 19:18:42 by sewardj] Disable a dubious
 looking clause for trivialCode (x86), which was generating bad code for some
 subtracts.

---
 ghc/compiler/nativeGen/MachCode.lhs | 80 +++--------------------------
 1 file changed, 6 insertions(+), 74 deletions(-)

diff --git a/ghc/compiler/nativeGen/MachCode.lhs b/ghc/compiler/nativeGen/MachCode.lhs
index f26a24879fe0..222cf09bc25a 100644
--- a/ghc/compiler/nativeGen/MachCode.lhs
+++ b/ghc/compiler/nativeGen/MachCode.lhs
@@ -2730,7 +2730,8 @@ trivialCode instr x y
   where
     imm = maybeImm y
     imm__2 = case imm of Just x -> x
-
+{-
+-- This seems pretty dubious to me.  JRS, 000125.
 trivialCode instr x y
   | maybeToBool imm
   = getRegister y		`thenUs` \ register1 ->
@@ -2738,16 +2739,19 @@ trivialCode instr x y
     	code__2 dst = let code1 = registerCode register1 dst
 			  src1  = registerName register1 dst
 		      in code1 .
-			 if isFixed register1 && src1 /= dst
+			 if   isFixed register1 && src1 /= dst
 			 then mkSeqInstrs [MOV L (OpImm imm__2) (OpReg dst),
 					   instr (OpReg src1) (OpReg dst)]
 			 else
+                                -- can't possibly be right, if instr is 
+                                -- non-commutative
 				mkSeqInstr (instr (OpImm imm__2) (OpReg src1))
     in
     returnUs (Any IntRep code__2)
   where
     imm = maybeImm x
     imm__2 = case imm of Just x -> x
+-}
 
 trivialCode instr x y
   = getRegister x		`thenUs` \ register1 ->
@@ -2783,57 +2787,6 @@ trivialUCode instr x
     returnUs (Any IntRep code__2)
 
 -----------
-{-
-trivialFCode pk _ instrr _ _ (StInd pk' mem) y
-  = getRegister y		`thenUs` \ register2 ->
-    getAmode mem		`thenUs` \ amode ->
-    let
-    	code1 = amodeCode amode
-    	src1  = amodeAddr amode
-
-    	code__2 dst = let
-    	                  code2 = registerCode register2 dst
-		      	  src2  = registerName register2 dst
-		      in asmParThen [code1 asmVoid,code2 asmVoid] .
-    	    	         mkSeqInstrs [instrr (primRepToSize pk) (OpAddr src1)]
-    in
-    returnUs (Any pk code__2)
-
-trivialFCode pk instr _ _ _ x (StInd pk' mem)
-  = getRegister x		`thenUs` \ register1 ->
-    getAmode mem		`thenUs` \ amode ->
-    let
-    	code2 = amodeCode amode
-    	src2  = amodeAddr amode
-
-    	code__2 dst = let
-    	                  code1 = registerCode register1 dst
-    	                  src1  = registerName register1 dst
-		      in asmParThen [code2 asmVoid,code1 asmVoid] .
-    	    	         mkSeqInstrs [instr (primRepToSize pk) (OpAddr src2)]
-    in
-    returnUs (Any pk code__2)
-
-trivialFCode pk _ _ _ instrpr x y
-  = getRegister x		`thenUs` \ register1 ->
-    getRegister y		`thenUs` \ register2 ->
-    getNewRegNCG DoubleRep	`thenUs` \ tmp ->
-    let
-    	pk1   = registerRep register1
-    	code1 = registerCode register1 st0 --tmp1
-    	src1  = registerName register1 st0 --tmp1
-
-    	pk2   = registerRep register2
-
-    	code__2 dst = let
-    	                  code2 = registerCode register2 dst
-    	                  src2  = registerName register2 dst
-    	              in asmParThen [code1 asmVoid, code2 asmVoid] .
-    	    	         mkSeqInstr instrpr
-    in
-    returnUs (Any pk1 code__2)
--}
-
 trivialFCode pk instr x y
   = getRegister x		`thenUs` \ register1 ->
     getRegister y		`thenUs` \ register2 ->
@@ -2863,27 +2816,6 @@ trivialUFCode pk instr x
     in
     returnUs (Any pk code__2)
 
-{-
-trivialUFCode pk instr (StInd pk' mem)
-  = getAmode mem		`thenUs` \ amode ->
-    let
-    	code = amodeCode amode
-    	src  = amodeAddr amode
-    	code__2 dst = code . mkSeqInstrs [FLD (primRepToSize pk) (OpAddr src),
-					  instr]
-    in
-    returnUs (Any pk code__2)
-
-trivialUFCode pk instr x
-  = getRegister x		`thenUs` \ register ->
-    let
-    	code__2 dst = let
-    	                  code = registerCode register dst
-    	                  src  = registerName register dst
-		      in code . mkSeqInstrs [instr]
-    in
-    returnUs (Any pk code__2)
--}
 #endif {- i386_TARGET_ARCH -}
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 #if sparc_TARGET_ARCH
-- 
GitLab