diff options
Diffstat (limited to 'ghc/runtime/storage/SMstatic.lc')
-rw-r--r-- | ghc/runtime/storage/SMstatic.lc | 322 |
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} |