[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / runtime / storage / SMstatic.lc
diff --git a/ghc/runtime/storage/SMstatic.lc b/ghc/runtime/storage/SMstatic.lc
new file mode 100644 (file)
index 0000000..2f953f1
--- /dev/null
@@ -0,0 +1,322 @@
+***************************************************************************
+
+    STATIC closures -- INTLIKE and CHARLIKE stuff.
+
+***************************************************************************
+
+@CZh_entry@, @CZh_static_info@, @IZh_entry@ and @IZh_static_info@ 
+are built by the compiler from {\tr uTys.hs}.
+
+\begin{code}
+#define NULL_REG_MAP
+#include "SMinternal.h"
+
+EXTDATA_RO(CZh_static_info);
+
+#define __CHARLIKE_CLOSURE(n) (CHARLIKE_closures+((n)*(CHARLIKE_HS+1)))
+#define __INTLIKE_CLOSURE(n)  (INTLIKE_closures_def+(((n)-MIN_INTLIKE)*(INTLIKE_HS+1)))
+
+#define CHARLIKE_HDR(n)            SET_STATIC_FIXED_HDR(__CHARLIKE_CLOSURE(n),CZh_static_info,CC_DONTZuCARE), (W_) n
+
+#define INTLIKE_HDR(n)     SET_STATIC_FIXED_HDR(__INTLIKE_CLOSURE(n),IZh_static_info,CC_DONTZuCARE), (W_) n
+
+const W_ CHARLIKE_closures[] = {
+    CHARLIKE_HDR(0),
+    CHARLIKE_HDR(1),
+    CHARLIKE_HDR(2),
+    CHARLIKE_HDR(3),
+    CHARLIKE_HDR(4),
+    CHARLIKE_HDR(5),
+    CHARLIKE_HDR(6),
+    CHARLIKE_HDR(7),
+    CHARLIKE_HDR(8),
+    CHARLIKE_HDR(9),
+    CHARLIKE_HDR(10),
+    CHARLIKE_HDR(11),
+    CHARLIKE_HDR(12),
+    CHARLIKE_HDR(13),
+    CHARLIKE_HDR(14),
+    CHARLIKE_HDR(15),
+    CHARLIKE_HDR(16),
+    CHARLIKE_HDR(17),
+    CHARLIKE_HDR(18),
+    CHARLIKE_HDR(19),
+    CHARLIKE_HDR(20),
+    CHARLIKE_HDR(21),
+    CHARLIKE_HDR(22),
+    CHARLIKE_HDR(23),
+    CHARLIKE_HDR(24),
+    CHARLIKE_HDR(25),
+    CHARLIKE_HDR(26),
+    CHARLIKE_HDR(27),
+    CHARLIKE_HDR(28),
+    CHARLIKE_HDR(29),
+    CHARLIKE_HDR(30),
+    CHARLIKE_HDR(31),
+    CHARLIKE_HDR(32),
+    CHARLIKE_HDR(33),
+    CHARLIKE_HDR(34),
+    CHARLIKE_HDR(35),
+    CHARLIKE_HDR(36),
+    CHARLIKE_HDR(37),
+    CHARLIKE_HDR(38),
+    CHARLIKE_HDR(39),
+    CHARLIKE_HDR(40),
+    CHARLIKE_HDR(41),
+    CHARLIKE_HDR(42),
+    CHARLIKE_HDR(43),
+    CHARLIKE_HDR(44),
+    CHARLIKE_HDR(45),
+    CHARLIKE_HDR(46),
+    CHARLIKE_HDR(47),
+    CHARLIKE_HDR(48),
+    CHARLIKE_HDR(49),
+    CHARLIKE_HDR(50),
+    CHARLIKE_HDR(51),
+    CHARLIKE_HDR(52),
+    CHARLIKE_HDR(53),
+    CHARLIKE_HDR(54),
+    CHARLIKE_HDR(55),
+    CHARLIKE_HDR(56),
+    CHARLIKE_HDR(57),
+    CHARLIKE_HDR(58),
+    CHARLIKE_HDR(59),
+    CHARLIKE_HDR(60),
+    CHARLIKE_HDR(61),
+    CHARLIKE_HDR(62),
+    CHARLIKE_HDR(63),
+    CHARLIKE_HDR(64),
+    CHARLIKE_HDR(65),
+    CHARLIKE_HDR(66),
+    CHARLIKE_HDR(67),
+    CHARLIKE_HDR(68),
+    CHARLIKE_HDR(69),
+    CHARLIKE_HDR(70),
+    CHARLIKE_HDR(71),
+    CHARLIKE_HDR(72),
+    CHARLIKE_HDR(73),
+    CHARLIKE_HDR(74),
+    CHARLIKE_HDR(75),
+    CHARLIKE_HDR(76),
+    CHARLIKE_HDR(77),
+    CHARLIKE_HDR(78),
+    CHARLIKE_HDR(79),
+    CHARLIKE_HDR(80),
+    CHARLIKE_HDR(81),
+    CHARLIKE_HDR(82),
+    CHARLIKE_HDR(83),
+    CHARLIKE_HDR(84),
+    CHARLIKE_HDR(85),
+    CHARLIKE_HDR(86),
+    CHARLIKE_HDR(87),
+    CHARLIKE_HDR(88),
+    CHARLIKE_HDR(89),
+    CHARLIKE_HDR(90),
+    CHARLIKE_HDR(91),
+    CHARLIKE_HDR(92),
+    CHARLIKE_HDR(93),
+    CHARLIKE_HDR(94),
+    CHARLIKE_HDR(95),
+    CHARLIKE_HDR(96),
+    CHARLIKE_HDR(97),
+    CHARLIKE_HDR(98),
+    CHARLIKE_HDR(99),
+    CHARLIKE_HDR(100),
+    CHARLIKE_HDR(101),
+    CHARLIKE_HDR(102),
+    CHARLIKE_HDR(103),
+    CHARLIKE_HDR(104),
+    CHARLIKE_HDR(105),
+    CHARLIKE_HDR(106),
+    CHARLIKE_HDR(107),
+    CHARLIKE_HDR(108),
+    CHARLIKE_HDR(109),
+    CHARLIKE_HDR(110),
+    CHARLIKE_HDR(111),
+    CHARLIKE_HDR(112),
+    CHARLIKE_HDR(113),
+    CHARLIKE_HDR(114),
+    CHARLIKE_HDR(115),
+    CHARLIKE_HDR(116),
+    CHARLIKE_HDR(117),
+    CHARLIKE_HDR(118),
+    CHARLIKE_HDR(119),
+    CHARLIKE_HDR(120),
+    CHARLIKE_HDR(121),
+    CHARLIKE_HDR(122),
+    CHARLIKE_HDR(123),
+    CHARLIKE_HDR(124),
+    CHARLIKE_HDR(125),
+    CHARLIKE_HDR(126),
+    CHARLIKE_HDR(127),
+    CHARLIKE_HDR(128),
+    CHARLIKE_HDR(129),
+    CHARLIKE_HDR(130),
+    CHARLIKE_HDR(131),
+    CHARLIKE_HDR(132),
+    CHARLIKE_HDR(133),
+    CHARLIKE_HDR(134),
+    CHARLIKE_HDR(135),
+    CHARLIKE_HDR(136),
+    CHARLIKE_HDR(137),
+    CHARLIKE_HDR(138),
+    CHARLIKE_HDR(139),
+    CHARLIKE_HDR(140),
+    CHARLIKE_HDR(141),
+    CHARLIKE_HDR(142),
+    CHARLIKE_HDR(143),
+    CHARLIKE_HDR(144),
+    CHARLIKE_HDR(145),
+    CHARLIKE_HDR(146),
+    CHARLIKE_HDR(147),
+    CHARLIKE_HDR(148),
+    CHARLIKE_HDR(149),
+    CHARLIKE_HDR(150),
+    CHARLIKE_HDR(151),
+    CHARLIKE_HDR(152),
+    CHARLIKE_HDR(153),
+    CHARLIKE_HDR(154),
+    CHARLIKE_HDR(155),
+    CHARLIKE_HDR(156),
+    CHARLIKE_HDR(157),
+    CHARLIKE_HDR(158),
+    CHARLIKE_HDR(159),
+    CHARLIKE_HDR(160),
+    CHARLIKE_HDR(161),
+    CHARLIKE_HDR(162),
+    CHARLIKE_HDR(163),
+    CHARLIKE_HDR(164),
+    CHARLIKE_HDR(165),
+    CHARLIKE_HDR(166),
+    CHARLIKE_HDR(167),
+    CHARLIKE_HDR(168),
+    CHARLIKE_HDR(169),
+    CHARLIKE_HDR(170),
+    CHARLIKE_HDR(171),
+    CHARLIKE_HDR(172),
+    CHARLIKE_HDR(173),
+    CHARLIKE_HDR(174),
+    CHARLIKE_HDR(175),
+    CHARLIKE_HDR(176),
+    CHARLIKE_HDR(177),
+    CHARLIKE_HDR(178),
+    CHARLIKE_HDR(179),
+    CHARLIKE_HDR(180),
+    CHARLIKE_HDR(181),
+    CHARLIKE_HDR(182),
+    CHARLIKE_HDR(183),
+    CHARLIKE_HDR(184),
+    CHARLIKE_HDR(185),
+    CHARLIKE_HDR(186),
+    CHARLIKE_HDR(187),
+    CHARLIKE_HDR(188),
+    CHARLIKE_HDR(189),
+    CHARLIKE_HDR(190),
+    CHARLIKE_HDR(191),
+    CHARLIKE_HDR(192),
+    CHARLIKE_HDR(193),
+    CHARLIKE_HDR(194),
+    CHARLIKE_HDR(195),
+    CHARLIKE_HDR(196),
+    CHARLIKE_HDR(197),
+    CHARLIKE_HDR(198),
+    CHARLIKE_HDR(199),
+    CHARLIKE_HDR(200),
+    CHARLIKE_HDR(201),
+    CHARLIKE_HDR(202),
+    CHARLIKE_HDR(203),
+    CHARLIKE_HDR(204),
+    CHARLIKE_HDR(205),
+    CHARLIKE_HDR(206),
+    CHARLIKE_HDR(207),
+    CHARLIKE_HDR(208),
+    CHARLIKE_HDR(209),
+    CHARLIKE_HDR(210),
+    CHARLIKE_HDR(211),
+    CHARLIKE_HDR(212),
+    CHARLIKE_HDR(213),
+    CHARLIKE_HDR(214),
+    CHARLIKE_HDR(215),
+    CHARLIKE_HDR(216),
+    CHARLIKE_HDR(217),
+    CHARLIKE_HDR(218),
+    CHARLIKE_HDR(219),
+    CHARLIKE_HDR(220),
+    CHARLIKE_HDR(221),
+    CHARLIKE_HDR(222),
+    CHARLIKE_HDR(223),
+    CHARLIKE_HDR(224),
+    CHARLIKE_HDR(225),
+    CHARLIKE_HDR(226),
+    CHARLIKE_HDR(227),
+    CHARLIKE_HDR(228),
+    CHARLIKE_HDR(229),
+    CHARLIKE_HDR(230),
+    CHARLIKE_HDR(231),
+    CHARLIKE_HDR(232),
+    CHARLIKE_HDR(233),
+    CHARLIKE_HDR(234),
+    CHARLIKE_HDR(235),
+    CHARLIKE_HDR(236),
+    CHARLIKE_HDR(237),
+    CHARLIKE_HDR(238),
+    CHARLIKE_HDR(239),
+    CHARLIKE_HDR(240),
+    CHARLIKE_HDR(241),
+    CHARLIKE_HDR(242),
+    CHARLIKE_HDR(243),
+    CHARLIKE_HDR(244),
+    CHARLIKE_HDR(245),
+    CHARLIKE_HDR(246),
+    CHARLIKE_HDR(247),
+    CHARLIKE_HDR(248),
+    CHARLIKE_HDR(249),
+    CHARLIKE_HDR(250),
+    CHARLIKE_HDR(251),
+    CHARLIKE_HDR(252),
+    CHARLIKE_HDR(253),
+    CHARLIKE_HDR(254),
+    CHARLIKE_HDR(255)
+};
+
+EXTDATA_RO(IZh_static_info);
+
+static const W_ INTLIKE_closures_def[] = {
+    INTLIKE_HDR(-16),  /* MIN_INTLIKE == -16 */
+    INTLIKE_HDR(-15),
+    INTLIKE_HDR(-14),
+    INTLIKE_HDR(-13),
+    INTLIKE_HDR(-12),
+    INTLIKE_HDR(-11),
+    INTLIKE_HDR(-10),
+    INTLIKE_HDR(-9),
+    INTLIKE_HDR(-8),
+    INTLIKE_HDR(-7),
+    INTLIKE_HDR(-6),
+    INTLIKE_HDR(-5),
+    INTLIKE_HDR(-4),
+    INTLIKE_HDR(-3),
+    INTLIKE_HDR(-2),
+    INTLIKE_HDR(-1),
+    INTLIKE_HDR(0),
+    INTLIKE_HDR(1),
+    INTLIKE_HDR(2),
+    INTLIKE_HDR(3),
+    INTLIKE_HDR(4),
+    INTLIKE_HDR(5),
+    INTLIKE_HDR(6),
+    INTLIKE_HDR(7),
+    INTLIKE_HDR(8),
+    INTLIKE_HDR(9),
+    INTLIKE_HDR(10),
+    INTLIKE_HDR(11),
+    INTLIKE_HDR(12),
+    INTLIKE_HDR(13),
+    INTLIKE_HDR(14),
+    INTLIKE_HDR(15),
+    INTLIKE_HDR(16)    /* MAX_INTLIKE == 16 */
+};
+
+P_ INTLIKE_closures = (P_) __INTLIKE_CLOSURE(0);
+
+\end{code}