From 9eca3c2602653b8be80f13e0114adebc1e460177 Mon Sep 17 00:00:00 2001
From: sof <unknown>
Date: Mon, 18 Jan 1999 14:31:52 +0000
Subject: [PATCH] [project @ 1999-01-18 14:31:50 by sof] long long support:
 cleared up Real vs. virtual regs. confusion (I hope!)

---
 ghc/compiler/codeGen/CgRetConv.lhs | 13 ++++++-------
 ghc/compiler/main/Constants.lhs    |  4 +++-
 ghc/includes/MachRegs.h            |  3 ++-
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/ghc/compiler/codeGen/CgRetConv.lhs b/ghc/compiler/codeGen/CgRetConv.lhs
index 77a37f373def..9dc622a2b604 100644
--- a/ghc/compiler/codeGen/CgRetConv.lhs
+++ b/ghc/compiler/codeGen/CgRetConv.lhs
@@ -1,7 +1,7 @@
 %
 % (c) The GRASP Project, Glasgow University, 1992-1998
 %
-% $Id: CgRetConv.lhs,v 1.16 1998/12/18 17:40:52 simonpj Exp $
+% $Id: CgRetConv.lhs,v 1.17 1999/01/18 14:31:51 sof Exp $
 %
 \section[CgRetConv]{Return conventions for the code generator}
 
@@ -21,10 +21,9 @@ module CgRetConv (
 import AbsCSyn		-- quite a few things
 import Constants	( mAX_FAMILY_SIZE_FOR_VEC_RETURNS,
 			  mAX_Vanilla_REG, mAX_Float_REG,
-			  mAX_Double_REG, 
+			  mAX_Double_REG, mAX_Real_Double_REG,
 			  mAX_Real_Vanilla_REG, mAX_Real_Float_REG,
-			  mAX_Real_Double_REG,
-			  mAX_Long_REG
+			  mAX_Long_REG, mAX_Real_Long_REG
 			)
 import Maybes		( catMaybes )
 import DataCon		( dataConRawArgTys, DataCon )
@@ -182,17 +181,17 @@ We take these register supplies from the *real* registers, i.e. those
 that are guaranteed to map to machine registers.
 
 \begin{code}
-vanillaRegNos, floatRegNos, doubleRegNos :: [Int]
+vanillaRegNos, floatRegNos, doubleRegNos, longRegNos :: [Int]
 vanillaRegNos	 = [1 .. mAX_Real_Vanilla_REG]
 floatRegNos	 = [1 .. mAX_Real_Float_REG]
 doubleRegNos	 = [1 .. mAX_Real_Double_REG]
-longRegNos       = [1 .. mAX_Long_REG]
+longRegNos       = [1 .. mAX_Real_Long_REG]
 
 allVanillaRegNos, allFloatRegNos, allDoubleRegNos, allLongRegNos :: [Int]
 allVanillaRegNos = [1 .. mAX_Vanilla_REG]
 allFloatRegNos	 = [1 .. mAX_Float_REG]
 allDoubleRegNos	 = [1 .. mAX_Double_REG]
-allLongRegNos	 = [1 .. mAX_Double_REG]
+allLongRegNos	 = [1 .. mAX_Long_REG]
 
 type AvailRegs = ( [Int]   -- available vanilla regs.
 		 , [Int]   -- floats
diff --git a/ghc/compiler/main/Constants.lhs b/ghc/compiler/main/Constants.lhs
index fa4cdbc4ecc5..3aa4d59542e6 100644
--- a/ghc/compiler/main/Constants.lhs
+++ b/ghc/compiler/main/Constants.lhs
@@ -56,6 +56,7 @@ module Constants (
 	mAX_Real_Vanilla_REG,
 	mAX_Real_Float_REG,
 	mAX_Real_Double_REG,
+	mAX_Real_Long_REG,
 
 	oTHER_TAG,
 
@@ -175,10 +176,12 @@ sEQ_FRAME_SIZE = (SEQ_FRAME_SIZE::Int)
 mAX_Vanilla_REG	= (MAX_VANILLA_REG :: Int)
 mAX_Float_REG	= (MAX_FLOAT_REG :: Int)
 mAX_Double_REG	= (MAX_DOUBLE_REG :: Int)
+mAX_Long_REG    = (MAX_LONG_REG  :: Int)
 
 mAX_Real_Vanilla_REG	= (MAX_REAL_VANILLA_REG :: Int)
 mAX_Real_Float_REG	= (MAX_REAL_FLOAT_REG :: Int)
 mAX_Real_Double_REG	= (MAX_REAL_DOUBLE_REG :: Int)
+mAX_Real_Long_REG	= (MAX_REAL_LONG_REG :: Int)
 \end{code}
 
 Closure header sizes.
@@ -204,7 +207,6 @@ Size of a double in StgWords.
 
 \begin{code}
 dOUBLE_SIZE    = (DOUBLE_SIZE   :: Int)
-mAX_Long_REG   = (MAX_LONG_REG  :: Int)
 wORD64_SIZE    = (WORD64_SIZE   :: Int)
 iNT64_SIZE     = (INT64_SIZE   :: Int)
 \end{code}
diff --git a/ghc/includes/MachRegs.h b/ghc/includes/MachRegs.h
index e4f1d2380b38..b4272d787995 100644
--- a/ghc/includes/MachRegs.h
+++ b/ghc/includes/MachRegs.h
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: MachRegs.h,v 1.2 1998/12/02 13:21:13 simonm Exp $
+ * $Id: MachRegs.h,v 1.3 1999/01/18 14:31:50 sof Exp $
  *
  * Registers used in STG code.  Might or might not correspond to
  * actual machine registers.
@@ -214,6 +214,7 @@
 #define MAX_REAL_VANILLA_REG 1	/* always, since it defines the entry conv */
 #define MAX_REAL_FLOAT_REG   0
 #define MAX_REAL_DOUBLE_REG  0
+#define MAX_REAL_LONG_REG    0
 
 #endif /* iX86 */
 
-- 
GitLab