blob: a16a58dc1fd387aa67d61da46ac065403564a89c [file] [log] [blame]
//! Utility macros.
//immediate value: -4096:4088
macro_rules! constify_imm_s13 {
($imm_s13:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm_s13) & 0b1_1111_1111_1111 {
0 => $expand!(0),
8 => $expand!(8),
16 => $expand!(16),
24 => $expand!(24),
32 => $expand!(32),
40 => $expand!(40),
48 => $expand!(48),
56 => $expand!(56),
64 => $expand!(64),
72 => $expand!(72),
80 => $expand!(80),
88 => $expand!(88),
96 => $expand!(96),
104 => $expand!(104),
112 => $expand!(112),
120 => $expand!(120),
128 => $expand!(128),
136 => $expand!(136),
144 => $expand!(144),
152 => $expand!(152),
160 => $expand!(160),
168 => $expand!(168),
176 => $expand!(176),
184 => $expand!(184),
192 => $expand!(192),
200 => $expand!(200),
208 => $expand!(208),
216 => $expand!(216),
224 => $expand!(224),
232 => $expand!(232),
240 => $expand!(240),
248 => $expand!(248),
256 => $expand!(256),
264 => $expand!(264),
272 => $expand!(272),
280 => $expand!(280),
288 => $expand!(288),
296 => $expand!(296),
304 => $expand!(304),
312 => $expand!(312),
320 => $expand!(320),
328 => $expand!(328),
336 => $expand!(336),
344 => $expand!(344),
352 => $expand!(352),
360 => $expand!(360),
368 => $expand!(368),
376 => $expand!(376),
384 => $expand!(384),
392 => $expand!(392),
400 => $expand!(400),
408 => $expand!(408),
416 => $expand!(416),
424 => $expand!(424),
432 => $expand!(432),
440 => $expand!(440),
448 => $expand!(448),
456 => $expand!(456),
464 => $expand!(464),
472 => $expand!(472),
480 => $expand!(480),
488 => $expand!(488),
496 => $expand!(496),
504 => $expand!(504),
512 => $expand!(512),
520 => $expand!(520),
528 => $expand!(528),
536 => $expand!(536),
544 => $expand!(544),
552 => $expand!(552),
560 => $expand!(560),
568 => $expand!(568),
576 => $expand!(576),
584 => $expand!(584),
592 => $expand!(592),
600 => $expand!(600),
608 => $expand!(608),
616 => $expand!(616),
624 => $expand!(624),
632 => $expand!(632),
640 => $expand!(640),
648 => $expand!(648),
656 => $expand!(656),
664 => $expand!(664),
672 => $expand!(672),
680 => $expand!(680),
688 => $expand!(688),
696 => $expand!(696),
704 => $expand!(704),
712 => $expand!(712),
720 => $expand!(720),
728 => $expand!(728),
736 => $expand!(736),
744 => $expand!(744),
752 => $expand!(752),
760 => $expand!(760),
768 => $expand!(768),
776 => $expand!(776),
784 => $expand!(784),
792 => $expand!(792),
800 => $expand!(800),
808 => $expand!(808),
816 => $expand!(816),
824 => $expand!(824),
832 => $expand!(832),
840 => $expand!(840),
848 => $expand!(848),
856 => $expand!(856),
864 => $expand!(864),
872 => $expand!(872),
880 => $expand!(880),
888 => $expand!(888),
896 => $expand!(896),
904 => $expand!(904),
912 => $expand!(912),
920 => $expand!(920),
928 => $expand!(928),
936 => $expand!(936),
944 => $expand!(944),
952 => $expand!(952),
960 => $expand!(960),
968 => $expand!(968),
976 => $expand!(976),
984 => $expand!(984),
992 => $expand!(992),
1000 => $expand!(1000),
1008 => $expand!(1008),
1016 => $expand!(1016),
1024 => $expand!(1024),
1032 => $expand!(1032),
1040 => $expand!(1040),
1048 => $expand!(1048),
1056 => $expand!(1056),
1064 => $expand!(1064),
1072 => $expand!(1072),
1080 => $expand!(1080),
1088 => $expand!(1088),
1096 => $expand!(1096),
1104 => $expand!(1104),
1112 => $expand!(1112),
1120 => $expand!(1120),
1128 => $expand!(1128),
1136 => $expand!(1136),
1144 => $expand!(1144),
1152 => $expand!(1152),
1160 => $expand!(1160),
1168 => $expand!(1168),
1176 => $expand!(1176),
1184 => $expand!(1184),
1192 => $expand!(1192),
1200 => $expand!(1200),
1208 => $expand!(1208),
1216 => $expand!(1216),
1224 => $expand!(1224),
1232 => $expand!(1232),
1240 => $expand!(1240),
1248 => $expand!(1248),
1256 => $expand!(1256),
1264 => $expand!(1264),
1272 => $expand!(1272),
1280 => $expand!(1280),
1288 => $expand!(1288),
1296 => $expand!(1296),
1304 => $expand!(1304),
1312 => $expand!(1312),
1320 => $expand!(1320),
1328 => $expand!(1328),
1336 => $expand!(1336),
1344 => $expand!(1344),
1352 => $expand!(1352),
1360 => $expand!(1360),
1368 => $expand!(1368),
1376 => $expand!(1376),
1384 => $expand!(1384),
1392 => $expand!(1392),
1400 => $expand!(1400),
1408 => $expand!(1408),
1416 => $expand!(1416),
1424 => $expand!(1424),
1432 => $expand!(1432),
1440 => $expand!(1440),
1448 => $expand!(1448),
1456 => $expand!(1456),
1464 => $expand!(1464),
1472 => $expand!(1472),
1480 => $expand!(1480),
1488 => $expand!(1488),
1496 => $expand!(1496),
1504 => $expand!(1504),
1512 => $expand!(1512),
1520 => $expand!(1520),
1528 => $expand!(1528),
1536 => $expand!(1536),
1544 => $expand!(1544),
1552 => $expand!(1552),
1560 => $expand!(1560),
1568 => $expand!(1568),
1576 => $expand!(1576),
1584 => $expand!(1584),
1592 => $expand!(1592),
1600 => $expand!(1600),
1608 => $expand!(1608),
1616 => $expand!(1616),
1624 => $expand!(1624),
1632 => $expand!(1632),
1640 => $expand!(1640),
1648 => $expand!(1648),
1656 => $expand!(1656),
1664 => $expand!(1664),
1672 => $expand!(1672),
1680 => $expand!(1680),
1688 => $expand!(1688),
1696 => $expand!(1696),
1704 => $expand!(1704),
1712 => $expand!(1712),
1720 => $expand!(1720),
1728 => $expand!(1728),
1736 => $expand!(1736),
1744 => $expand!(1744),
1752 => $expand!(1752),
1760 => $expand!(1760),
1768 => $expand!(1768),
1776 => $expand!(1776),
1784 => $expand!(1784),
1792 => $expand!(1792),
1800 => $expand!(1800),
1808 => $expand!(1808),
1816 => $expand!(1816),
1824 => $expand!(1824),
1832 => $expand!(1832),
1840 => $expand!(1840),
1848 => $expand!(1848),
1856 => $expand!(1856),
1864 => $expand!(1864),
1872 => $expand!(1872),
1880 => $expand!(1880),
1888 => $expand!(1888),
1896 => $expand!(1896),
1904 => $expand!(1904),
1912 => $expand!(1912),
1920 => $expand!(1920),
1928 => $expand!(1928),
1936 => $expand!(1936),
1944 => $expand!(1944),
1952 => $expand!(1952),
1960 => $expand!(1960),
1968 => $expand!(1968),
1976 => $expand!(1976),
1984 => $expand!(1984),
1992 => $expand!(1992),
2000 => $expand!(2000),
2008 => $expand!(2008),
2016 => $expand!(2016),
2024 => $expand!(2024),
2032 => $expand!(2032),
2040 => $expand!(2040),
2048 => $expand!(2048),
2056 => $expand!(2056),
2064 => $expand!(2064),
2072 => $expand!(2072),
2080 => $expand!(2080),
2088 => $expand!(2088),
2096 => $expand!(2096),
2104 => $expand!(2104),
2112 => $expand!(2112),
2120 => $expand!(2120),
2128 => $expand!(2128),
2136 => $expand!(2136),
2144 => $expand!(2144),
2152 => $expand!(2152),
2160 => $expand!(2160),
2168 => $expand!(2168),
2176 => $expand!(2176),
2184 => $expand!(2184),
2192 => $expand!(2192),
2200 => $expand!(2200),
2208 => $expand!(2208),
2216 => $expand!(2216),
2224 => $expand!(2224),
2232 => $expand!(2232),
2240 => $expand!(2240),
2248 => $expand!(2248),
2256 => $expand!(2256),
2264 => $expand!(2264),
2272 => $expand!(2272),
2280 => $expand!(2280),
2288 => $expand!(2288),
2296 => $expand!(2296),
2304 => $expand!(2304),
2312 => $expand!(2312),
2320 => $expand!(2320),
2328 => $expand!(2328),
2336 => $expand!(2336),
2344 => $expand!(2344),
2352 => $expand!(2352),
2360 => $expand!(2360),
2368 => $expand!(2368),
2376 => $expand!(2376),
2384 => $expand!(2384),
2392 => $expand!(2392),
2400 => $expand!(2400),
2408 => $expand!(2408),
2416 => $expand!(2416),
2424 => $expand!(2424),
2432 => $expand!(2432),
2440 => $expand!(2440),
2448 => $expand!(2448),
2456 => $expand!(2456),
2464 => $expand!(2464),
2472 => $expand!(2472),
2480 => $expand!(2480),
2488 => $expand!(2488),
2496 => $expand!(2496),
2504 => $expand!(2504),
2512 => $expand!(2512),
2520 => $expand!(2520),
2528 => $expand!(2528),
2536 => $expand!(2536),
2544 => $expand!(2544),
2552 => $expand!(2552),
2560 => $expand!(2560),
2568 => $expand!(2568),
2576 => $expand!(2576),
2584 => $expand!(2584),
2592 => $expand!(2592),
2600 => $expand!(2600),
2608 => $expand!(2608),
2616 => $expand!(2616),
2624 => $expand!(2624),
2632 => $expand!(2632),
2640 => $expand!(2640),
2648 => $expand!(2648),
2656 => $expand!(2656),
2664 => $expand!(2664),
2672 => $expand!(2672),
2680 => $expand!(2680),
2688 => $expand!(2688),
2696 => $expand!(2696),
2704 => $expand!(2704),
2712 => $expand!(2712),
2720 => $expand!(2720),
2728 => $expand!(2728),
2736 => $expand!(2736),
2744 => $expand!(2744),
2752 => $expand!(2752),
2760 => $expand!(2760),
2768 => $expand!(2768),
2776 => $expand!(2776),
2784 => $expand!(2784),
2792 => $expand!(2792),
2800 => $expand!(2800),
2808 => $expand!(2808),
2816 => $expand!(2816),
2824 => $expand!(2824),
2832 => $expand!(2832),
2840 => $expand!(2840),
2848 => $expand!(2848),
2856 => $expand!(2856),
2864 => $expand!(2864),
2872 => $expand!(2872),
2880 => $expand!(2880),
2888 => $expand!(2888),
2896 => $expand!(2896),
2904 => $expand!(2904),
2912 => $expand!(2912),
2920 => $expand!(2920),
2928 => $expand!(2928),
2936 => $expand!(2936),
2944 => $expand!(2944),
2952 => $expand!(2952),
2960 => $expand!(2960),
2968 => $expand!(2968),
2976 => $expand!(2976),
2984 => $expand!(2984),
2992 => $expand!(2992),
3000 => $expand!(3000),
3008 => $expand!(3008),
3016 => $expand!(3016),
3024 => $expand!(3024),
3032 => $expand!(3032),
3040 => $expand!(3040),
3048 => $expand!(3048),
3056 => $expand!(3056),
3064 => $expand!(3064),
3072 => $expand!(3072),
3080 => $expand!(3080),
3088 => $expand!(3088),
3096 => $expand!(3096),
3104 => $expand!(3104),
3112 => $expand!(3112),
3120 => $expand!(3120),
3128 => $expand!(3128),
3136 => $expand!(3136),
3144 => $expand!(3144),
3152 => $expand!(3152),
3160 => $expand!(3160),
3168 => $expand!(3168),
3176 => $expand!(3176),
3184 => $expand!(3184),
3192 => $expand!(3192),
3200 => $expand!(3200),
3208 => $expand!(3208),
3216 => $expand!(3216),
3224 => $expand!(3224),
3232 => $expand!(3232),
3240 => $expand!(3240),
3248 => $expand!(3248),
3256 => $expand!(3256),
3264 => $expand!(3264),
3272 => $expand!(3272),
3280 => $expand!(3280),
3288 => $expand!(3288),
3296 => $expand!(3296),
3304 => $expand!(3304),
3312 => $expand!(3312),
3320 => $expand!(3320),
3328 => $expand!(3328),
3336 => $expand!(3336),
3344 => $expand!(3344),
3352 => $expand!(3352),
3360 => $expand!(3360),
3368 => $expand!(3368),
3376 => $expand!(3376),
3384 => $expand!(3384),
3392 => $expand!(3392),
3400 => $expand!(3400),
3408 => $expand!(3408),
3416 => $expand!(3416),
3424 => $expand!(3424),
3432 => $expand!(3432),
3440 => $expand!(3440),
3448 => $expand!(3448),
3456 => $expand!(3456),
3464 => $expand!(3464),
3472 => $expand!(3472),
3480 => $expand!(3480),
3488 => $expand!(3488),
3496 => $expand!(3496),
3504 => $expand!(3504),
3512 => $expand!(3512),
3520 => $expand!(3520),
3528 => $expand!(3528),
3536 => $expand!(3536),
3544 => $expand!(3544),
3552 => $expand!(3552),
3560 => $expand!(3560),
3568 => $expand!(3568),
3576 => $expand!(3576),
3584 => $expand!(3584),
3592 => $expand!(3592),
3600 => $expand!(3600),
3608 => $expand!(3608),
3616 => $expand!(3616),
3624 => $expand!(3624),
3632 => $expand!(3632),
3640 => $expand!(3640),
3648 => $expand!(3648),
3656 => $expand!(3656),
3664 => $expand!(3664),
3672 => $expand!(3672),
3680 => $expand!(3680),
3688 => $expand!(3688),
3696 => $expand!(3696),
3704 => $expand!(3704),
3712 => $expand!(3712),
3720 => $expand!(3720),
3728 => $expand!(3728),
3736 => $expand!(3736),
3744 => $expand!(3744),
3752 => $expand!(3752),
3760 => $expand!(3760),
3768 => $expand!(3768),
3776 => $expand!(3776),
3784 => $expand!(3784),
3792 => $expand!(3792),
3700 => $expand!(3700),
3808 => $expand!(3808),
3816 => $expand!(3816),
3824 => $expand!(3824),
3832 => $expand!(3832),
3840 => $expand!(3840),
3848 => $expand!(3848),
3856 => $expand!(3856),
3864 => $expand!(3864),
3872 => $expand!(3872),
3880 => $expand!(3880),
3888 => $expand!(3888),
3896 => $expand!(3896),
3904 => $expand!(3904),
3912 => $expand!(3912),
3920 => $expand!(3920),
3928 => $expand!(3928),
3936 => $expand!(3936),
3944 => $expand!(3944),
3952 => $expand!(3952),
3960 => $expand!(3960),
3968 => $expand!(3968),
3976 => $expand!(3976),
3984 => $expand!(3984),
3992 => $expand!(3992),
4000 => $expand!(4000),
4008 => $expand!(4008),
4016 => $expand!(4016),
4024 => $expand!(4024),
4032 => $expand!(4032),
4040 => $expand!(4040),
4048 => $expand!(4048),
4056 => $expand!(4056),
4064 => $expand!(4064),
4072 => $expand!(4072),
4080 => $expand!(4080),
4096 => $expand!(-4096),
4104 => $expand!(-4088),
4112 => $expand!(-4080),
4120 => $expand!(-4072),
4128 => $expand!(-4064),
4136 => $expand!(-4056),
4144 => $expand!(-4048),
4152 => $expand!(-4040),
4160 => $expand!(-4032),
4168 => $expand!(-4024),
4176 => $expand!(-4016),
4184 => $expand!(-4008),
4192 => $expand!(-4000),
4200 => $expand!(-3992),
4208 => $expand!(-3984),
4216 => $expand!(-3976),
4224 => $expand!(-3968),
4232 => $expand!(-3960),
4240 => $expand!(-3952),
4248 => $expand!(-3944),
4256 => $expand!(-3936),
4264 => $expand!(-3928),
4272 => $expand!(-3920),
4280 => $expand!(-3912),
4288 => $expand!(-3904),
4296 => $expand!(-3896),
4304 => $expand!(-3888),
4312 => $expand!(-3880),
4320 => $expand!(-3872),
4328 => $expand!(-3864),
4336 => $expand!(-3856),
4344 => $expand!(-3848),
4352 => $expand!(-3840),
4360 => $expand!(-3832),
4368 => $expand!(-3824),
4376 => $expand!(-3816),
4384 => $expand!(-3808),
4392 => $expand!(-3800),
4400 => $expand!(-3792),
4408 => $expand!(-3784),
4416 => $expand!(-3776),
4424 => $expand!(-3768),
4432 => $expand!(-3760),
4440 => $expand!(-3752),
4448 => $expand!(-3744),
4456 => $expand!(-3736),
4464 => $expand!(-3728),
4472 => $expand!(-3720),
4480 => $expand!(-3712),
4488 => $expand!(-3704),
4496 => $expand!(-3696),
4504 => $expand!(-3688),
4512 => $expand!(-3680),
4520 => $expand!(-3672),
4528 => $expand!(-3664),
4536 => $expand!(-3656),
4544 => $expand!(-3648),
4552 => $expand!(-3640),
4560 => $expand!(-3632),
4568 => $expand!(-3624),
4576 => $expand!(-3616),
4584 => $expand!(-3608),
4592 => $expand!(-3600),
4600 => $expand!(-3592),
4608 => $expand!(-3584),
4616 => $expand!(-3576),
4624 => $expand!(-3568),
4632 => $expand!(-3560),
4640 => $expand!(-3552),
4648 => $expand!(-3544),
4656 => $expand!(-3536),
4664 => $expand!(-3528),
4672 => $expand!(-3520),
4680 => $expand!(-3512),
4688 => $expand!(-3504),
4696 => $expand!(-3496),
4704 => $expand!(-3488),
4712 => $expand!(-3480),
4720 => $expand!(-3472),
4728 => $expand!(-3464),
4736 => $expand!(-3456),
4744 => $expand!(-3448),
4752 => $expand!(-3440),
4760 => $expand!(-3432),
4768 => $expand!(-3424),
4776 => $expand!(-3416),
4784 => $expand!(-3408),
4792 => $expand!(-3400),
4800 => $expand!(-3392),
4808 => $expand!(-3384),
4816 => $expand!(-3376),
4824 => $expand!(-3368),
4832 => $expand!(-3360),
4840 => $expand!(-3352),
4848 => $expand!(-3344),
4856 => $expand!(-3336),
4864 => $expand!(-3328),
4872 => $expand!(-3320),
4880 => $expand!(-3312),
4888 => $expand!(-3304),
4896 => $expand!(-3296),
4904 => $expand!(-3288),
4912 => $expand!(-3280),
4920 => $expand!(-3272),
4928 => $expand!(-3264),
4936 => $expand!(-3256),
4944 => $expand!(-3248),
4952 => $expand!(-3240),
4960 => $expand!(-3232),
4968 => $expand!(-3224),
4976 => $expand!(-3216),
4984 => $expand!(-3208),
4992 => $expand!(-3200),
5000 => $expand!(-3192),
5008 => $expand!(-3184),
5016 => $expand!(-3176),
5024 => $expand!(-3168),
5032 => $expand!(-3160),
5040 => $expand!(-3152),
5048 => $expand!(-3144),
5056 => $expand!(-3136),
5064 => $expand!(-3128),
5072 => $expand!(-3120),
5080 => $expand!(-3112),
5088 => $expand!(-3104),
5096 => $expand!(-3096),
5104 => $expand!(-3088),
5112 => $expand!(-3080),
5120 => $expand!(-3072),
5128 => $expand!(-3064),
5136 => $expand!(-3056),
5144 => $expand!(-3048),
5152 => $expand!(-3040),
5160 => $expand!(-3032),
5168 => $expand!(-3024),
5176 => $expand!(-3016),
5184 => $expand!(-3008),
5192 => $expand!(-3000),
5200 => $expand!(-2992),
5208 => $expand!(-2984),
5216 => $expand!(-2976),
5224 => $expand!(-2968),
5232 => $expand!(-2960),
5240 => $expand!(-2952),
5248 => $expand!(-2944),
5256 => $expand!(-2936),
5264 => $expand!(-2928),
5272 => $expand!(-2920),
5280 => $expand!(-2912),
5288 => $expand!(-2904),
5296 => $expand!(-2896),
5304 => $expand!(-2888),
5312 => $expand!(-2880),
5320 => $expand!(-2872),
5328 => $expand!(-2864),
5336 => $expand!(-2856),
5344 => $expand!(-2848),
5352 => $expand!(-2840),
5360 => $expand!(-2832),
5368 => $expand!(-2824),
5376 => $expand!(-2816),
5384 => $expand!(-2808),
5392 => $expand!(-2800),
5400 => $expand!(-2792),
5408 => $expand!(-2784),
5416 => $expand!(-2776),
5424 => $expand!(-2768),
5432 => $expand!(-2760),
5440 => $expand!(-2752),
5448 => $expand!(-2744),
5456 => $expand!(-2736),
5464 => $expand!(-2728),
5472 => $expand!(-2720),
5480 => $expand!(-2712),
5488 => $expand!(-2704),
5496 => $expand!(-2696),
5504 => $expand!(-2688),
5512 => $expand!(-2680),
5520 => $expand!(-2672),
5528 => $expand!(-2664),
5536 => $expand!(-2656),
5544 => $expand!(-2648),
5552 => $expand!(-2640),
5560 => $expand!(-2632),
5568 => $expand!(-2624),
5576 => $expand!(-2616),
5584 => $expand!(-2608),
5592 => $expand!(-2600),
5600 => $expand!(-2592),
5608 => $expand!(-2584),
5616 => $expand!(-2576),
5624 => $expand!(-2568),
5632 => $expand!(-2560),
5640 => $expand!(-2552),
5648 => $expand!(-2544),
5656 => $expand!(-2536),
5664 => $expand!(-2528),
5672 => $expand!(-2520),
5680 => $expand!(-2512),
5688 => $expand!(-2504),
5696 => $expand!(-2496),
5704 => $expand!(-2488),
5712 => $expand!(-2480),
5720 => $expand!(-2472),
5728 => $expand!(-2464),
5736 => $expand!(-2456),
5744 => $expand!(-2448),
5752 => $expand!(-2440),
5760 => $expand!(-2432),
5768 => $expand!(-2424),
5776 => $expand!(-2416),
5784 => $expand!(-2408),
5792 => $expand!(-2400),
5800 => $expand!(-2392),
5808 => $expand!(-2384),
5816 => $expand!(-2376),
5824 => $expand!(-2368),
5832 => $expand!(-2360),
5840 => $expand!(-2352),
5848 => $expand!(-2344),
5856 => $expand!(-2336),
5864 => $expand!(-2328),
5872 => $expand!(-2320),
5880 => $expand!(-2312),
5888 => $expand!(-2304),
5896 => $expand!(-2296),
5904 => $expand!(-2288),
5912 => $expand!(-2280),
5920 => $expand!(-2272),
5928 => $expand!(-2264),
5936 => $expand!(-2256),
5944 => $expand!(-2248),
5952 => $expand!(-2240),
5960 => $expand!(-2232),
5968 => $expand!(-2224),
5976 => $expand!(-2216),
5984 => $expand!(-2208),
5992 => $expand!(-2200),
6000 => $expand!(-2192),
6008 => $expand!(-2184),
6016 => $expand!(-2176),
6024 => $expand!(-2168),
6032 => $expand!(-2160),
6040 => $expand!(-2152),
6048 => $expand!(-2144),
6056 => $expand!(-2136),
6064 => $expand!(-2128),
6072 => $expand!(-2120),
6080 => $expand!(-2112),
6088 => $expand!(-2104),
6096 => $expand!(-2096),
6104 => $expand!(-2088),
6112 => $expand!(-2080),
6120 => $expand!(-2072),
6128 => $expand!(-2064),
6136 => $expand!(-2056),
6144 => $expand!(-2048),
6152 => $expand!(-2040),
6160 => $expand!(-2032),
6168 => $expand!(-2024),
6176 => $expand!(-2016),
6184 => $expand!(-2008),
6192 => $expand!(-2000),
6200 => $expand!(-1992),
6208 => $expand!(-1984),
6216 => $expand!(-1976),
6224 => $expand!(-1968),
6232 => $expand!(-1960),
6240 => $expand!(-1952),
6248 => $expand!(-1944),
6256 => $expand!(-1936),
6264 => $expand!(-1928),
6272 => $expand!(-1920),
6280 => $expand!(-1912),
6288 => $expand!(-1904),
6296 => $expand!(-1896),
6304 => $expand!(-1888),
6312 => $expand!(-1880),
6320 => $expand!(-1872),
6328 => $expand!(-1864),
6336 => $expand!(-1856),
6344 => $expand!(-1848),
6352 => $expand!(-1840),
6360 => $expand!(-1832),
6368 => $expand!(-1824),
6376 => $expand!(-1816),
6384 => $expand!(-1808),
6392 => $expand!(-1800),
6400 => $expand!(-1792),
6408 => $expand!(-1784),
6416 => $expand!(-1776),
6424 => $expand!(-1768),
6432 => $expand!(-1760),
6440 => $expand!(-1752),
6448 => $expand!(-1744),
6456 => $expand!(-1736),
6464 => $expand!(-1728),
6472 => $expand!(-1720),
6480 => $expand!(-1712),
6488 => $expand!(-1704),
6496 => $expand!(-1696),
6504 => $expand!(-1688),
6512 => $expand!(-1680),
6520 => $expand!(-1672),
6528 => $expand!(-1664),
6536 => $expand!(-1656),
6544 => $expand!(-1648),
6552 => $expand!(-1640),
6560 => $expand!(-1632),
6568 => $expand!(-1624),
6576 => $expand!(-1616),
6584 => $expand!(-1608),
6592 => $expand!(-1600),
6600 => $expand!(-1592),
6608 => $expand!(-1584),
6616 => $expand!(-1576),
6624 => $expand!(-1568),
6632 => $expand!(-1560),
6640 => $expand!(-1552),
6648 => $expand!(-1544),
6656 => $expand!(-1536),
6664 => $expand!(-1528),
6672 => $expand!(-1520),
6680 => $expand!(-1512),
6688 => $expand!(-1504),
6696 => $expand!(-1496),
6704 => $expand!(-1488),
6712 => $expand!(-1480),
6720 => $expand!(-1472),
6728 => $expand!(-1464),
6736 => $expand!(-1456),
6744 => $expand!(-1448),
6752 => $expand!(-1440),
6760 => $expand!(-1432),
6768 => $expand!(-1424),
6776 => $expand!(-1416),
6784 => $expand!(-1408),
6792 => $expand!(-1400),
6800 => $expand!(-1392),
6808 => $expand!(-1384),
6816 => $expand!(-1376),
6824 => $expand!(-1368),
6832 => $expand!(-1360),
6840 => $expand!(-1352),
6848 => $expand!(-1344),
6856 => $expand!(-1336),
6864 => $expand!(-1328),
6872 => $expand!(-1320),
6880 => $expand!(-1312),
6888 => $expand!(-1304),
6896 => $expand!(-1296),
6904 => $expand!(-1288),
6912 => $expand!(-1280),
6920 => $expand!(-1272),
6928 => $expand!(-1264),
6936 => $expand!(-1256),
6944 => $expand!(-1248),
6952 => $expand!(-1240),
6960 => $expand!(-1232),
6968 => $expand!(-1224),
6976 => $expand!(-1216),
6984 => $expand!(-1208),
6992 => $expand!(-1200),
6900 => $expand!(-1192),
7008 => $expand!(-1184),
7016 => $expand!(-1176),
7024 => $expand!(-1168),
7032 => $expand!(-1160),
7040 => $expand!(-1152),
7048 => $expand!(-1144),
7056 => $expand!(-1136),
7064 => $expand!(-1128),
7072 => $expand!(-1120),
7080 => $expand!(-1112),
7088 => $expand!(-1104),
7096 => $expand!(-1096),
7104 => $expand!(-1088),
7112 => $expand!(-1080),
7120 => $expand!(-1072),
7128 => $expand!(-1064),
7136 => $expand!(-1056),
7144 => $expand!(-1048),
7152 => $expand!(-1040),
7160 => $expand!(-1032),
7168 => $expand!(-1024),
7176 => $expand!(-1016),
7184 => $expand!(-1008),
7192 => $expand!(-1000),
7100 => $expand!(-992),
7208 => $expand!(-984),
7216 => $expand!(-976),
7224 => $expand!(-968),
7232 => $expand!(-960),
7240 => $expand!(-952),
7248 => $expand!(-944),
7256 => $expand!(-936),
7264 => $expand!(-928),
7272 => $expand!(-920),
7280 => $expand!(-912),
7288 => $expand!(-904),
7296 => $expand!(-896),
7304 => $expand!(-888),
7312 => $expand!(-880),
7320 => $expand!(-872),
7328 => $expand!(-864),
7336 => $expand!(-856),
7344 => $expand!(-848),
7352 => $expand!(-840),
7360 => $expand!(-832),
7368 => $expand!(-824),
7376 => $expand!(-816),
7384 => $expand!(-808),
7392 => $expand!(-800),
7400 => $expand!(-792),
7408 => $expand!(-784),
7416 => $expand!(-776),
7424 => $expand!(-768),
7432 => $expand!(-760),
7440 => $expand!(-752),
7448 => $expand!(-744),
7456 => $expand!(-736),
7464 => $expand!(-728),
7472 => $expand!(-720),
7480 => $expand!(-712),
7488 => $expand!(-704),
7496 => $expand!(-696),
7504 => $expand!(-688),
7512 => $expand!(-680),
7520 => $expand!(-672),
7528 => $expand!(-664),
7536 => $expand!(-656),
7544 => $expand!(-648),
7552 => $expand!(-640),
7560 => $expand!(-632),
7568 => $expand!(-624),
7576 => $expand!(-616),
7584 => $expand!(-608),
7592 => $expand!(-600),
7600 => $expand!(-592),
7608 => $expand!(-584),
7616 => $expand!(-576),
7624 => $expand!(-568),
7632 => $expand!(-560),
7640 => $expand!(-552),
7648 => $expand!(-544),
7656 => $expand!(-536),
7664 => $expand!(-528),
7672 => $expand!(-520),
7680 => $expand!(-512),
7688 => $expand!(-504),
7696 => $expand!(-496),
7704 => $expand!(-488),
7712 => $expand!(-480),
7720 => $expand!(-472),
7728 => $expand!(-464),
7736 => $expand!(-456),
7744 => $expand!(-448),
7752 => $expand!(-440),
7760 => $expand!(-432),
7768 => $expand!(-424),
7776 => $expand!(-416),
7784 => $expand!(-408),
7792 => $expand!(-400),
7700 => $expand!(-392),
7808 => $expand!(-384),
7816 => $expand!(-376),
7824 => $expand!(-368),
7832 => $expand!(-360),
7840 => $expand!(-352),
7848 => $expand!(-344),
7856 => $expand!(-336),
7864 => $expand!(-328),
7872 => $expand!(-320),
7880 => $expand!(-312),
7888 => $expand!(-304),
7896 => $expand!(-296),
7904 => $expand!(-288),
7912 => $expand!(-280),
7920 => $expand!(-272),
7928 => $expand!(-264),
7936 => $expand!(-256),
7944 => $expand!(-248),
7952 => $expand!(-240),
7960 => $expand!(-232),
7968 => $expand!(-224),
7976 => $expand!(-216),
7984 => $expand!(-208),
7992 => $expand!(-200),
8000 => $expand!(-192),
8008 => $expand!(-184),
8016 => $expand!(-176),
8024 => $expand!(-168),
8032 => $expand!(-160),
8040 => $expand!(-152),
8048 => $expand!(-144),
8056 => $expand!(-136),
8064 => $expand!(-128),
8072 => $expand!(-120),
8080 => $expand!(-112),
8088 => $expand!(-104),
8096 => $expand!(-96),
8104 => $expand!(-88),
8112 => $expand!(-80),
8120 => $expand!(-72),
8128 => $expand!(-64),
8136 => $expand!(-56),
8144 => $expand!(-48),
8152 => $expand!(-40),
8160 => $expand!(-32),
8168 => $expand!(-24),
8176 => $expand!(-16),
8184 => $expand!(-8),
_ => $expand!(4088),
}
};
}
//immediate value: -2048:2044
macro_rules! constify_imm_s12 {
($imm_s12:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm_s12) & 0b1111_1111_1111 {
0 => $expand!(0),
4 => $expand!(4),
8 => $expand!(8),
12 => $expand!(12),
16 => $expand!(16),
20 => $expand!(20),
24 => $expand!(24),
28 => $expand!(28),
32 => $expand!(32),
36 => $expand!(36),
40 => $expand!(40),
44 => $expand!(44),
48 => $expand!(48),
52 => $expand!(52),
56 => $expand!(56),
60 => $expand!(60),
64 => $expand!(64),
68 => $expand!(68),
72 => $expand!(72),
76 => $expand!(76),
80 => $expand!(80),
84 => $expand!(84),
88 => $expand!(88),
92 => $expand!(92),
96 => $expand!(96),
100 => $expand!(100),
104 => $expand!(104),
108 => $expand!(108),
112 => $expand!(112),
116 => $expand!(116),
120 => $expand!(120),
124 => $expand!(124),
128 => $expand!(128),
132 => $expand!(132),
136 => $expand!(136),
140 => $expand!(140),
144 => $expand!(144),
148 => $expand!(148),
152 => $expand!(152),
156 => $expand!(156),
160 => $expand!(160),
164 => $expand!(164),
168 => $expand!(168),
172 => $expand!(172),
176 => $expand!(176),
180 => $expand!(180),
184 => $expand!(184),
188 => $expand!(188),
192 => $expand!(192),
196 => $expand!(196),
200 => $expand!(200),
204 => $expand!(204),
208 => $expand!(208),
212 => $expand!(212),
216 => $expand!(216),
220 => $expand!(220),
224 => $expand!(224),
228 => $expand!(228),
232 => $expand!(232),
236 => $expand!(236),
240 => $expand!(240),
244 => $expand!(244),
248 => $expand!(248),
252 => $expand!(252),
256 => $expand!(256),
260 => $expand!(260),
264 => $expand!(264),
268 => $expand!(268),
272 => $expand!(272),
276 => $expand!(276),
280 => $expand!(280),
284 => $expand!(284),
288 => $expand!(288),
292 => $expand!(292),
296 => $expand!(296),
300 => $expand!(300),
304 => $expand!(304),
308 => $expand!(308),
312 => $expand!(312),
316 => $expand!(316),
320 => $expand!(320),
324 => $expand!(324),
328 => $expand!(328),
332 => $expand!(332),
336 => $expand!(336),
340 => $expand!(340),
344 => $expand!(344),
348 => $expand!(348),
352 => $expand!(352),
356 => $expand!(356),
360 => $expand!(360),
364 => $expand!(364),
368 => $expand!(368),
372 => $expand!(372),
376 => $expand!(376),
380 => $expand!(380),
384 => $expand!(384),
388 => $expand!(388),
392 => $expand!(392),
396 => $expand!(396),
400 => $expand!(400),
404 => $expand!(404),
408 => $expand!(408),
412 => $expand!(412),
416 => $expand!(416),
420 => $expand!(420),
424 => $expand!(424),
428 => $expand!(428),
432 => $expand!(432),
436 => $expand!(436),
440 => $expand!(440),
444 => $expand!(444),
448 => $expand!(448),
452 => $expand!(452),
456 => $expand!(456),
460 => $expand!(460),
464 => $expand!(464),
468 => $expand!(468),
472 => $expand!(472),
476 => $expand!(476),
480 => $expand!(480),
484 => $expand!(484),
488 => $expand!(488),
492 => $expand!(492),
496 => $expand!(496),
500 => $expand!(500),
504 => $expand!(504),
508 => $expand!(508),
512 => $expand!(512),
516 => $expand!(516),
520 => $expand!(520),
524 => $expand!(524),
528 => $expand!(528),
532 => $expand!(532),
536 => $expand!(536),
540 => $expand!(540),
544 => $expand!(544),
548 => $expand!(548),
552 => $expand!(552),
556 => $expand!(556),
560 => $expand!(560),
564 => $expand!(564),
568 => $expand!(568),
572 => $expand!(572),
576 => $expand!(576),
580 => $expand!(580),
584 => $expand!(584),
588 => $expand!(588),
592 => $expand!(592),
596 => $expand!(596),
600 => $expand!(600),
604 => $expand!(604),
608 => $expand!(608),
612 => $expand!(612),
616 => $expand!(616),
620 => $expand!(620),
624 => $expand!(624),
628 => $expand!(628),
632 => $expand!(632),
636 => $expand!(636),
640 => $expand!(640),
644 => $expand!(644),
648 => $expand!(648),
652 => $expand!(652),
656 => $expand!(656),
660 => $expand!(660),
664 => $expand!(664),
668 => $expand!(668),
672 => $expand!(672),
676 => $expand!(676),
680 => $expand!(680),
684 => $expand!(684),
688 => $expand!(688),
692 => $expand!(692),
696 => $expand!(696),
700 => $expand!(700),
704 => $expand!(704),
708 => $expand!(708),
712 => $expand!(712),
716 => $expand!(716),
720 => $expand!(720),
724 => $expand!(724),
728 => $expand!(728),
732 => $expand!(732),
736 => $expand!(736),
740 => $expand!(740),
744 => $expand!(744),
748 => $expand!(748),
752 => $expand!(752),
756 => $expand!(756),
760 => $expand!(760),
764 => $expand!(764),
768 => $expand!(768),
772 => $expand!(772),
776 => $expand!(776),
780 => $expand!(780),
784 => $expand!(784),
788 => $expand!(788),
792 => $expand!(792),
800 => $expand!(800),
804 => $expand!(804),
808 => $expand!(808),
812 => $expand!(812),
816 => $expand!(816),
820 => $expand!(820),
824 => $expand!(824),
828 => $expand!(828),
832 => $expand!(832),
836 => $expand!(836),
840 => $expand!(840),
844 => $expand!(844),
848 => $expand!(848),
852 => $expand!(852),
856 => $expand!(856),
860 => $expand!(860),
864 => $expand!(864),
868 => $expand!(868),
872 => $expand!(872),
876 => $expand!(876),
880 => $expand!(880),
884 => $expand!(884),
888 => $expand!(888),
892 => $expand!(892),
896 => $expand!(896),
900 => $expand!(900),
904 => $expand!(904),
908 => $expand!(908),
912 => $expand!(912),
916 => $expand!(916),
920 => $expand!(920),
924 => $expand!(924),
928 => $expand!(928),
932 => $expand!(932),
936 => $expand!(936),
940 => $expand!(940),
944 => $expand!(944),
948 => $expand!(948),
952 => $expand!(952),
956 => $expand!(956),
960 => $expand!(960),
964 => $expand!(964),
968 => $expand!(968),
972 => $expand!(972),
976 => $expand!(976),
980 => $expand!(980),
984 => $expand!(984),
988 => $expand!(988),
992 => $expand!(992),
996 => $expand!(996),
1000 => $expand!(1000),
1004 => $expand!(1004),
1008 => $expand!(1008),
1012 => $expand!(1012),
1016 => $expand!(1016),
1020 => $expand!(1020),
1024 => $expand!(1024),
1028 => $expand!(1028),
1032 => $expand!(1032),
1036 => $expand!(1036),
1040 => $expand!(1040),
1044 => $expand!(1044),
1048 => $expand!(1048),
1052 => $expand!(1052),
1056 => $expand!(1056),
1060 => $expand!(1060),
1064 => $expand!(1064),
1068 => $expand!(1068),
1072 => $expand!(1072),
1076 => $expand!(1076),
1080 => $expand!(1080),
1084 => $expand!(1084),
1088 => $expand!(1088),
1092 => $expand!(1092),
1096 => $expand!(1096),
1100 => $expand!(1100),
1104 => $expand!(1104),
1108 => $expand!(1108),
1112 => $expand!(1112),
1116 => $expand!(1116),
1120 => $expand!(1120),
1124 => $expand!(1124),
1128 => $expand!(1128),
1132 => $expand!(1132),
1136 => $expand!(1136),
1140 => $expand!(1140),
1144 => $expand!(1144),
1148 => $expand!(1148),
1152 => $expand!(1152),
1156 => $expand!(1156),
1160 => $expand!(1160),
1164 => $expand!(1164),
1168 => $expand!(1168),
1172 => $expand!(1172),
1176 => $expand!(1176),
1180 => $expand!(1180),
1184 => $expand!(1184),
1188 => $expand!(1188),
1192 => $expand!(1192),
1196 => $expand!(1196),
1200 => $expand!(1200),
1204 => $expand!(1204),
1208 => $expand!(1208),
1212 => $expand!(1212),
1216 => $expand!(1216),
1220 => $expand!(1220),
1224 => $expand!(1224),
1228 => $expand!(1228),
1232 => $expand!(1232),
1236 => $expand!(1236),
1240 => $expand!(1240),
1244 => $expand!(1244),
1248 => $expand!(1248),
1252 => $expand!(1252),
1256 => $expand!(1256),
1260 => $expand!(1260),
1264 => $expand!(1264),
1268 => $expand!(1268),
1272 => $expand!(1272),
1276 => $expand!(1276),
1280 => $expand!(1280),
1284 => $expand!(1284),
1288 => $expand!(1288),
1292 => $expand!(1292),
1296 => $expand!(1296),
1300 => $expand!(1300),
1304 => $expand!(1304),
1308 => $expand!(1308),
1312 => $expand!(1312),
1316 => $expand!(1316),
1320 => $expand!(1320),
1324 => $expand!(1324),
1328 => $expand!(1328),
1332 => $expand!(1332),
1336 => $expand!(1336),
1340 => $expand!(1340),
1344 => $expand!(1344),
1348 => $expand!(1348),
1352 => $expand!(1352),
1356 => $expand!(1356),
1360 => $expand!(1360),
1364 => $expand!(1364),
1368 => $expand!(1368),
1372 => $expand!(1372),
1376 => $expand!(1376),
1380 => $expand!(1380),
1384 => $expand!(1384),
1388 => $expand!(1388),
1392 => $expand!(1392),
1396 => $expand!(1396),
1400 => $expand!(1400),
1404 => $expand!(1404),
1408 => $expand!(1408),
1412 => $expand!(1412),
1416 => $expand!(1416),
1420 => $expand!(1420),
1424 => $expand!(1424),
1428 => $expand!(1428),
1432 => $expand!(1432),
1436 => $expand!(1436),
1440 => $expand!(1440),
1444 => $expand!(1444),
1448 => $expand!(1448),
1452 => $expand!(1452),
1456 => $expand!(1456),
1460 => $expand!(1460),
1464 => $expand!(1464),
1468 => $expand!(1468),
1472 => $expand!(1472),
1476 => $expand!(1476),
1480 => $expand!(1480),
1484 => $expand!(1484),
1488 => $expand!(1488),
1492 => $expand!(1492),
1496 => $expand!(1496),
1500 => $expand!(1500),
1504 => $expand!(1504),
1508 => $expand!(1508),
1512 => $expand!(1512),
1516 => $expand!(1516),
1520 => $expand!(1520),
1524 => $expand!(1524),
1528 => $expand!(1528),
1532 => $expand!(1532),
1536 => $expand!(1536),
1540 => $expand!(1540),
1544 => $expand!(1544),
1548 => $expand!(1548),
1552 => $expand!(1552),
1556 => $expand!(1556),
1560 => $expand!(1560),
1564 => $expand!(1564),
1568 => $expand!(1568),
1572 => $expand!(1572),
1576 => $expand!(1576),
1580 => $expand!(1580),
1584 => $expand!(1584),
1588 => $expand!(1588),
1592 => $expand!(1592),
1596 => $expand!(1596),
1600 => $expand!(1600),
1604 => $expand!(1604),
1608 => $expand!(1608),
1612 => $expand!(1612),
1616 => $expand!(1616),
1620 => $expand!(1620),
1624 => $expand!(1624),
1628 => $expand!(1628),
1632 => $expand!(1632),
1636 => $expand!(1636),
1640 => $expand!(1640),
1644 => $expand!(1644),
1648 => $expand!(1648),
1652 => $expand!(1652),
1656 => $expand!(1656),
1660 => $expand!(1660),
1664 => $expand!(1664),
1668 => $expand!(1668),
1672 => $expand!(1672),
1676 => $expand!(1676),
1680 => $expand!(1680),
1684 => $expand!(1684),
1688 => $expand!(1688),
1692 => $expand!(1692),
1696 => $expand!(1696),
1700 => $expand!(1700),
1704 => $expand!(1704),
1708 => $expand!(1708),
1712 => $expand!(1712),
1716 => $expand!(1716),
1720 => $expand!(1720),
1724 => $expand!(1724),
1728 => $expand!(1728),
1732 => $expand!(1732),
1736 => $expand!(1736),
1740 => $expand!(1740),
1744 => $expand!(1744),
1748 => $expand!(1748),
1752 => $expand!(1752),
1756 => $expand!(1756),
1760 => $expand!(1760),
1764 => $expand!(1764),
1768 => $expand!(1768),
1772 => $expand!(1772),
1776 => $expand!(1776),
1780 => $expand!(1780),
1784 => $expand!(1784),
1788 => $expand!(1788),
1792 => $expand!(1792),
1796 => $expand!(1796),
1800 => $expand!(1800),
1804 => $expand!(1804),
1808 => $expand!(1808),
1812 => $expand!(1812),
1816 => $expand!(1816),
1820 => $expand!(1820),
1824 => $expand!(1824),
1828 => $expand!(1828),
1832 => $expand!(1832),
1836 => $expand!(1836),
1840 => $expand!(1840),
1844 => $expand!(1844),
1848 => $expand!(1848),
1852 => $expand!(1852),
1856 => $expand!(1856),
1860 => $expand!(1860),
1864 => $expand!(1864),
1868 => $expand!(1868),
1872 => $expand!(1872),
1876 => $expand!(1876),
1880 => $expand!(1880),
1884 => $expand!(1884),
1888 => $expand!(1888),
1892 => $expand!(1892),
1896 => $expand!(1896),
1900 => $expand!(1900),
1904 => $expand!(1904),
1908 => $expand!(1908),
1912 => $expand!(1912),
1916 => $expand!(1916),
1920 => $expand!(1920),
1924 => $expand!(1924),
1928 => $expand!(1928),
1932 => $expand!(1932),
1936 => $expand!(1936),
1940 => $expand!(1940),
1944 => $expand!(1944),
1948 => $expand!(1948),
1952 => $expand!(1952),
1956 => $expand!(1956),
1960 => $expand!(1960),
1964 => $expand!(1964),
1968 => $expand!(1968),
1972 => $expand!(1972),
1976 => $expand!(1976),
1980 => $expand!(1980),
1984 => $expand!(1984),
1988 => $expand!(1988),
1992 => $expand!(1992),
1996 => $expand!(1996),
2000 => $expand!(2000),
2004 => $expand!(2004),
2008 => $expand!(2008),
2012 => $expand!(2012),
2016 => $expand!(2016),
2020 => $expand!(2020),
2024 => $expand!(2024),
2028 => $expand!(2028),
2032 => $expand!(2032),
2036 => $expand!(2036),
2040 => $expand!(2040),
2048 => $expand!(-2048),
2052 => $expand!(-2044),
2056 => $expand!(-2040),
2060 => $expand!(-2036),
2064 => $expand!(-2032),
2068 => $expand!(-2028),
2072 => $expand!(-2024),
2076 => $expand!(-2020),
2080 => $expand!(-2016),
2084 => $expand!(-2012),
2088 => $expand!(-2008),
2092 => $expand!(-2004),
2096 => $expand!(-2000),
2100 => $expand!(-1996),
2104 => $expand!(-1992),
2108 => $expand!(-1988),
2112 => $expand!(-1984),
2116 => $expand!(-1980),
2120 => $expand!(-1976),
2124 => $expand!(-1972),
2128 => $expand!(-1968),
2132 => $expand!(-1964),
2136 => $expand!(-1960),
2140 => $expand!(-1956),
2144 => $expand!(-1952),
2148 => $expand!(-1948),
2152 => $expand!(-1944),
2156 => $expand!(-1940),
2160 => $expand!(-1936),
2164 => $expand!(-1932),
2168 => $expand!(-1928),
2172 => $expand!(-1924),
2176 => $expand!(-1920),
2180 => $expand!(-1916),
2184 => $expand!(-1912),
2188 => $expand!(-1908),
2192 => $expand!(-1904),
2196 => $expand!(-1900),
2200 => $expand!(-1896),
2204 => $expand!(-1892),
2208 => $expand!(-1888),
2212 => $expand!(-1884),
2216 => $expand!(-1880),
2220 => $expand!(-1876),
2224 => $expand!(-1872),
2228 => $expand!(-1868),
2232 => $expand!(-1864),
2236 => $expand!(-1860),
2240 => $expand!(-1856),
2244 => $expand!(-1852),
2248 => $expand!(-1848),
2252 => $expand!(-1844),
2256 => $expand!(-1840),
2260 => $expand!(-1836),
2264 => $expand!(-1832),
2268 => $expand!(-1828),
2272 => $expand!(-1824),
2276 => $expand!(-1820),
2280 => $expand!(-1816),
2284 => $expand!(-1812),
2288 => $expand!(-1808),
2292 => $expand!(-1804),
2296 => $expand!(-1800),
2300 => $expand!(-1796),
2304 => $expand!(-1792),
2308 => $expand!(-1788),
2312 => $expand!(-1784),
2316 => $expand!(-1780),
2320 => $expand!(-1776),
2324 => $expand!(-1772),
2328 => $expand!(-1768),
2332 => $expand!(-1764),
2336 => $expand!(-1760),
2340 => $expand!(-1756),
2344 => $expand!(-1752),
2348 => $expand!(-1748),
2352 => $expand!(-1744),
2356 => $expand!(-1740),
2360 => $expand!(-1736),
2364 => $expand!(-1732),
2368 => $expand!(-1728),
2372 => $expand!(-1724),
2376 => $expand!(-1720),
2380 => $expand!(-1716),
2384 => $expand!(-1712),
2388 => $expand!(-1708),
2392 => $expand!(-1704),
2396 => $expand!(-1700),
2400 => $expand!(-1696),
2404 => $expand!(-1692),
2408 => $expand!(-1688),
2412 => $expand!(-1684),
2416 => $expand!(-1680),
2420 => $expand!(-1676),
2424 => $expand!(-1672),
2428 => $expand!(-1668),
2432 => $expand!(-1664),
2436 => $expand!(-1660),
2440 => $expand!(-1656),
2444 => $expand!(-1652),
2448 => $expand!(-1648),
2452 => $expand!(-1644),
2456 => $expand!(-1640),
2460 => $expand!(-1636),
2464 => $expand!(-1632),
2468 => $expand!(-1628),
2472 => $expand!(-1624),
2476 => $expand!(-1620),
2480 => $expand!(-1616),
2484 => $expand!(-1612),
2488 => $expand!(-1608),
2492 => $expand!(-1604),
2496 => $expand!(-1600),
2500 => $expand!(-1596),
2504 => $expand!(-1592),
2508 => $expand!(-1588),
2512 => $expand!(-1584),
2516 => $expand!(-1580),
2520 => $expand!(-1576),
2524 => $expand!(-1572),
2528 => $expand!(-1568),
2532 => $expand!(-1564),
2536 => $expand!(-1560),
2540 => $expand!(-1556),
2544 => $expand!(-1552),
2548 => $expand!(-1548),
2552 => $expand!(-1544),
2556 => $expand!(-1540),
2560 => $expand!(-1536),
2564 => $expand!(-1532),
2568 => $expand!(-1528),
2572 => $expand!(-1524),
2576 => $expand!(-1520),
2580 => $expand!(-1516),
2584 => $expand!(-1512),
2588 => $expand!(-1508),
2592 => $expand!(-1504),
2596 => $expand!(-1500),
2600 => $expand!(-1496),
2604 => $expand!(-1492),
2608 => $expand!(-1488),
2612 => $expand!(-1484),
2616 => $expand!(-1480),
2620 => $expand!(-1476),
2624 => $expand!(-1472),
2628 => $expand!(-1468),
2632 => $expand!(-1464),
2636 => $expand!(-1460),
2640 => $expand!(-1456),
2644 => $expand!(-1452),
2648 => $expand!(-1448),
2652 => $expand!(-1444),
2656 => $expand!(-1440),
2660 => $expand!(-1436),
2664 => $expand!(-1432),
2668 => $expand!(-1428),
2672 => $expand!(-1424),
2676 => $expand!(-1420),
2680 => $expand!(-1416),
2684 => $expand!(-1412),
2688 => $expand!(-1408),
2692 => $expand!(-1404),
2696 => $expand!(-1400),
2700 => $expand!(-1396),
2704 => $expand!(-1392),
2708 => $expand!(-1388),
2712 => $expand!(-1384),
2716 => $expand!(-1380),
2720 => $expand!(-1376),
2724 => $expand!(-1372),
2728 => $expand!(-1368),
2732 => $expand!(-1364),
2736 => $expand!(-1360),
2740 => $expand!(-1356),
2744 => $expand!(-1352),
2748 => $expand!(-1348),
2752 => $expand!(-1344),
2756 => $expand!(-1340),
2760 => $expand!(-1336),
2764 => $expand!(-1332),
2768 => $expand!(-1328),
2772 => $expand!(-1324),
2776 => $expand!(-1320),
2780 => $expand!(-1316),
2784 => $expand!(-1312),
2788 => $expand!(-1308),
2792 => $expand!(-1304),
2796 => $expand!(-1300),
2800 => $expand!(-1296),
2804 => $expand!(-1292),
2808 => $expand!(-1288),
2812 => $expand!(-1284),
2816 => $expand!(-1280),
2820 => $expand!(-1276),
2824 => $expand!(-1272),
2828 => $expand!(-1268),
2832 => $expand!(-1264),
2836 => $expand!(-1260),
2840 => $expand!(-1256),
2844 => $expand!(-1252),
2848 => $expand!(-1248),
2852 => $expand!(-1244),
2856 => $expand!(-1240),
2860 => $expand!(-1236),
2864 => $expand!(-1232),
2868 => $expand!(-1228),
2872 => $expand!(-1224),
2876 => $expand!(-1220),
2880 => $expand!(-1216),
2884 => $expand!(-1212),
2888 => $expand!(-1208),
2892 => $expand!(-1204),
2896 => $expand!(-1200),
2900 => $expand!(-1196),
2904 => $expand!(-1192),
2908 => $expand!(-1188),
2912 => $expand!(-1184),
2916 => $expand!(-1180),
2920 => $expand!(-1176),
2924 => $expand!(-1172),
2928 => $expand!(-1168),
2932 => $expand!(-1164),
2936 => $expand!(-1160),
2940 => $expand!(-1156),
2944 => $expand!(-1152),
2948 => $expand!(-1148),
2952 => $expand!(-1144),
2956 => $expand!(-1140),
2960 => $expand!(-1136),
2964 => $expand!(-1132),
2968 => $expand!(-1128),
2972 => $expand!(-1124),
2976 => $expand!(-1120),
2980 => $expand!(-1116),
2984 => $expand!(-1112),
2988 => $expand!(-1108),
2992 => $expand!(-1104),
2996 => $expand!(-1100),
3000 => $expand!(-1096),
3004 => $expand!(-1092),
3008 => $expand!(-1088),
3012 => $expand!(-1084),
3016 => $expand!(-1080),
3020 => $expand!(-1076),
3024 => $expand!(-1072),
3028 => $expand!(-1068),
3032 => $expand!(-1064),
3036 => $expand!(-1060),
3040 => $expand!(-1056),
3044 => $expand!(-1052),
3048 => $expand!(-1048),
3052 => $expand!(-1044),
3056 => $expand!(-1040),
3060 => $expand!(-1036),
3064 => $expand!(-1032),
3068 => $expand!(-1028),
3072 => $expand!(-1024),
3076 => $expand!(-1020),
3080 => $expand!(-1016),
3084 => $expand!(-1012),
3088 => $expand!(-1008),
3092 => $expand!(-1004),
3096 => $expand!(-1000),
3100 => $expand!(-996),
3104 => $expand!(-992),
3108 => $expand!(-988),
3112 => $expand!(-984),
3116 => $expand!(-980),
3120 => $expand!(-976),
3124 => $expand!(-972),
3128 => $expand!(-968),
3132 => $expand!(-964),
3136 => $expand!(-960),
3140 => $expand!(-956),
3144 => $expand!(-952),
3148 => $expand!(-948),
3152 => $expand!(-944),
3156 => $expand!(-940),
3160 => $expand!(-936),
3164 => $expand!(-932),
3168 => $expand!(-928),
3172 => $expand!(-924),
3176 => $expand!(-920),
3180 => $expand!(-916),
3184 => $expand!(-912),
3188 => $expand!(-908),
3192 => $expand!(-904),
3196 => $expand!(-900),
3200 => $expand!(-896),
3204 => $expand!(-892),
3208 => $expand!(-888),
3212 => $expand!(-884),
3216 => $expand!(-880),
3220 => $expand!(-876),
3224 => $expand!(-872),
3228 => $expand!(-868),
3232 => $expand!(-864),
3236 => $expand!(-860),
3240 => $expand!(-856),
3244 => $expand!(-852),
3248 => $expand!(-848),
3252 => $expand!(-844),
3256 => $expand!(-840),
3260 => $expand!(-836),
3264 => $expand!(-832),
3268 => $expand!(-828),
3272 => $expand!(-824),
3276 => $expand!(-820),
3280 => $expand!(-816),
3284 => $expand!(-812),
3288 => $expand!(-808),
3292 => $expand!(-804),
3296 => $expand!(-800),
3300 => $expand!(-796),
3304 => $expand!(-792),
3308 => $expand!(-788),
3312 => $expand!(-784),
3316 => $expand!(-780),
3320 => $expand!(-776),
3324 => $expand!(-772),
3328 => $expand!(-768),
3332 => $expand!(-764),
3336 => $expand!(-760),
3340 => $expand!(-756),
3344 => $expand!(-752),
3348 => $expand!(-748),
3352 => $expand!(-744),
3356 => $expand!(-740),
3360 => $expand!(-736),
3364 => $expand!(-732),
3368 => $expand!(-728),
3372 => $expand!(-724),
3376 => $expand!(-720),
3380 => $expand!(-716),
3384 => $expand!(-712),
3388 => $expand!(-708),
3392 => $expand!(-704),
3396 => $expand!(-700),
3400 => $expand!(-696),
3404 => $expand!(-692),
3408 => $expand!(-688),
3412 => $expand!(-684),
3416 => $expand!(-680),
3420 => $expand!(-676),
3424 => $expand!(-672),
3428 => $expand!(-668),
3432 => $expand!(-664),
3436 => $expand!(-660),
3440 => $expand!(-656),
3444 => $expand!(-652),
3448 => $expand!(-648),
3452 => $expand!(-644),
3456 => $expand!(-640),
3460 => $expand!(-636),
3464 => $expand!(-632),
3468 => $expand!(-628),
3472 => $expand!(-624),
3476 => $expand!(-620),
3480 => $expand!(-616),
3484 => $expand!(-612),
3488 => $expand!(-608),
3492 => $expand!(-604),
3496 => $expand!(-600),
3500 => $expand!(-596),
3504 => $expand!(-592),
3508 => $expand!(-588),
3512 => $expand!(-584),
3516 => $expand!(-580),
3520 => $expand!(-576),
3524 => $expand!(-572),
3528 => $expand!(-568),
3532 => $expand!(-564),
3536 => $expand!(-560),
3540 => $expand!(-556),
3544 => $expand!(-552),
3548 => $expand!(-548),
3552 => $expand!(-544),
3556 => $expand!(-540),
3560 => $expand!(-536),
3564 => $expand!(-532),
3568 => $expand!(-528),
3572 => $expand!(-524),
3576 => $expand!(-520),
3580 => $expand!(-516),
3584 => $expand!(-512),
3588 => $expand!(-508),
3592 => $expand!(-504),
3596 => $expand!(-500),
3600 => $expand!(-496),
3604 => $expand!(-492),
3608 => $expand!(-488),
3612 => $expand!(-484),
3616 => $expand!(-480),
3620 => $expand!(-476),
3624 => $expand!(-472),
3628 => $expand!(-468),
3632 => $expand!(-464),
3636 => $expand!(-460),
3640 => $expand!(-456),
3644 => $expand!(-452),
3648 => $expand!(-448),
3652 => $expand!(-444),
3656 => $expand!(-440),
3660 => $expand!(-436),
3664 => $expand!(-432),
3668 => $expand!(-428),
3672 => $expand!(-424),
3676 => $expand!(-420),
3680 => $expand!(-416),
3684 => $expand!(-412),
3688 => $expand!(-408),
3692 => $expand!(-404),
3696 => $expand!(-400),
3700 => $expand!(-396),
3704 => $expand!(-392),
3708 => $expand!(-388),
3712 => $expand!(-384),
3716 => $expand!(-380),
3720 => $expand!(-376),
3724 => $expand!(-372),
3728 => $expand!(-368),
3732 => $expand!(-364),
3736 => $expand!(-360),
3740 => $expand!(-356),
3744 => $expand!(-352),
3748 => $expand!(-348),
3752 => $expand!(-344),
3756 => $expand!(-340),
3760 => $expand!(-336),
3764 => $expand!(-332),
3768 => $expand!(-328),
3772 => $expand!(-324),
3776 => $expand!(-320),
3780 => $expand!(-316),
3784 => $expand!(-312),
3788 => $expand!(-308),
3792 => $expand!(-304),
3796 => $expand!(-300),
3800 => $expand!(-296),
3804 => $expand!(-292),
3808 => $expand!(-288),
3812 => $expand!(-284),
3816 => $expand!(-280),
3820 => $expand!(-276),
3824 => $expand!(-272),
3828 => $expand!(-268),
3832 => $expand!(-264),
3836 => $expand!(-260),
3840 => $expand!(-256),
3844 => $expand!(-252),
3848 => $expand!(-248),
3852 => $expand!(-244),
3856 => $expand!(-240),
3860 => $expand!(-236),
3864 => $expand!(-232),
3868 => $expand!(-228),
3872 => $expand!(-224),
3876 => $expand!(-220),
3880 => $expand!(-216),
3884 => $expand!(-212),
3888 => $expand!(-208),
3892 => $expand!(-204),
3896 => $expand!(-200),
3900 => $expand!(-196),
3904 => $expand!(-192),
3908 => $expand!(-188),
3912 => $expand!(-184),
3916 => $expand!(-180),
3920 => $expand!(-176),
3924 => $expand!(-172),
3928 => $expand!(-168),
3932 => $expand!(-164),
3936 => $expand!(-160),
3940 => $expand!(-156),
3944 => $expand!(-152),
3948 => $expand!(-148),
3952 => $expand!(-144),
3956 => $expand!(-140),
3960 => $expand!(-136),
3964 => $expand!(-132),
3968 => $expand!(-128),
3972 => $expand!(-124),
3976 => $expand!(-120),
3980 => $expand!(-116),
3984 => $expand!(-112),
3988 => $expand!(-108),
3992 => $expand!(-104),
3996 => $expand!(-100),
4000 => $expand!(-96),
4004 => $expand!(-92),
4008 => $expand!(-88),
4012 => $expand!(-84),
4016 => $expand!(-80),
4020 => $expand!(-76),
4024 => $expand!(-72),
4028 => $expand!(-68),
4032 => $expand!(-64),
4036 => $expand!(-60),
4040 => $expand!(-56),
4044 => $expand!(-52),
4048 => $expand!(-48),
4052 => $expand!(-44),
4056 => $expand!(-40),
4060 => $expand!(-36),
4064 => $expand!(-32),
4068 => $expand!(-28),
4072 => $expand!(-24),
4076 => $expand!(-20),
4080 => $expand!(-16),
4084 => $expand!(-12),
4088 => $expand!(-8),
4092 => $expand!(-4),
_ => $expand!(2044),
}
};
}
//immediate value: -1024:1022
macro_rules! constify_imm_s11 {
($imm_s11:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm_s11) & 0b111_1111_1111 {
0 => $expand!(0),
2 => $expand!(2),
4 => $expand!(4),
6 => $expand!(6),
8 => $expand!(8),
10 => $expand!(10),
12 => $expand!(12),
14 => $expand!(14),
16 => $expand!(16),
18 => $expand!(18),
20 => $expand!(20),
22 => $expand!(22),
24 => $expand!(24),
26 => $expand!(26),
28 => $expand!(28),
30 => $expand!(30),
32 => $expand!(32),
34 => $expand!(34),
36 => $expand!(36),
38 => $expand!(38),
40 => $expand!(40),
42 => $expand!(42),
44 => $expand!(44),
46 => $expand!(46),
48 => $expand!(48),
50 => $expand!(50),
52 => $expand!(52),
54 => $expand!(54),
56 => $expand!(56),
58 => $expand!(58),
60 => $expand!(60),
62 => $expand!(62),
64 => $expand!(64),
66 => $expand!(66),
68 => $expand!(68),
70 => $expand!(70),
72 => $expand!(72),
74 => $expand!(74),
76 => $expand!(76),
78 => $expand!(78),
80 => $expand!(80),
82 => $expand!(82),
84 => $expand!(84),
86 => $expand!(86),
88 => $expand!(88),
90 => $expand!(90),
92 => $expand!(92),
94 => $expand!(94),
96 => $expand!(96),
98 => $expand!(98),
100 => $expand!(100),
102 => $expand!(102),
104 => $expand!(104),
106 => $expand!(106),
108 => $expand!(108),
110 => $expand!(110),
112 => $expand!(112),
114 => $expand!(114),
116 => $expand!(116),
118 => $expand!(118),
120 => $expand!(120),
122 => $expand!(122),
124 => $expand!(124),
126 => $expand!(126),
128 => $expand!(128),
130 => $expand!(130),
132 => $expand!(132),
134 => $expand!(134),
136 => $expand!(136),
138 => $expand!(138),
140 => $expand!(140),
142 => $expand!(142),
144 => $expand!(144),
146 => $expand!(146),
148 => $expand!(148),
150 => $expand!(150),
152 => $expand!(152),
154 => $expand!(154),
156 => $expand!(156),
158 => $expand!(158),
160 => $expand!(160),
162 => $expand!(162),
164 => $expand!(164),
166 => $expand!(166),
168 => $expand!(168),
170 => $expand!(170),
172 => $expand!(172),
174 => $expand!(174),
176 => $expand!(176),
178 => $expand!(178),
180 => $expand!(180),
182 => $expand!(182),
184 => $expand!(184),
186 => $expand!(186),
188 => $expand!(188),
190 => $expand!(190),
192 => $expand!(192),
194 => $expand!(194),
196 => $expand!(196),
198 => $expand!(198),
200 => $expand!(200),
202 => $expand!(202),
204 => $expand!(204),
206 => $expand!(206),
208 => $expand!(208),
210 => $expand!(210),
212 => $expand!(212),
214 => $expand!(214),
216 => $expand!(216),
218 => $expand!(218),
220 => $expand!(220),
222 => $expand!(222),
224 => $expand!(224),
226 => $expand!(226),
228 => $expand!(228),
230 => $expand!(230),
232 => $expand!(232),
234 => $expand!(234),
236 => $expand!(236),
238 => $expand!(238),
240 => $expand!(240),
242 => $expand!(242),
244 => $expand!(244),
246 => $expand!(246),
248 => $expand!(248),
250 => $expand!(250),
252 => $expand!(252),
254 => $expand!(254),
256 => $expand!(256),
258 => $expand!(258),
260 => $expand!(260),
262 => $expand!(262),
264 => $expand!(264),
266 => $expand!(266),
268 => $expand!(268),
270 => $expand!(270),
272 => $expand!(272),
274 => $expand!(274),
276 => $expand!(276),
278 => $expand!(278),
280 => $expand!(280),
282 => $expand!(282),
284 => $expand!(284),
286 => $expand!(286),
288 => $expand!(288),
290 => $expand!(290),
292 => $expand!(292),
294 => $expand!(294),
296 => $expand!(296),
298 => $expand!(298),
300 => $expand!(300),
302 => $expand!(302),
304 => $expand!(304),
306 => $expand!(306),
308 => $expand!(308),
310 => $expand!(310),
312 => $expand!(312),
314 => $expand!(314),
316 => $expand!(316),
318 => $expand!(318),
320 => $expand!(320),
322 => $expand!(322),
324 => $expand!(324),
326 => $expand!(326),
328 => $expand!(328),
330 => $expand!(330),
332 => $expand!(332),
334 => $expand!(334),
336 => $expand!(336),
338 => $expand!(338),
340 => $expand!(340),
342 => $expand!(342),
344 => $expand!(344),
346 => $expand!(346),
348 => $expand!(348),
350 => $expand!(350),
352 => $expand!(352),
354 => $expand!(354),
356 => $expand!(356),
358 => $expand!(358),
360 => $expand!(360),
362 => $expand!(362),
364 => $expand!(364),
366 => $expand!(366),
368 => $expand!(368),
370 => $expand!(370),
372 => $expand!(372),
374 => $expand!(374),
376 => $expand!(376),
378 => $expand!(378),
380 => $expand!(380),
382 => $expand!(382),
384 => $expand!(384),
386 => $expand!(386),
388 => $expand!(388),
390 => $expand!(390),
392 => $expand!(392),
394 => $expand!(394),
396 => $expand!(396),
398 => $expand!(398),
400 => $expand!(400),
402 => $expand!(402),
404 => $expand!(404),
406 => $expand!(406),
408 => $expand!(408),
410 => $expand!(410),
412 => $expand!(412),
414 => $expand!(414),
416 => $expand!(416),
418 => $expand!(418),
420 => $expand!(420),
422 => $expand!(422),
424 => $expand!(424),
426 => $expand!(426),
428 => $expand!(428),
430 => $expand!(430),
432 => $expand!(432),
434 => $expand!(434),
436 => $expand!(436),
438 => $expand!(438),
440 => $expand!(440),
442 => $expand!(442),
444 => $expand!(444),
446 => $expand!(446),
448 => $expand!(448),
450 => $expand!(450),
452 => $expand!(452),
454 => $expand!(454),
456 => $expand!(456),
458 => $expand!(458),
460 => $expand!(460),
462 => $expand!(462),
464 => $expand!(464),
466 => $expand!(466),
468 => $expand!(468),
470 => $expand!(470),
472 => $expand!(472),
474 => $expand!(474),
476 => $expand!(476),
478 => $expand!(478),
480 => $expand!(480),
482 => $expand!(482),
484 => $expand!(484),
486 => $expand!(486),
488 => $expand!(488),
490 => $expand!(490),
492 => $expand!(492),
494 => $expand!(494),
496 => $expand!(496),
498 => $expand!(498),
500 => $expand!(500),
502 => $expand!(502),
504 => $expand!(504),
506 => $expand!(506),
508 => $expand!(508),
510 => $expand!(510),
512 => $expand!(512),
514 => $expand!(514),
516 => $expand!(516),
518 => $expand!(518),
520 => $expand!(520),
522 => $expand!(522),
524 => $expand!(524),
526 => $expand!(526),
528 => $expand!(528),
530 => $expand!(530),
532 => $expand!(532),
534 => $expand!(534),
536 => $expand!(536),
538 => $expand!(538),
540 => $expand!(540),
542 => $expand!(542),
544 => $expand!(544),
546 => $expand!(546),
548 => $expand!(548),
550 => $expand!(550),
552 => $expand!(552),
554 => $expand!(554),
556 => $expand!(556),
558 => $expand!(558),
560 => $expand!(560),
562 => $expand!(562),
564 => $expand!(564),
566 => $expand!(566),
568 => $expand!(568),
570 => $expand!(570),
572 => $expand!(572),
574 => $expand!(574),
576 => $expand!(576),
578 => $expand!(578),
580 => $expand!(580),
582 => $expand!(582),
584 => $expand!(584),
586 => $expand!(586),
588 => $expand!(588),
590 => $expand!(590),
592 => $expand!(592),
594 => $expand!(594),
596 => $expand!(596),
598 => $expand!(598),
600 => $expand!(600),
602 => $expand!(602),
604 => $expand!(604),
606 => $expand!(606),
608 => $expand!(608),
610 => $expand!(610),
612 => $expand!(612),
614 => $expand!(614),
616 => $expand!(616),
618 => $expand!(618),
620 => $expand!(620),
622 => $expand!(622),
624 => $expand!(624),
626 => $expand!(626),
628 => $expand!(628),
630 => $expand!(630),
632 => $expand!(632),
634 => $expand!(634),
636 => $expand!(636),
638 => $expand!(638),
640 => $expand!(640),
642 => $expand!(642),
644 => $expand!(644),
646 => $expand!(646),
648 => $expand!(648),
650 => $expand!(650),
652 => $expand!(652),
654 => $expand!(654),
656 => $expand!(656),
658 => $expand!(658),
660 => $expand!(660),
662 => $expand!(662),
664 => $expand!(664),
666 => $expand!(666),
668 => $expand!(668),
670 => $expand!(670),
672 => $expand!(672),
674 => $expand!(674),
676 => $expand!(676),
678 => $expand!(678),
680 => $expand!(680),
682 => $expand!(682),
684 => $expand!(684),
686 => $expand!(686),
688 => $expand!(688),
690 => $expand!(690),
692 => $expand!(692),
694 => $expand!(694),
696 => $expand!(696),
698 => $expand!(698),
700 => $expand!(700),
702 => $expand!(702),
704 => $expand!(704),
706 => $expand!(706),
708 => $expand!(708),
710 => $expand!(710),
712 => $expand!(712),
714 => $expand!(714),
716 => $expand!(716),
718 => $expand!(718),
720 => $expand!(720),
722 => $expand!(722),
724 => $expand!(724),
726 => $expand!(726),
728 => $expand!(728),
730 => $expand!(730),
732 => $expand!(732),
734 => $expand!(734),
736 => $expand!(736),
738 => $expand!(738),
740 => $expand!(740),
742 => $expand!(742),
744 => $expand!(744),
746 => $expand!(746),
748 => $expand!(748),
750 => $expand!(750),
752 => $expand!(752),
754 => $expand!(754),
756 => $expand!(756),
758 => $expand!(758),
760 => $expand!(760),
762 => $expand!(762),
764 => $expand!(764),
766 => $expand!(766),
768 => $expand!(768),
770 => $expand!(770),
772 => $expand!(772),
774 => $expand!(774),
776 => $expand!(776),
778 => $expand!(778),
780 => $expand!(780),
782 => $expand!(782),
784 => $expand!(784),
786 => $expand!(786),
788 => $expand!(788),
790 => $expand!(790),
792 => $expand!(792),
794 => $expand!(794),
796 => $expand!(796),
798 => $expand!(798),
800 => $expand!(800),
802 => $expand!(802),
804 => $expand!(804),
806 => $expand!(806),
808 => $expand!(808),
810 => $expand!(810),
812 => $expand!(812),
814 => $expand!(814),
816 => $expand!(816),
818 => $expand!(818),
820 => $expand!(820),
822 => $expand!(822),
824 => $expand!(824),
826 => $expand!(826),
828 => $expand!(828),
830 => $expand!(830),
832 => $expand!(832),
834 => $expand!(834),
836 => $expand!(836),
838 => $expand!(838),
840 => $expand!(840),
842 => $expand!(842),
844 => $expand!(844),
846 => $expand!(846),
848 => $expand!(848),
850 => $expand!(850),
852 => $expand!(852),
854 => $expand!(854),
856 => $expand!(856),
858 => $expand!(858),
860 => $expand!(860),
862 => $expand!(862),
864 => $expand!(864),
866 => $expand!(866),
868 => $expand!(868),
870 => $expand!(870),
872 => $expand!(872),
874 => $expand!(874),
876 => $expand!(876),
878 => $expand!(878),
880 => $expand!(880),
882 => $expand!(882),
884 => $expand!(884),
886 => $expand!(886),
888 => $expand!(888),
890 => $expand!(890),
892 => $expand!(892),
894 => $expand!(894),
896 => $expand!(896),
898 => $expand!(898),
900 => $expand!(900),
902 => $expand!(902),
904 => $expand!(904),
906 => $expand!(906),
908 => $expand!(908),
910 => $expand!(910),
912 => $expand!(912),
914 => $expand!(914),
916 => $expand!(916),
918 => $expand!(918),
920 => $expand!(920),
922 => $expand!(922),
924 => $expand!(924),
926 => $expand!(926),
928 => $expand!(928),
930 => $expand!(930),
932 => $expand!(932),
934 => $expand!(934),
936 => $expand!(936),
938 => $expand!(938),
940 => $expand!(940),
942 => $expand!(942),
944 => $expand!(944),
946 => $expand!(946),
948 => $expand!(948),
950 => $expand!(950),
952 => $expand!(952),
954 => $expand!(954),
956 => $expand!(956),
958 => $expand!(958),
960 => $expand!(960),
962 => $expand!(962),
964 => $expand!(964),
966 => $expand!(966),
968 => $expand!(968),
970 => $expand!(970),
972 => $expand!(972),
974 => $expand!(974),
976 => $expand!(976),
978 => $expand!(978),
980 => $expand!(980),
982 => $expand!(982),
984 => $expand!(984),
986 => $expand!(986),
988 => $expand!(988),
990 => $expand!(990),
992 => $expand!(992),
994 => $expand!(994),
996 => $expand!(996),
998 => $expand!(998),
1000 => $expand!(1000),
1002 => $expand!(1002),
1004 => $expand!(1004),
1006 => $expand!(1006),
1008 => $expand!(1008),
1010 => $expand!(1010),
1012 => $expand!(1012),
1014 => $expand!(1014),
1016 => $expand!(1016),
1018 => $expand!(1018),
1020 => $expand!(1020),
1024 => $expand!(-1024),
1026 => $expand!(-1022),
1028 => $expand!(-1020),
1030 => $expand!(-1018),
1032 => $expand!(-1016),
1034 => $expand!(-1014),
1036 => $expand!(-1012),
1038 => $expand!(-1010),
1040 => $expand!(-1008),
1042 => $expand!(-1006),
1044 => $expand!(-1004),
1046 => $expand!(-1002),
1048 => $expand!(-1000),
1050 => $expand!(-998),
1052 => $expand!(-996),
1054 => $expand!(-994),
1056 => $expand!(-992),
1058 => $expand!(-990),
1060 => $expand!(-988),
1062 => $expand!(-986),
1064 => $expand!(-984),
1066 => $expand!(-982),
1068 => $expand!(-980),
1070 => $expand!(-978),
1072 => $expand!(-976),
1074 => $expand!(-974),
1076 => $expand!(-972),
1078 => $expand!(-970),
1080 => $expand!(-968),
1082 => $expand!(-966),
1084 => $expand!(-964),
1086 => $expand!(-962),
1088 => $expand!(-960),
1090 => $expand!(-958),
1092 => $expand!(-956),
1094 => $expand!(-954),
1096 => $expand!(-952),
1098 => $expand!(-950),
1100 => $expand!(-948),
1102 => $expand!(-946),
1104 => $expand!(-944),
1106 => $expand!(-942),
1108 => $expand!(-940),
1110 => $expand!(-938),
1112 => $expand!(-936),
1114 => $expand!(-934),
1116 => $expand!(-932),
1118 => $expand!(-930),
1120 => $expand!(-928),
1122 => $expand!(-926),
1124 => $expand!(-924),
1126 => $expand!(-922),
1128 => $expand!(-920),
1130 => $expand!(-918),
1132 => $expand!(-916),
1134 => $expand!(-914),
1136 => $expand!(-912),
1138 => $expand!(-910),
1140 => $expand!(-908),
1142 => $expand!(-906),
1144 => $expand!(-904),
1146 => $expand!(-902),
1148 => $expand!(-900),
1150 => $expand!(-898),
1152 => $expand!(-896),
1154 => $expand!(-894),
1156 => $expand!(-892),
1158 => $expand!(-890),
1160 => $expand!(-888),
1162 => $expand!(-886),
1164 => $expand!(-884),
1166 => $expand!(-882),
1168 => $expand!(-880),
1170 => $expand!(-878),
1172 => $expand!(-876),
1174 => $expand!(-874),
1176 => $expand!(-872),
1178 => $expand!(-870),
1180 => $expand!(-868),
1182 => $expand!(-866),
1184 => $expand!(-864),
1186 => $expand!(-862),
1188 => $expand!(-860),
1190 => $expand!(-858),
1192 => $expand!(-856),
1194 => $expand!(-854),
1196 => $expand!(-852),
1198 => $expand!(-850),
1200 => $expand!(-848),
1202 => $expand!(-846),
1204 => $expand!(-844),
1206 => $expand!(-842),
1208 => $expand!(-840),
1210 => $expand!(-838),
1212 => $expand!(-836),
1214 => $expand!(-834),
1216 => $expand!(-832),
1218 => $expand!(-830),
1220 => $expand!(-828),
1222 => $expand!(-826),
1224 => $expand!(-824),
1226 => $expand!(-822),
1228 => $expand!(-820),
1230 => $expand!(-818),
1232 => $expand!(-816),
1234 => $expand!(-814),
1236 => $expand!(-812),
1238 => $expand!(-810),
1240 => $expand!(-808),
1242 => $expand!(-806),
1244 => $expand!(-804),
1246 => $expand!(-802),
1248 => $expand!(-800),
1250 => $expand!(-798),
1252 => $expand!(-796),
1254 => $expand!(-794),
1256 => $expand!(-792),
1258 => $expand!(-790),
1260 => $expand!(-788),
1262 => $expand!(-786),
1264 => $expand!(-784),
1266 => $expand!(-782),
1268 => $expand!(-780),
1270 => $expand!(-778),
1272 => $expand!(-776),
1274 => $expand!(-774),
1276 => $expand!(-772),
1278 => $expand!(-770),
1280 => $expand!(-768),
1282 => $expand!(-766),
1284 => $expand!(-764),
1286 => $expand!(-762),
1288 => $expand!(-760),
1290 => $expand!(-758),
1292 => $expand!(-756),
1294 => $expand!(-754),
1296 => $expand!(-752),
1298 => $expand!(-750),
1300 => $expand!(-748),
1302 => $expand!(-746),
1304 => $expand!(-744),
1306 => $expand!(-742),
1308 => $expand!(-740),
1310 => $expand!(-738),
1312 => $expand!(-736),
1314 => $expand!(-734),
1316 => $expand!(-732),
1318 => $expand!(-730),
1320 => $expand!(-728),
1322 => $expand!(-726),
1324 => $expand!(-724),
1326 => $expand!(-722),
1328 => $expand!(-720),
1330 => $expand!(-718),
1332 => $expand!(-716),
1334 => $expand!(-714),
1336 => $expand!(-712),
1338 => $expand!(-710),
1340 => $expand!(-708),
1342 => $expand!(-706),
1344 => $expand!(-704),
1346 => $expand!(-702),
1348 => $expand!(-700),
1350 => $expand!(-698),
1352 => $expand!(-696),
1354 => $expand!(-694),
1356 => $expand!(-692),
1358 => $expand!(-690),
1360 => $expand!(-688),
1362 => $expand!(-686),
1364 => $expand!(-684),
1366 => $expand!(-682),
1368 => $expand!(-680),
1370 => $expand!(-678),
1372 => $expand!(-676),
1374 => $expand!(-674),
1376 => $expand!(-672),
1378 => $expand!(-670),
1380 => $expand!(-668),
1382 => $expand!(-666),
1384 => $expand!(-664),
1386 => $expand!(-662),
1388 => $expand!(-660),
1390 => $expand!(-658),
1392 => $expand!(-656),
1394 => $expand!(-654),
1396 => $expand!(-652),
1398 => $expand!(-650),
1400 => $expand!(-648),
1402 => $expand!(-646),
1404 => $expand!(-644),
1406 => $expand!(-642),
1408 => $expand!(-640),
1410 => $expand!(-638),
1412 => $expand!(-636),
1414 => $expand!(-634),
1416 => $expand!(-632),
1418 => $expand!(-630),
1420 => $expand!(-628),
1422 => $expand!(-626),
1424 => $expand!(-624),
1426 => $expand!(-622),
1428 => $expand!(-620),
1430 => $expand!(-618),
1432 => $expand!(-616),
1434 => $expand!(-614),
1436 => $expand!(-612),
1438 => $expand!(-610),
1440 => $expand!(-608),
1442 => $expand!(-606),
1444 => $expand!(-604),
1446 => $expand!(-602),
1448 => $expand!(-600),
1450 => $expand!(-598),
1452 => $expand!(-596),
1454 => $expand!(-594),
1456 => $expand!(-592),
1458 => $expand!(-590),
1460 => $expand!(-588),
1462 => $expand!(-586),
1464 => $expand!(-584),
1466 => $expand!(-582),
1468 => $expand!(-580),
1470 => $expand!(-578),
1472 => $expand!(-576),
1474 => $expand!(-574),
1476 => $expand!(-572),
1478 => $expand!(-570),
1480 => $expand!(-568),
1482 => $expand!(-566),
1484 => $expand!(-564),
1486 => $expand!(-562),
1488 => $expand!(-560),
1490 => $expand!(-558),
1492 => $expand!(-556),
1494 => $expand!(-554),
1496 => $expand!(-552),
1498 => $expand!(-550),
1500 => $expand!(-548),
1502 => $expand!(-546),
1504 => $expand!(-544),
1506 => $expand!(-542),
1508 => $expand!(-540),
1510 => $expand!(-538),
1512 => $expand!(-536),
1514 => $expand!(-534),
1516 => $expand!(-532),
1518 => $expand!(-530),
1520 => $expand!(-528),
1522 => $expand!(-526),
1524 => $expand!(-524),
1526 => $expand!(-522),
1528 => $expand!(-520),
1530 => $expand!(-518),
1532 => $expand!(-516),
1534 => $expand!(-514),
1536 => $expand!(-512),
1538 => $expand!(-510),
1540 => $expand!(-508),
1542 => $expand!(-506),
1544 => $expand!(-504),
1546 => $expand!(-502),
1548 => $expand!(-500),
1550 => $expand!(-498),
1552 => $expand!(-496),
1554 => $expand!(-494),
1556 => $expand!(-492),
1558 => $expand!(-490),
1560 => $expand!(-488),
1562 => $expand!(-486),
1564 => $expand!(-484),
1566 => $expand!(-482),
1568 => $expand!(-480),
1570 => $expand!(-478),
1572 => $expand!(-476),
1574 => $expand!(-474),
1576 => $expand!(-472),
1578 => $expand!(-470),
1580 => $expand!(-468),
1582 => $expand!(-466),
1584 => $expand!(-464),
1586 => $expand!(-462),
1588 => $expand!(-460),
1590 => $expand!(-458),
1592 => $expand!(-456),
1594 => $expand!(-454),
1596 => $expand!(-452),
1598 => $expand!(-450),
1600 => $expand!(-448),
1602 => $expand!(-446),
1604 => $expand!(-444),
1606 => $expand!(-442),
1608 => $expand!(-440),
1610 => $expand!(-438),
1612 => $expand!(-436),
1614 => $expand!(-434),
1616 => $expand!(-432),
1618 => $expand!(-430),
1620 => $expand!(-428),
1622 => $expand!(-426),
1624 => $expand!(-424),
1626 => $expand!(-422),
1628 => $expand!(-420),
1630 => $expand!(-418),
1632 => $expand!(-416),
1634 => $expand!(-414),
1636 => $expand!(-412),
1638 => $expand!(-410),
1640 => $expand!(-408),
1642 => $expand!(-406),
1644 => $expand!(-404),
1646 => $expand!(-402),
1648 => $expand!(-400),
1650 => $expand!(-398),
1652 => $expand!(-396),
1654 => $expand!(-394),
1656 => $expand!(-392),
1658 => $expand!(-390),
1660 => $expand!(-388),
1662 => $expand!(-386),
1664 => $expand!(-384),
1666 => $expand!(-382),
1668 => $expand!(-380),
1670 => $expand!(-378),
1672 => $expand!(-376),
1674 => $expand!(-374),
1676 => $expand!(-372),
1678 => $expand!(-370),
1680 => $expand!(-368),
1682 => $expand!(-366),
1684 => $expand!(-364),
1686 => $expand!(-362),
1688 => $expand!(-360),
1690 => $expand!(-358),
1692 => $expand!(-356),
1694 => $expand!(-354),
1696 => $expand!(-352),
1698 => $expand!(-350),
1700 => $expand!(-348),
1702 => $expand!(-346),
1704 => $expand!(-344),
1706 => $expand!(-342),
1708 => $expand!(-340),
1710 => $expand!(-338),
1712 => $expand!(-336),
1714 => $expand!(-334),
1716 => $expand!(-332),
1718 => $expand!(-330),
1720 => $expand!(-328),
1722 => $expand!(-326),
1724 => $expand!(-324),
1726 => $expand!(-322),
1728 => $expand!(-320),
1730 => $expand!(-318),
1732 => $expand!(-316),
1734 => $expand!(-314),
1736 => $expand!(-312),
1738 => $expand!(-310),
1740 => $expand!(-308),
1742 => $expand!(-306),
1744 => $expand!(-304),
1746 => $expand!(-302),
1748 => $expand!(-300),
1750 => $expand!(-298),
1752 => $expand!(-296),
1754 => $expand!(-294),
1756 => $expand!(-292),
1758 => $expand!(-290),
1760 => $expand!(-288),
1762 => $expand!(-286),
1764 => $expand!(-284),
1766 => $expand!(-282),
1768 => $expand!(-280),
1770 => $expand!(-278),
1772 => $expand!(-276),
1774 => $expand!(-274),
1776 => $expand!(-272),
1778 => $expand!(-270),
1780 => $expand!(-268),
1782 => $expand!(-266),
1784 => $expand!(-264),
1786 => $expand!(-262),
1788 => $expand!(-260),
1790 => $expand!(-258),
1792 => $expand!(-256),
1794 => $expand!(-254),
1796 => $expand!(-252),
1798 => $expand!(-250),
1800 => $expand!(-248),
1802 => $expand!(-246),
1804 => $expand!(-244),
1806 => $expand!(-242),
1808 => $expand!(-240),
1810 => $expand!(-238),
1812 => $expand!(-236),
1814 => $expand!(-234),
1816 => $expand!(-232),
1818 => $expand!(-230),
1820 => $expand!(-228),
1822 => $expand!(-226),
1824 => $expand!(-224),
1826 => $expand!(-222),
1828 => $expand!(-220),
1830 => $expand!(-218),
1832 => $expand!(-216),
1834 => $expand!(-214),
1836 => $expand!(-212),
1838 => $expand!(-210),
1840 => $expand!(-208),
1842 => $expand!(-206),
1844 => $expand!(-204),
1846 => $expand!(-202),
1848 => $expand!(-200),
1850 => $expand!(-198),
1852 => $expand!(-196),
1854 => $expand!(-194),
1856 => $expand!(-192),
1858 => $expand!(-190),
1860 => $expand!(-188),
1862 => $expand!(-186),
1864 => $expand!(-184),
1866 => $expand!(-182),
1868 => $expand!(-180),
1870 => $expand!(-178),
1872 => $expand!(-176),
1874 => $expand!(-174),
1876 => $expand!(-172),
1878 => $expand!(-170),
1880 => $expand!(-168),
1882 => $expand!(-166),
1884 => $expand!(-164),
1886 => $expand!(-162),
1888 => $expand!(-160),
1890 => $expand!(-158),
1892 => $expand!(-156),
1894 => $expand!(-154),
1896 => $expand!(-152),
1898 => $expand!(-150),
1900 => $expand!(-148),
1902 => $expand!(-146),
1904 => $expand!(-144),
1906 => $expand!(-142),
1908 => $expand!(-140),
1910 => $expand!(-138),
1912 => $expand!(-136),
1914 => $expand!(-134),
1916 => $expand!(-132),
1918 => $expand!(-130),
1920 => $expand!(-128),
1922 => $expand!(-126),
1924 => $expand!(-124),
1926 => $expand!(-122),
1928 => $expand!(-120),
1930 => $expand!(-118),
1932 => $expand!(-116),
1934 => $expand!(-114),
1936 => $expand!(-112),
1938 => $expand!(-110),
1940 => $expand!(-108),
1942 => $expand!(-106),
1944 => $expand!(-104),
1946 => $expand!(-102),
1948 => $expand!(-100),
1950 => $expand!(-98),
1952 => $expand!(-96),
1954 => $expand!(-94),
1956 => $expand!(-92),
1958 => $expand!(-90),
1960 => $expand!(-88),
1962 => $expand!(-86),
1964 => $expand!(-84),
1966 => $expand!(-82),
1968 => $expand!(-80),
1970 => $expand!(-78),
1972 => $expand!(-76),
1974 => $expand!(-74),
1976 => $expand!(-72),
1978 => $expand!(-70),
1980 => $expand!(-68),
1982 => $expand!(-66),
1984 => $expand!(-64),
1986 => $expand!(-62),
1988 => $expand!(-60),
1990 => $expand!(-58),
1992 => $expand!(-56),
1994 => $expand!(-54),
1996 => $expand!(-52),
1998 => $expand!(-50),
2000 => $expand!(-48),
2002 => $expand!(-46),
2004 => $expand!(-44),
2006 => $expand!(-42),
2008 => $expand!(-40),
2010 => $expand!(-38),
2012 => $expand!(-36),
2014 => $expand!(-34),
2016 => $expand!(-32),
2018 => $expand!(-30),
2020 => $expand!(-28),
2022 => $expand!(-26),
2024 => $expand!(-24),
2026 => $expand!(-22),
2028 => $expand!(-20),
2030 => $expand!(-18),
2032 => $expand!(-16),
2034 => $expand!(-14),
2036 => $expand!(-12),
2038 => $expand!(-10),
2040 => $expand!(-8),
2042 => $expand!(-6),
2044 => $expand!(-4),
2046 => $expand!(-2),
_ => $expand!(1022),
}
};
}
//immediate value: -512:511
macro_rules! constify_imm_s10 {
($imm_s10:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm_s10) & 0b11_1111_1111 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
3 => $expand!(3),
4 => $expand!(4),
5 => $expand!(5),
6 => $expand!(6),
7 => $expand!(7),
8 => $expand!(8),
9 => $expand!(9),
10 => $expand!(10),
11 => $expand!(11),
12 => $expand!(12),
13 => $expand!(13),
14 => $expand!(14),
15 => $expand!(15),
16 => $expand!(16),
17 => $expand!(17),
18 => $expand!(18),
19 => $expand!(19),
20 => $expand!(20),
21 => $expand!(21),
22 => $expand!(22),
23 => $expand!(23),
24 => $expand!(24),
25 => $expand!(25),
26 => $expand!(26),
27 => $expand!(27),
28 => $expand!(28),
29 => $expand!(29),
30 => $expand!(30),
31 => $expand!(31),
32 => $expand!(32),
33 => $expand!(33),
34 => $expand!(34),
35 => $expand!(35),
36 => $expand!(36),
37 => $expand!(37),
38 => $expand!(38),
39 => $expand!(39),
40 => $expand!(40),
41 => $expand!(41),
42 => $expand!(42),
43 => $expand!(43),
44 => $expand!(44),
45 => $expand!(45),
46 => $expand!(46),
47 => $expand!(47),
48 => $expand!(48),
49 => $expand!(49),
50 => $expand!(50),
51 => $expand!(51),
52 => $expand!(52),
53 => $expand!(53),
54 => $expand!(54),
55 => $expand!(55),
56 => $expand!(56),
57 => $expand!(57),
58 => $expand!(58),
59 => $expand!(59),
60 => $expand!(60),
61 => $expand!(61),
62 => $expand!(62),
63 => $expand!(63),
64 => $expand!(64),
65 => $expand!(65),
66 => $expand!(66),
67 => $expand!(67),
68 => $expand!(68),
69 => $expand!(69),
70 => $expand!(70),
71 => $expand!(71),
72 => $expand!(72),
73 => $expand!(73),
74 => $expand!(74),
75 => $expand!(75),
76 => $expand!(76),
77 => $expand!(77),
78 => $expand!(78),
79 => $expand!(79),
80 => $expand!(80),
81 => $expand!(81),
82 => $expand!(82),
83 => $expand!(83),
84 => $expand!(84),
85 => $expand!(85),
86 => $expand!(86),
87 => $expand!(87),
88 => $expand!(88),
89 => $expand!(89),
90 => $expand!(90),
91 => $expand!(91),
92 => $expand!(92),
93 => $expand!(93),
94 => $expand!(94),
95 => $expand!(95),
96 => $expand!(96),
97 => $expand!(97),
98 => $expand!(98),
99 => $expand!(99),
100 => $expand!(100),
101 => $expand!(101),
102 => $expand!(102),
103 => $expand!(103),
104 => $expand!(104),
105 => $expand!(105),
106 => $expand!(106),
107 => $expand!(107),
108 => $expand!(108),
109 => $expand!(109),
110 => $expand!(110),
111 => $expand!(111),
112 => $expand!(112),
113 => $expand!(113),
114 => $expand!(114),
115 => $expand!(115),
116 => $expand!(116),
117 => $expand!(117),
118 => $expand!(118),
119 => $expand!(119),
120 => $expand!(120),
121 => $expand!(121),
122 => $expand!(122),
123 => $expand!(123),
124 => $expand!(124),
125 => $expand!(125),
126 => $expand!(126),
127 => $expand!(127),
128 => $expand!(128),
129 => $expand!(129),
130 => $expand!(130),
131 => $expand!(131),
132 => $expand!(132),
133 => $expand!(133),
134 => $expand!(134),
135 => $expand!(135),
136 => $expand!(136),
137 => $expand!(137),
138 => $expand!(138),
139 => $expand!(139),
140 => $expand!(140),
141 => $expand!(141),
142 => $expand!(142),
143 => $expand!(143),
144 => $expand!(144),
145 => $expand!(145),
146 => $expand!(146),
147 => $expand!(147),
148 => $expand!(148),
149 => $expand!(149),
150 => $expand!(150),
151 => $expand!(151),
152 => $expand!(152),
153 => $expand!(153),
154 => $expand!(154),
155 => $expand!(155),
156 => $expand!(156),
157 => $expand!(157),
158 => $expand!(158),
159 => $expand!(159),
160 => $expand!(160),
161 => $expand!(161),
162 => $expand!(162),
163 => $expand!(163),
164 => $expand!(164),
165 => $expand!(165),
166 => $expand!(166),
167 => $expand!(167),
168 => $expand!(168),
169 => $expand!(169),
170 => $expand!(170),
171 => $expand!(171),
172 => $expand!(172),
173 => $expand!(173),
174 => $expand!(174),
175 => $expand!(175),
176 => $expand!(176),
177 => $expand!(177),
178 => $expand!(178),
179 => $expand!(179),
180 => $expand!(180),
181 => $expand!(181),
182 => $expand!(182),
183 => $expand!(183),
184 => $expand!(184),
185 => $expand!(185),
186 => $expand!(186),
187 => $expand!(187),
188 => $expand!(188),
189 => $expand!(189),
190 => $expand!(190),
191 => $expand!(191),
192 => $expand!(192),
193 => $expand!(193),
194 => $expand!(194),
195 => $expand!(195),
196 => $expand!(196),
197 => $expand!(197),
198 => $expand!(198),
199 => $expand!(199),
200 => $expand!(200),
201 => $expand!(201),
202 => $expand!(202),
203 => $expand!(203),
204 => $expand!(204),
205 => $expand!(205),
206 => $expand!(206),
207 => $expand!(207),
208 => $expand!(208),
209 => $expand!(209),
210 => $expand!(210),
211 => $expand!(211),
212 => $expand!(212),
213 => $expand!(213),
214 => $expand!(214),
215 => $expand!(215),
216 => $expand!(216),
217 => $expand!(217),
218 => $expand!(218),
219 => $expand!(219),
220 => $expand!(220),
221 => $expand!(221),
222 => $expand!(222),
223 => $expand!(223),
224 => $expand!(224),
225 => $expand!(225),
226 => $expand!(226),
227 => $expand!(227),
228 => $expand!(228),
229 => $expand!(229),
230 => $expand!(230),
231 => $expand!(231),
232 => $expand!(232),
233 => $expand!(233),
234 => $expand!(234),
235 => $expand!(235),
236 => $expand!(236),
237 => $expand!(237),
238 => $expand!(238),
239 => $expand!(239),
240 => $expand!(240),
241 => $expand!(241),
242 => $expand!(242),
243 => $expand!(243),
244 => $expand!(244),
245 => $expand!(245),
246 => $expand!(246),
247 => $expand!(247),
248 => $expand!(248),
249 => $expand!(249),
250 => $expand!(250),
251 => $expand!(251),
252 => $expand!(252),
253 => $expand!(253),
254 => $expand!(254),
255 => $expand!(255),
256 => $expand!(256),
257 => $expand!(257),
258 => $expand!(258),
259 => $expand!(259),
260 => $expand!(260),
261 => $expand!(261),
262 => $expand!(262),
263 => $expand!(263),
264 => $expand!(264),
265 => $expand!(265),
266 => $expand!(266),
267 => $expand!(267),
268 => $expand!(268),
269 => $expand!(269),
270 => $expand!(270),
271 => $expand!(271),
272 => $expand!(272),
273 => $expand!(273),
274 => $expand!(274),
275 => $expand!(275),
276 => $expand!(276),
277 => $expand!(277),
278 => $expand!(278),
279 => $expand!(279),
280 => $expand!(280),
281 => $expand!(281),
282 => $expand!(282),
283 => $expand!(283),
284 => $expand!(284),
285 => $expand!(285),
286 => $expand!(286),
287 => $expand!(287),
288 => $expand!(288),
289 => $expand!(289),
290 => $expand!(290),
291 => $expand!(291),
292 => $expand!(292),
293 => $expand!(293),
294 => $expand!(294),
295 => $expand!(295),
296 => $expand!(296),
297 => $expand!(297),
298 => $expand!(298),
299 => $expand!(299),
300 => $expand!(300),
301 => $expand!(301),
302 => $expand!(302),
303 => $expand!(303),
304 => $expand!(304),
305 => $expand!(305),
306 => $expand!(306),
307 => $expand!(307),
308 => $expand!(308),
309 => $expand!(309),
310 => $expand!(310),
311 => $expand!(311),
312 => $expand!(312),
313 => $expand!(313),
314 => $expand!(314),
315 => $expand!(315),
316 => $expand!(316),
317 => $expand!(317),
318 => $expand!(318),
319 => $expand!(319),
320 => $expand!(320),
321 => $expand!(321),
322 => $expand!(322),
323 => $expand!(323),
324 => $expand!(324),
325 => $expand!(325),
326 => $expand!(326),
327 => $expand!(327),
328 => $expand!(328),
329 => $expand!(329),
330 => $expand!(330),
331 => $expand!(331),
332 => $expand!(332),
333 => $expand!(333),
334 => $expand!(334),
335 => $expand!(335),
336 => $expand!(336),
337 => $expand!(337),
338 => $expand!(338),
339 => $expand!(339),
340 => $expand!(340),
341 => $expand!(341),
342 => $expand!(342),
343 => $expand!(343),
344 => $expand!(344),
345 => $expand!(345),
346 => $expand!(346),
347 => $expand!(347),
348 => $expand!(348),
349 => $expand!(349),
350 => $expand!(350),
351 => $expand!(351),
352 => $expand!(352),
353 => $expand!(353),
354 => $expand!(354),
355 => $expand!(355),
356 => $expand!(356),
357 => $expand!(357),
358 => $expand!(358),
359 => $expand!(359),
360 => $expand!(360),
361 => $expand!(361),
362 => $expand!(362),
363 => $expand!(363),
364 => $expand!(364),
365 => $expand!(365),
366 => $expand!(366),
367 => $expand!(367),
368 => $expand!(368),
369 => $expand!(369),
370 => $expand!(370),
371 => $expand!(371),
372 => $expand!(372),
373 => $expand!(373),
374 => $expand!(374),
375 => $expand!(375),
376 => $expand!(376),
377 => $expand!(377),
378 => $expand!(378),
379 => $expand!(379),
380 => $expand!(380),
381 => $expand!(381),
382 => $expand!(382),
383 => $expand!(383),
384 => $expand!(384),
385 => $expand!(385),
386 => $expand!(386),
387 => $expand!(387),
388 => $expand!(388),
389 => $expand!(389),
390 => $expand!(390),
391 => $expand!(391),
392 => $expand!(392),
393 => $expand!(393),
394 => $expand!(394),
395 => $expand!(395),
396 => $expand!(396),
397 => $expand!(397),
398 => $expand!(398),
399 => $expand!(399),
400 => $expand!(400),
401 => $expand!(401),
402 => $expand!(402),
403 => $expand!(403),
404 => $expand!(404),
405 => $expand!(405),
406 => $expand!(406),
407 => $expand!(407),
408 => $expand!(408),
409 => $expand!(409),
410 => $expand!(410),
411 => $expand!(411),
412 => $expand!(412),
413 => $expand!(413),
414 => $expand!(414),
415 => $expand!(415),
416 => $expand!(416),
417 => $expand!(417),
418 => $expand!(418),
419 => $expand!(419),
420 => $expand!(420),
421 => $expand!(421),
422 => $expand!(422),
423 => $expand!(423),
424 => $expand!(424),
425 => $expand!(425),
426 => $expand!(426),
427 => $expand!(427),
428 => $expand!(428),
429 => $expand!(429),
430 => $expand!(430),
431 => $expand!(431),
432 => $expand!(432),
433 => $expand!(433),
434 => $expand!(434),
435 => $expand!(435),
436 => $expand!(436),
437 => $expand!(437),
438 => $expand!(438),
439 => $expand!(439),
440 => $expand!(440),
441 => $expand!(441),
442 => $expand!(442),
443 => $expand!(443),
444 => $expand!(444),
445 => $expand!(445),
446 => $expand!(446),
447 => $expand!(447),
448 => $expand!(448),
449 => $expand!(449),
450 => $expand!(450),
451 => $expand!(451),
452 => $expand!(452),
453 => $expand!(453),
454 => $expand!(454),
455 => $expand!(455),
456 => $expand!(456),
457 => $expand!(457),
458 => $expand!(458),
459 => $expand!(459),
460 => $expand!(460),
461 => $expand!(461),
462 => $expand!(462),
463 => $expand!(463),
464 => $expand!(464),
465 => $expand!(465),
466 => $expand!(466),
467 => $expand!(467),
468 => $expand!(468),
469 => $expand!(469),
470 => $expand!(470),
471 => $expand!(471),
472 => $expand!(472),
473 => $expand!(473),
474 => $expand!(474),
475 => $expand!(475),
476 => $expand!(476),
477 => $expand!(477),
478 => $expand!(478),
479 => $expand!(479),
480 => $expand!(480),
481 => $expand!(481),
482 => $expand!(482),
483 => $expand!(483),
484 => $expand!(484),
485 => $expand!(485),
486 => $expand!(486),
487 => $expand!(487),
488 => $expand!(488),
489 => $expand!(489),
490 => $expand!(490),
491 => $expand!(491),
492 => $expand!(492),
493 => $expand!(493),
494 => $expand!(494),
495 => $expand!(495),
496 => $expand!(496),
497 => $expand!(497),
498 => $expand!(498),
499 => $expand!(499),
500 => $expand!(500),
501 => $expand!(501),
502 => $expand!(502),
503 => $expand!(503),
504 => $expand!(504),
505 => $expand!(505),
506 => $expand!(506),
507 => $expand!(507),
508 => $expand!(508),
509 => $expand!(509),
510 => $expand!(510),
512 => $expand!(-512),
513 => $expand!(-511),
514 => $expand!(-510),
515 => $expand!(-509),
516 => $expand!(-508),
517 => $expand!(-507),
518 => $expand!(-506),
519 => $expand!(-505),
520 => $expand!(-504),
521 => $expand!(-503),
522 => $expand!(-502),
523 => $expand!(-501),
524 => $expand!(-500),
525 => $expand!(-499),
526 => $expand!(-498),
527 => $expand!(-497),
528 => $expand!(-496),
529 => $expand!(-495),
530 => $expand!(-494),
531 => $expand!(-493),
532 => $expand!(-492),
533 => $expand!(-491),
534 => $expand!(-490),
535 => $expand!(-489),
536 => $expand!(-488),
537 => $expand!(-487),
538 => $expand!(-486),
539 => $expand!(-485),
540 => $expand!(-484),
541 => $expand!(-483),
542 => $expand!(-482),
543 => $expand!(-481),
544 => $expand!(-480),
545 => $expand!(-479),
546 => $expand!(-478),
547 => $expand!(-477),
548 => $expand!(-476),
549 => $expand!(-475),
550 => $expand!(-474),
551 => $expand!(-473),
552 => $expand!(-472),
553 => $expand!(-471),
554 => $expand!(-470),
555 => $expand!(-469),
556 => $expand!(-468),
557 => $expand!(-467),
558 => $expand!(-466),
559 => $expand!(-465),
560 => $expand!(-464),
561 => $expand!(-463),
562 => $expand!(-462),
563 => $expand!(-461),
564 => $expand!(-460),
565 => $expand!(-459),
566 => $expand!(-458),
567 => $expand!(-457),
568 => $expand!(-456),
569 => $expand!(-455),
570 => $expand!(-454),
571 => $expand!(-453),
572 => $expand!(-452),
573 => $expand!(-451),
574 => $expand!(-450),
575 => $expand!(-449),
576 => $expand!(-448),
577 => $expand!(-447),
578 => $expand!(-446),
579 => $expand!(-445),
580 => $expand!(-444),
581 => $expand!(-443),
582 => $expand!(-442),
583 => $expand!(-441),
584 => $expand!(-440),
585 => $expand!(-439),
586 => $expand!(-438),
587 => $expand!(-437),
588 => $expand!(-436),
589 => $expand!(-435),
590 => $expand!(-434),
591 => $expand!(-433),
592 => $expand!(-432),
593 => $expand!(-431),
594 => $expand!(-430),
595 => $expand!(-429),
596 => $expand!(-428),
597 => $expand!(-427),
598 => $expand!(-426),
599 => $expand!(-425),
600 => $expand!(-424),
601 => $expand!(-423),
602 => $expand!(-422),
603 => $expand!(-421),
604 => $expand!(-420),
605 => $expand!(-419),
606 => $expand!(-418),
607 => $expand!(-417),
608 => $expand!(-416),
609 => $expand!(-415),
610 => $expand!(-414),
611 => $expand!(-413),
612 => $expand!(-412),
613 => $expand!(-411),
614 => $expand!(-410),
615 => $expand!(-409),
616 => $expand!(-408),
617 => $expand!(-407),
618 => $expand!(-406),
619 => $expand!(-405),
620 => $expand!(-404),
621 => $expand!(-403),
622 => $expand!(-402),
623 => $expand!(-401),
624 => $expand!(-400),
625 => $expand!(-399),
626 => $expand!(-398),
627 => $expand!(-397),
628 => $expand!(-396),
629 => $expand!(-395),
630 => $expand!(-394),
631 => $expand!(-393),
632 => $expand!(-392),
633 => $expand!(-391),
634 => $expand!(-390),
635 => $expand!(-389),
636 => $expand!(-388),
637 => $expand!(-387),
638 => $expand!(-386),
639 => $expand!(-385),
640 => $expand!(-384),
641 => $expand!(-383),
642 => $expand!(-382),
643 => $expand!(-381),
644 => $expand!(-380),
645 => $expand!(-379),
646 => $expand!(-378),
647 => $expand!(-377),
648 => $expand!(-376),
649 => $expand!(-375),
650 => $expand!(-374),
651 => $expand!(-373),
652 => $expand!(-372),
653 => $expand!(-371),
654 => $expand!(-370),
655 => $expand!(-369),
656 => $expand!(-368),
657 => $expand!(-367),
658 => $expand!(-366),
659 => $expand!(-365),
660 => $expand!(-364),
661 => $expand!(-363),
662 => $expand!(-362),
663 => $expand!(-361),
664 => $expand!(-360),
665 => $expand!(-359),
666 => $expand!(-358),
667 => $expand!(-357),
668 => $expand!(-356),
669 => $expand!(-355),
670 => $expand!(-354),
671 => $expand!(-353),
672 => $expand!(-352),
673 => $expand!(-351),
674 => $expand!(-350),
675 => $expand!(-349),
676 => $expand!(-348),
677 => $expand!(-347),
678 => $expand!(-346),
679 => $expand!(-345),
680 => $expand!(-344),
681 => $expand!(-343),
682 => $expand!(-342),
683 => $expand!(-341),
684 => $expand!(-340),
685 => $expand!(-339),
686 => $expand!(-338),
687 => $expand!(-337),
688 => $expand!(-336),
689 => $expand!(-335),
690 => $expand!(-334),
691 => $expand!(-333),
692 => $expand!(-332),
693 => $expand!(-331),
694 => $expand!(-330),
695 => $expand!(-329),
696 => $expand!(-328),
697 => $expand!(-327),
698 => $expand!(-326),
699 => $expand!(-325),
700 => $expand!(-324),
701 => $expand!(-323),
702 => $expand!(-322),
703 => $expand!(-321),
704 => $expand!(-320),
705 => $expand!(-319),
706 => $expand!(-318),
707 => $expand!(-317),
708 => $expand!(-316),
709 => $expand!(-315),
710 => $expand!(-314),
711 => $expand!(-313),
712 => $expand!(-312),
713 => $expand!(-311),
714 => $expand!(-310),
715 => $expand!(-309),
716 => $expand!(-308),
717 => $expand!(-307),
718 => $expand!(-306),
719 => $expand!(-305),
720 => $expand!(-304),
721 => $expand!(-303),
722 => $expand!(-302),
723 => $expand!(-301),
724 => $expand!(-300),
725 => $expand!(-299),
726 => $expand!(-298),
727 => $expand!(-297),
728 => $expand!(-296),
729 => $expand!(-295),
730 => $expand!(-294),
731 => $expand!(-293),
732 => $expand!(-292),
733 => $expand!(-291),
734 => $expand!(-290),
735 => $expand!(-289),
736 => $expand!(-288),
737 => $expand!(-287),
738 => $expand!(-286),
739 => $expand!(-285),
740 => $expand!(-284),
741 => $expand!(-283),
742 => $expand!(-282),
743 => $expand!(-281),
744 => $expand!(-280),
745 => $expand!(-279),
746 => $expand!(-278),
747 => $expand!(-277),
748 => $expand!(-276),
749 => $expand!(-275),
750 => $expand!(-274),
751 => $expand!(-273),
752 => $expand!(-272),
753 => $expand!(-271),
754 => $expand!(-270),
755 => $expand!(-269),
756 => $expand!(-268),
757 => $expand!(-267),
758 => $expand!(-266),
759 => $expand!(-265),
760 => $expand!(-264),
761 => $expand!(-263),
762 => $expand!(-262),
763 => $expand!(-261),
764 => $expand!(-260),
765 => $expand!(-259),
766 => $expand!(-258),
767 => $expand!(-257),
768 => $expand!(-256),
769 => $expand!(-255),
770 => $expand!(-254),
771 => $expand!(-253),
772 => $expand!(-252),
773 => $expand!(-251),
774 => $expand!(-250),
775 => $expand!(-249),
776 => $expand!(-248),
777 => $expand!(-247),
778 => $expand!(-246),
779 => $expand!(-245),
780 => $expand!(-244),
781 => $expand!(-243),
782 => $expand!(-242),
783 => $expand!(-241),
784 => $expand!(-240),
785 => $expand!(-239),
786 => $expand!(-238),
787 => $expand!(-237),
788 => $expand!(-236),
789 => $expand!(-235),
790 => $expand!(-234),
791 => $expand!(-233),
792 => $expand!(-232),
793 => $expand!(-231),
794 => $expand!(-230),
795 => $expand!(-229),
796 => $expand!(-228),
797 => $expand!(-227),
798 => $expand!(-226),
799 => $expand!(-225),
800 => $expand!(-224),
801 => $expand!(-223),
802 => $expand!(-222),
803 => $expand!(-221),
804 => $expand!(-220),
805 => $expand!(-219),
806 => $expand!(-218),
807 => $expand!(-217),
808 => $expand!(-216),
809 => $expand!(-215),
810 => $expand!(-214),
811 => $expand!(-213),
812 => $expand!(-212),
813 => $expand!(-211),
814 => $expand!(-210),
815 => $expand!(-209),
816 => $expand!(-208),
817 => $expand!(-207),
818 => $expand!(-206),
819 => $expand!(-205),
820 => $expand!(-204),
821 => $expand!(-203),
822 => $expand!(-202),
823 => $expand!(-201),
824 => $expand!(-200),
825 => $expand!(-199),
826 => $expand!(-198),
827 => $expand!(-197),
828 => $expand!(-196),
829 => $expand!(-195),
830 => $expand!(-194),
831 => $expand!(-193),
832 => $expand!(-192),
833 => $expand!(-191),
834 => $expand!(-190),
835 => $expand!(-189),
836 => $expand!(-188),
837 => $expand!(-187),
838 => $expand!(-186),
839 => $expand!(-185),
840 => $expand!(-184),
841 => $expand!(-183),
842 => $expand!(-182),
843 => $expand!(-181),
844 => $expand!(-180),
845 => $expand!(-179),
846 => $expand!(-178),
847 => $expand!(-177),
848 => $expand!(-176),
849 => $expand!(-175),
850 => $expand!(-174),
851 => $expand!(-173),
852 => $expand!(-172),
853 => $expand!(-171),
854 => $expand!(-170),
855 => $expand!(-169),
856 => $expand!(-168),
857 => $expand!(-167),
858 => $expand!(-166),
859 => $expand!(-165),
860 => $expand!(-164),
861 => $expand!(-163),
862 => $expand!(-162),
863 => $expand!(-161),
864 => $expand!(-160),
865 => $expand!(-159),
866 => $expand!(-158),
867 => $expand!(-157),
868 => $expand!(-156),
869 => $expand!(-155),
870 => $expand!(-154),
871 => $expand!(-153),
872 => $expand!(-152),
873 => $expand!(-151),
874 => $expand!(-150),
875 => $expand!(-149),
876 => $expand!(-148),
877 => $expand!(-147),
878 => $expand!(-146),
879 => $expand!(-145),
880 => $expand!(-144),
881 => $expand!(-143),
882 => $expand!(-142),
883 => $expand!(-141),
884 => $expand!(-140),
885 => $expand!(-139),
886 => $expand!(-138),
887 => $expand!(-137),
888 => $expand!(-136),
889 => $expand!(-135),
890 => $expand!(-134),
891 => $expand!(-133),
892 => $expand!(-132),
893 => $expand!(-131),
894 => $expand!(-130),
895 => $expand!(-129),
896 => $expand!(-128),
897 => $expand!(-127),
898 => $expand!(-126),
899 => $expand!(-125),
900 => $expand!(-124),
901 => $expand!(-123),
902 => $expand!(-122),
903 => $expand!(-121),
904 => $expand!(-120),
905 => $expand!(-119),
906 => $expand!(-118),
907 => $expand!(-117),
908 => $expand!(-116),
909 => $expand!(-115),
910 => $expand!(-114),
911 => $expand!(-113),
912 => $expand!(-112),
913 => $expand!(-111),
914 => $expand!(-110),
915 => $expand!(-109),
916 => $expand!(-108),
917 => $expand!(-107),
918 => $expand!(-106),
919 => $expand!(-105),
920 => $expand!(-104),
921 => $expand!(-103),
922 => $expand!(-102),
923 => $expand!(-101),
924 => $expand!(-100),
925 => $expand!(-99),
926 => $expand!(-98),
927 => $expand!(-97),
928 => $expand!(-96),
929 => $expand!(-95),
930 => $expand!(-94),
931 => $expand!(-93),
932 => $expand!(-92),
933 => $expand!(-91),
934 => $expand!(-90),
935 => $expand!(-89),
936 => $expand!(-88),
937 => $expand!(-87),
938 => $expand!(-86),
939 => $expand!(-85),
940 => $expand!(-84),
941 => $expand!(-83),
942 => $expand!(-82),
943 => $expand!(-81),
944 => $expand!(-80),
945 => $expand!(-79),
946 => $expand!(-78),
947 => $expand!(-77),
948 => $expand!(-76),
949 => $expand!(-75),
950 => $expand!(-74),
951 => $expand!(-73),
952 => $expand!(-72),
953 => $expand!(-71),
954 => $expand!(-70),
955 => $expand!(-69),
956 => $expand!(-68),
957 => $expand!(-67),
958 => $expand!(-66),
959 => $expand!(-65),
960 => $expand!(-64),
961 => $expand!(-63),
962 => $expand!(-62),
963 => $expand!(-61),
964 => $expand!(-60),
965 => $expand!(-59),
966 => $expand!(-58),
967 => $expand!(-57),
968 => $expand!(-56),
969 => $expand!(-55),
970 => $expand!(-54),
971 => $expand!(-53),
972 => $expand!(-52),
973 => $expand!(-51),
974 => $expand!(-50),
975 => $expand!(-49),
976 => $expand!(-48),
977 => $expand!(-47),
978 => $expand!(-46),
979 => $expand!(-45),
980 => $expand!(-44),
981 => $expand!(-43),
982 => $expand!(-42),
983 => $expand!(-41),
984 => $expand!(-40),
985 => $expand!(-39),
986 => $expand!(-38),
987 => $expand!(-37),
988 => $expand!(-36),
989 => $expand!(-35),
990 => $expand!(-34),
991 => $expand!(-33),
992 => $expand!(-32),
993 => $expand!(-31),
994 => $expand!(-30),
995 => $expand!(-29),
996 => $expand!(-28),
997 => $expand!(-27),
998 => $expand!(-26),
999 => $expand!(-25),
1000 => $expand!(-24),
1001 => $expand!(-23),
1002 => $expand!(-22),
1003 => $expand!(-21),
1004 => $expand!(-20),
1005 => $expand!(-19),
1006 => $expand!(-18),
1007 => $expand!(-17),
1008 => $expand!(-16),
1009 => $expand!(-15),
1010 => $expand!(-14),
1011 => $expand!(-13),
1012 => $expand!(-12),
1013 => $expand!(-11),
1014 => $expand!(-10),
1015 => $expand!(-9),
1016 => $expand!(-8),
1017 => $expand!(-7),
1018 => $expand!(-6),
1019 => $expand!(-5),
1020 => $expand!(-4),
1021 => $expand!(-3),
1022 => $expand!(-2),
1023 => $expand!(-1),
_ => $expand!(511),
}
};
}
//immediate value: 0:63
macro_rules! constify_imm6 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b11_1111 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
3 => $expand!(3),
4 => $expand!(4),
5 => $expand!(5),
6 => $expand!(6),
7 => $expand!(7),
8 => $expand!(8),
9 => $expand!(9),
10 => $expand!(10),
11 => $expand!(11),
12 => $expand!(12),
13 => $expand!(13),
14 => $expand!(14),
15 => $expand!(15),
16 => $expand!(16),
17 => $expand!(17),
18 => $expand!(18),
19 => $expand!(19),
20 => $expand!(20),
21 => $expand!(21),
22 => $expand!(22),
23 => $expand!(23),
24 => $expand!(24),
25 => $expand!(25),
26 => $expand!(26),
27 => $expand!(27),
28 => $expand!(28),
29 => $expand!(29),
30 => $expand!(30),
31 => $expand!(31),
32 => $expand!(32),
33 => $expand!(33),
34 => $expand!(34),
35 => $expand!(35),
36 => $expand!(36),
37 => $expand!(37),
38 => $expand!(38),
39 => $expand!(39),
40 => $expand!(40),
41 => $expand!(41),
42 => $expand!(42),
43 => $expand!(43),
44 => $expand!(44),
45 => $expand!(45),
46 => $expand!(46),
47 => $expand!(47),
48 => $expand!(48),
49 => $expand!(49),
50 => $expand!(50),
51 => $expand!(51),
52 => $expand!(52),
53 => $expand!(53),
54 => $expand!(54),
55 => $expand!(55),
56 => $expand!(56),
57 => $expand!(57),
58 => $expand!(58),
59 => $expand!(59),
60 => $expand!(60),
61 => $expand!(61),
62 => $expand!(62),
_ => $expand!(63),
}
};
}
//immediate value: 0:31
macro_rules! constify_imm5 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b1_1111 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
3 => $expand!(3),
4 => $expand!(4),
5 => $expand!(5),
6 => $expand!(6),
7 => $expand!(7),
8 => $expand!(8),
9 => $expand!(9),
10 => $expand!(10),
11 => $expand!(11),
12 => $expand!(12),
13 => $expand!(13),
14 => $expand!(14),
15 => $expand!(15),
16 => $expand!(16),
17 => $expand!(17),
18 => $expand!(18),
19 => $expand!(19),
20 => $expand!(20),
21 => $expand!(21),
22 => $expand!(22),
23 => $expand!(23),
24 => $expand!(24),
25 => $expand!(25),
26 => $expand!(26),
27 => $expand!(27),
28 => $expand!(28),
29 => $expand!(29),
30 => $expand!(30),
_ => $expand!(31),
}
};
}
//immediate value: -16:15
macro_rules! constify_imm_s5 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b1_1111 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
3 => $expand!(3),
4 => $expand!(4),
5 => $expand!(5),
6 => $expand!(6),
7 => $expand!(7),
8 => $expand!(8),
9 => $expand!(9),
10 => $expand!(10),
11 => $expand!(11),
12 => $expand!(12),
13 => $expand!(13),
14 => $expand!(14),
16 => $expand!(-16),
17 => $expand!(-15),
18 => $expand!(-14),
19 => $expand!(-13),
20 => $expand!(-12),
21 => $expand!(-11),
22 => $expand!(-10),
23 => $expand!(-9),
24 => $expand!(-8),
25 => $expand!(-7),
26 => $expand!(-6),
27 => $expand!(-5),
28 => $expand!(-4),
29 => $expand!(-3),
30 => $expand!(-2),
31 => $expand!(-1),
_ => $expand!(15),
}
};
}
//immediate value: 0:15
macro_rules! constify_imm4 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b1111 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
3 => $expand!(3),
4 => $expand!(4),
5 => $expand!(5),
6 => $expand!(6),
7 => $expand!(7),
8 => $expand!(8),
9 => $expand!(9),
10 => $expand!(10),
11 => $expand!(11),
12 => $expand!(12),
13 => $expand!(13),
14 => $expand!(14),
_ => $expand!(15),
}
};
}
//immediate value: 0:7
macro_rules! constify_imm3 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b111 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
3 => $expand!(3),
4 => $expand!(4),
5 => $expand!(5),
6 => $expand!(6),
_ => $expand!(7),
}
};
}
//immediate value: 0:3
macro_rules! constify_imm2 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b11 {
0 => $expand!(0),
1 => $expand!(1),
2 => $expand!(2),
_ => $expand!(3),
}
};
}
//immediate value: 0:1
macro_rules! constify_imm1 {
($imm8:expr, $expand:ident) => {
#[allow(overflowing_literals)]
match ($imm8) & 0b1 {
0 => $expand!(0),
_ => $expand!(1),
}
};
}