]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/2c/mul.c
awk: make empty FS unicodely-correct.
[plan9front.git] / sys / src / cmd / 2c / mul.c
1 #include "gc.h"
2
3 /*
4  * code sequences for multiply by constant
5  * all sequences start with leading '0'.
6  * if sequence starts with 'i', then the
7  *      leading '0' is suppressed.
8  * '0'  mov r0,r1
9  * '1'  sub r0,r1
10  * '2'  sub r1,r0
11  * '3'  add r0,r1
12  * '4'  add r1,r0
13  * '5'  add r0,r0
14  * '6'  add r1,r1
15  * 'b'  lsh $2,r0
16  * 'c'  lsh $3,r0
17  * 'd'-'h' ...
18  * 'j'  lsh $2,r1
19  * 'k'-'p' ...
20  */
21 Multab multab[] =
22 {
23         2, "i5",
24         3, "64",
25         4, "i55",
26         5, "664",
27         6, "645",
28         7, "c2",
29         9, "k4",
30         10, "6645",
31         11, "66364",
32         12, "6455",
33         13, "66464",
34         14, "6d2",
35         15, "d2",
36         17, "l4",
37         18, "6d4",
38         19, "64k4",
39         20, "66455",
40         21, "664664",
41         22, "64c2",
42         23, "44c2",
43         24, "64c",
44         25, "63k4",
45         26, "64c4",
46         27, "663e2",
47         28, "66e2",
48         29, "63e2",
49         30, "6e2",
50         31, "e2",
51         33, "m4",
52         34, "6e4",
53         35, "64l4",
54         36, "66e4",
55         37, "664k4",
56         38, "64k45",
57         39, "454c2",
58         40, "664c",
59         41, "663k4",
60         42, "644c4",
61         43, "643k4",
62         44, "664c4",
63         45, "640d2",
64         46, "64d2",
65         47, "44d2",
66         48, "64d",
67         49, "63l4",
68         50, "64d4",
69         51, "640l4",
70         52, "646d4",
71         53, "643d4",
72         54, "6636f2",
73         55, "k3f2",
74         56, "kf2",
75         57, "k2k4",
76         58, "636f2",
77         59, "663f2",
78         60, "66f2",
79         61, "63f2",
80         62, "6f2",
81         63, "f2",
82         65, "n4",
83         66, "6f4",
84         67, "64m4",
85         68, "66f4",
86         69, "664l4",
87         70, "64l45",
88         71, "k1f4",
89         72, "k4c",
90         73, "k4k4",
91         74, "664k45",
92         75, "6640d2",
93         76, "664d2",
94         77, "434d2",
95         78, "644d2",
96         79, "454d2",
97         80, "664d",
98         81, "663l4",
99         82, "644d4",
100         83, "643l4",
101         84, "664d4",
102         85, "6640l4",
103         86, "6634l4",
104         87, "6443d4",
105         88, "6646d4",
106         89, "6643d4",
107         90, "6406e2",
108         91, "643e2",
109         92, "646e2",
110         93, "640e2",
111         94, "64e2",
112         95, "44e2",
113         96, "64e",
114         97, "63m4",
115         98, "64e4",
116         99, "640m4",
117         100, "646e4",
118         200, "66f364",
119         300, "j40jf2",
120         400, "64kg4",
121         500, "66h212",
122         600, "64m4c4",
123         700, "j4c4d2",
124         800, "64lh4",
125         900, "6464g4",
126         1000, "63g2c",
127         1100, "j4d2p4",
128         1200, "64k4f2",
129         1300, "j4n4b4",
130         1400, "64j4g2",
131         1600, "64d4e",
132         1800, "p4c2",
133         2000, "63g2d",
134         2100, "l4b2o4",
135         2200, "k4d4p4",
136         2300, "6644h2",
137         2400, "j4k4f4",
138         2500, "j4e2d4",
139         2600, "j40n4c",
140         3100, "jd12p2",
141         3200, "64d4f",
142         3600, "6d1p2",
143         3800, "e3k3g2",
144         3900, "jf20n4",
145         4000, "o4e2",
146         4100, "66p455",
147         4200, "l4c3e2",
148         4300, "l4b1f4",
149         4400, "64o4d4",
150         4600, "k45h2",
151         4700, "k3j4g2",
152         4800, "j40d2f",
153         5000, "l4c3m4",
154         5100, "j40h2b",
155         5200, "j40n4d",
156         6000, "d1o3h2",
157         6100, "o1l4b2",
158         6200, "ke12p2",
159         6400, "64d4g",
160         7200, "66e1p2",
161         7400, "m3m4c2",
162         7600, "l4f3c2",
163         7800, "kg20n4",
164         8000, "63g2f",
165         8100, "m2b4p4",
166         8200, "66p4c",
167         8700, "66f4g2",
168         8900, "l3j4g4",
169         9200, "k45h25",
170         9600, "j40d2g",
171         9800, "k4f3d4",
172 };
173
174 int     multabsize = sizeof(multab) / sizeof(multab[0]);