summaryrefslogtreecommitdiff
path: root/ghc/runtime/storage/SMstatic.lc
diff options
context:
space:
mode:
Diffstat (limited to 'ghc/runtime/storage/SMstatic.lc')
-rw-r--r--ghc/runtime/storage/SMstatic.lc322
1 files changed, 322 insertions, 0 deletions
diff --git a/ghc/runtime/storage/SMstatic.lc b/ghc/runtime/storage/SMstatic.lc
new file mode 100644
index 0000000000..2f953f135a
--- /dev/null
+++ b/ghc/runtime/storage/SMstatic.lc
@@ -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}