inline vector ops where index is a constant; fix modle-rename shortcut table for symbolic module paths

svn: r14391
This commit is contained in:
Matthew Flatt 2009-03-31 21:24:01 +00:00
parent 2eb5fb2a55
commit 0db0fefba5
5 changed files with 269 additions and 236 deletions

View File

@ -14,13 +14,13 @@
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,98,
10,35,11,8,148,228,94,159,2,15,35,35,159,2,14,35,35,16,20,2,3,
10,35,11,8,165,228,94,159,2,15,35,35,159,2,14,35,35,16,20,2,3,
2,1,2,5,2,1,2,6,2,1,2,7,2,1,2,8,2,1,2,9,2,
1,2,10,2,1,2,4,2,1,2,11,2,1,2,12,2,1,97,36,11,8,
148,228,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,2,2,1,2,
2,97,10,11,11,8,148,228,16,0,97,10,37,11,8,148,228,16,0,13,16,
165,228,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,2,2,1,2,
2,97,10,11,11,8,165,228,16,0,97,10,37,11,8,165,228,16,0,13,16,
4,35,29,11,11,2,1,11,18,16,2,99,64,104,101,114,101,8,31,8,30,
8,29,8,28,8,27,93,8,224,27,57,0,0,95,9,8,224,27,57,0,0,
8,29,8,28,8,27,93,8,224,44,57,0,0,95,9,8,224,44,57,0,0,
2,1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75,
2,16,248,22,90,23,200,2,12,249,22,65,2,17,248,22,92,23,202,1,27,
248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75,2,16,248,
@ -29,16 +29,16 @@
248,22,73,248,22,67,23,195,2,248,22,66,193,249,22,128,4,80,158,38,35,
251,22,75,2,16,248,22,66,23,200,2,249,22,65,2,12,248,22,67,23,202,
1,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11,
2,18,3,1,7,101,110,118,57,56,48,52,16,4,11,11,2,19,3,1,7,
101,110,118,57,56,48,53,93,8,224,28,57,0,0,95,9,8,224,28,57,0,
2,18,3,1,7,101,110,118,57,56,50,51,16,4,11,11,2,19,3,1,7,
101,110,118,57,56,50,52,93,8,224,45,57,0,0,95,9,8,224,45,57,0,
0,2,1,27,248,22,67,248,22,135,4,23,197,1,28,248,22,73,23,194,2,
20,15,159,36,35,36,28,248,22,73,248,22,67,23,195,2,248,22,66,193,249,
22,128,4,80,158,38,35,250,22,75,2,20,248,22,75,249,22,75,248,22,75,
2,21,248,22,66,23,202,2,251,22,75,2,16,2,21,2,21,249,22,65,2,
4,248,22,67,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8,28,8,
27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,48,55,16,4,11,11,
2,19,3,1,7,101,110,118,57,56,48,56,93,8,224,29,57,0,0,95,9,
8,224,29,57,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194,249,22,
27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,50,54,16,4,11,11,
2,19,3,1,7,101,110,118,57,56,50,55,93,8,224,46,57,0,0,95,9,
8,224,46,57,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194,249,22,
65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,135,4,23,
197,1,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4,248,22,66,
23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39,248,22,
@ -68,9 +68,9 @@
249,22,164,8,248,22,129,4,248,22,66,23,201,2,64,101,108,115,101,10,248,
22,66,23,198,2,250,22,76,2,20,9,248,22,67,23,201,1,249,22,65,2,
3,248,22,67,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16,4,11,
11,2,18,3,1,7,101,110,118,57,56,51,48,16,4,11,11,2,19,3,1,
7,101,110,118,57,56,51,49,93,8,224,30,57,0,0,18,16,2,158,94,10,
64,118,111,105,100,8,47,95,9,8,224,30,57,0,0,2,1,27,248,22,67,
11,2,18,3,1,7,101,110,118,57,56,52,57,16,4,11,11,2,19,3,1,
7,101,110,118,57,56,53,48,93,8,224,47,57,0,0,18,16,2,158,94,10,
64,118,111,105,100,8,47,95,9,8,224,47,57,0,0,2,1,27,248,22,67,
248,22,135,4,196,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4,
248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,199,248,22,90,198,27,
248,22,129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,197,250,
@ -104,9 +104,9 @@
35,0,50,0,68,0,84,0,94,0,112,0,132,0,148,0,166,0,197,0,226,
0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,154,1,
199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100,
6,114,6,148,6,164,6,14,8,28,8,191,8,192,9,192,10,199,10,206,10,
213,10,88,11,101,11,56,12,158,12,171,12,193,12,145,13,49,14,121,15,129,
15,137,15,163,15,18,16,0,0,6,19,0,0,72,112,97,116,104,45,115,116,
6,114,6,148,6,164,6,14,8,28,8,191,8,194,9,194,10,201,10,208,10,
215,10,90,11,103,11,58,12,160,12,173,12,195,12,147,13,51,14,123,15,131,
15,139,15,165,15,20,16,0,0,8,19,0,0,72,112,97,116,104,45,115,116,
114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45,99,97,115,
101,45,112,97,116,104,74,45,99,104,101,99,107,45,114,101,108,112,97,116,104,
77,45,99,104,101,99,107,45,99,111,108,108,101,99,116,105,111,110,75,99,111,
@ -221,125 +221,125 @@
22,147,7,23,197,2,12,252,22,132,9,2,9,2,25,36,23,200,2,23,201,
2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199,2,87,94,23,195,
1,87,94,28,192,12,250,22,133,9,2,9,2,26,23,201,2,249,22,7,194,
195,27,249,22,151,13,250,22,134,14,0,18,35,114,120,35,34,40,91,46,93,
91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22,159,6,
23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142,13,23,
199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28,248,22,
141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11,87,95,
28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28,23,193,
2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,
198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,12,
252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,159,6,
23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2,25,36,
23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199,
2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26,23,201,
2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14,0,9,
35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1,95,28,
248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1,28,248,
22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,
13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4,194,11,
249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13,249,80,
158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67,79,76,
76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22,
159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174,7,6,
8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,79,
23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115,45,100,
105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,32,47,
89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2,23,198,
2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,248,22,
99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2,87,94,
23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,1,248,
22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,202,2,
194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1,23,193,
1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249,22,65,
248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249,22,79,
197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87,94,23,
193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94,23,194,
1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147,7,194,
10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116,101,32,
115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22,
74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13,13,108,
105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,248,22,
159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18,222,33,
53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222,
33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199,
2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13,23,201,
2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23,194,2,
250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1,250,2,
51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,
27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201,2,28,
28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2,192,87,
94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249,22,166,
8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51,23,202,
1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202,195,194,
28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2,27,249,
22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2,51,198,
199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,194,2,
11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196,1,23,
200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23,193,1,
27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166,13,248,
22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250,2,51,
204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,141,13,
23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,196,2,
27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,164,
13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104,32,111,
114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197,
2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,2,28,
23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22,163,13,
23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111,114,32,
114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,
110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90,161,38,
35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97,116,105,
118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23,199,1,
23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,1,9,
28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5,1,46,
23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193,250,2,
51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,11,11,
87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3,35,249,
22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23,197,1,
87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37,23,196,
1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22,175,3,
23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97,95,89,
162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,22,138,
5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,11,16,
0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11,11,10,
10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,4,2,
5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,
30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97,114,97,
109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,11,11,16,0,35,16,
0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11,16,11,
2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,
1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2,6,2,
15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46,36,11,
11,16,0,16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,35,16,
0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28,80,159,
35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33,29,80,
159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222,33,30,
80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,80,159,35,
36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80,159,35,
37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33,32,80,
159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5,222,33,
34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,6,223,0,
33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,51,2,7,
222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,38,49,2,
8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,43,37,52,
2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,162,43,37,
53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,89,162,43,
36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158,38,20,
96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44,9,223,
0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83,158,35,
16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,22,178,7,
2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,91,94,126,
97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,8,44,37,
47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158,38,20,
96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37,46,9,
223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,36,83,158,
35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,36,94,29,
94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35,37,109,
105,110,45,115,116,120,11,9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 5009);
195,27,249,22,151,13,250,22,134,14,0,20,35,114,120,35,34,40,63,58,91,
46,93,91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22,
159,6,23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142,
13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28,
248,22,141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11,
87,95,28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28,
23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,
13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,
11,12,252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,
159,6,23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2,
25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26,
23,201,2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14,
0,9,35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1,
95,28,248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1,
28,248,22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,
22,144,13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4,
194,11,249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13,
249,80,158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67,
79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1,
250,22,159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174,
7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,
22,79,23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115,
45,100,105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,
32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2,
23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,
248,22,99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2,
87,94,23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,
1,248,22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,
202,2,194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1,
23,193,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249,
22,65,248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249,
22,79,197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87,
94,23,193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94,
23,194,1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147,
7,194,10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116,
101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,
248,22,74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13,
13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,
248,22,159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18,
222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,
99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13,
23,201,2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23,
194,2,250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1,
250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,
193,1,27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201,
2,28,28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2,
192,87,94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249,
22,166,8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51,
23,202,1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202,
195,194,28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2,
27,249,22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2,
51,198,199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,
194,2,11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196,
1,23,200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23,
193,1,27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166,
13,248,22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250,
2,51,204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,
141,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,
196,2,27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,
22,164,13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104,
32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,
23,197,2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2,
192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,
2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22,
163,13,23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111,
114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,
114,105,110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90,
161,38,35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97,
116,105,118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23,
199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,
1,9,28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5,
1,46,23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193,
250,2,51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,
11,11,87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3,
35,249,22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23,
197,1,87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37,
23,196,1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22,
175,3,23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97,
95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,
22,138,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,
11,16,0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11,
11,10,10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,
4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,
2,15,30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,
111,110,45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97,
114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,11,11,16,0,
35,16,0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11,
16,11,2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,
9,2,1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2,
6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46,
36,11,11,16,0,16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,
35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28,
80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33,
29,80,159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222,
33,30,80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,80,
159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80,
159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33,
32,80,159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5,
222,33,34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,6,
223,0,33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,51,
2,7,222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,38,
49,2,8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,43,
37,52,2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,162,
43,37,53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,89,
162,43,36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158,
38,20,96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44,
9,223,0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83,
158,35,16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,22,
178,7,2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,91,
94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,8,
44,37,47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158,
38,20,96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37,
46,9,223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,36,
83,158,35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,36,
94,29,94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35,
37,109,105,110,45,115,116,120,11,9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 5011);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,51,8,0,0,0,1,0,0,6,0,19,0,
@ -347,7 +347,7 @@
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
37,107,101,114,110,101,108,11,98,10,35,11,8,154,230,97,159,2,2,35,35,
37,107,101,114,110,101,108,11,98,10,35,11,8,171,230,97,159,2,2,35,35,
159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,16,
0,159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100,143,69,35,37,
98,117,105,108,116,105,110,29,11,11,11,10,10,18,96,11,42,42,42,35,80,
@ -365,7 +365,7 @@
0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1,
89,1,192,1,237,1,1,2,30,2,61,2,117,2,127,2,174,2,184,2,191,
2,78,4,91,4,110,4,229,4,241,4,137,5,151,5,17,6,23,6,37,6,
64,6,149,6,151,6,217,6,162,12,221,12,255,12,0,0,134,15,0,0,70,
64,6,149,6,151,6,217,6,172,12,231,12,9,13,0,0,144,15,0,0,70,
100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116,45,108,
111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117,111,116,
101,29,94,2,3,67,35,37,117,116,105,108,115,11,29,94,2,3,68,35,37,
@ -515,46 +515,46 @@
2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,159,50,45,37,32,
0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,50,9,
227,14,9,8,4,3,33,48,250,22,137,2,23,197,1,197,10,12,28,28,248,
22,181,7,23,202,1,11,27,248,22,159,6,23,208,2,28,192,192,28,248,22,
63,23,208,2,249,22,164,8,248,22,66,23,210,2,2,21,11,250,22,137,2,
80,159,50,43,37,28,248,22,159,6,23,210,2,249,22,65,23,211,1,248,80,
159,53,55,36,23,213,1,87,94,23,210,1,249,22,65,23,211,1,247,22,182,
13,252,22,183,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,91,
159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,96,96,2,
20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,9,223,1,
33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,248,22,152,
4,248,80,159,37,49,37,247,22,188,11,248,22,190,4,80,159,36,36,37,248,
22,179,12,80,159,36,41,36,159,35,20,103,159,35,16,1,11,16,0,83,158,
41,20,100,143,66,35,37,98,111,111,116,29,11,11,11,11,10,10,36,80,158,
35,35,20,103,159,39,16,19,2,1,2,2,30,2,4,72,112,97,116,104,45,
115,116,114,105,110,103,63,10,30,2,4,75,112,97,116,104,45,97,100,100,45,
115,117,102,102,105,120,7,30,2,5,1,20,112,97,114,97,109,101,116,101,114,
105,122,97,116,105,111,110,45,107,101,121,4,30,2,5,1,23,101,120,116,101,
110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,2,
6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,30,2,4,69,
45,102,105,110,100,45,99,111,108,0,30,2,4,76,110,111,114,109,97,108,45,
99,97,115,101,45,112,97,116,104,6,30,2,4,79,112,97,116,104,45,114,101,
112,108,97,99,101,45,115,117,102,102,105,120,9,2,15,16,0,11,11,16,0,
35,16,0,35,16,11,2,9,2,10,2,7,2,8,2,11,2,12,2,2,2,
6,2,1,2,14,2,13,46,11,11,38,35,11,11,16,1,2,15,16,1,11,
16,1,2,15,36,36,36,11,11,16,0,16,0,16,0,35,35,11,11,11,16,
0,16,0,16,0,35,35,16,0,16,16,83,158,35,16,2,89,162,43,36,44,
9,223,0,33,23,80,159,35,57,36,83,158,35,16,2,89,162,43,36,44,9,
223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,43,36,48,67,103,
101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,158,35,16,2,89,
162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,26,80,159,35,54,
36,83,158,35,16,2,248,22,178,7,69,115,111,45,115,117,102,102,105,120,80,
159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,2,223,0,33,35,80,
159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,6,222,192,
80,159,35,41,36,83,158,35,16,2,247,22,126,80,159,35,42,36,83,158,35,
16,2,247,22,125,80,159,35,43,36,83,158,35,16,2,247,22,61,80,159,35,
44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97,
100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,83,158,
35,16,2,11,80,158,35,47,83,158,35,16,2,32,0,89,162,43,37,44,2,
13,222,33,41,80,159,35,48,36,83,158,35,16,2,89,162,8,44,36,44,2,
14,223,0,33,50,80,159,35,49,36,83,158,35,16,2,89,162,43,35,43,2,
15,223,0,33,51,80,159,35,53,36,95,29,94,2,3,68,35,37,107,101,114,
110,101,108,11,29,94,2,3,69,35,37,109,105,110,45,115,116,120,11,2,4,
9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 4099);
22,181,7,23,202,1,11,27,248,22,159,6,23,208,2,28,192,192,27,248,22,
53,23,209,2,28,192,192,28,248,22,63,23,209,2,249,22,164,8,248,22,66,
23,211,2,2,21,11,250,22,137,2,80,159,50,43,37,28,248,22,159,6,23,
210,2,249,22,65,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210,
1,249,22,65,23,211,1,247,22,182,13,252,22,183,7,23,208,1,23,207,1,
23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,11,90,161,
36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,224,2,0,
33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,9,225,2,
3,0,33,49,208,87,95,248,22,152,4,248,80,159,37,49,37,247,22,188,11,
248,22,190,4,80,159,36,36,37,248,22,179,12,80,159,36,41,36,159,35,20,
103,159,35,16,1,11,16,0,83,158,41,20,100,143,66,35,37,98,111,111,116,
29,11,11,11,11,10,10,36,80,158,35,35,20,103,159,39,16,19,2,1,2,
2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4,
75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,7,30,2,5,1,
20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,
4,30,2,5,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,
114,105,122,97,116,105,111,110,3,2,6,2,7,2,8,2,9,2,10,2,11,
2,12,2,13,2,14,30,2,4,69,45,102,105,110,100,45,99,111,108,0,30,
2,4,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,6,30,
2,4,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,
120,9,2,15,16,0,11,11,16,0,35,16,0,35,16,11,2,9,2,10,2,
7,2,8,2,11,2,12,2,2,2,6,2,1,2,14,2,13,46,11,11,38,
35,11,11,16,1,2,15,16,1,11,16,1,2,15,36,36,36,11,11,16,0,
16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,35,16,0,16,16,
83,158,35,16,2,89,162,43,36,44,9,223,0,33,23,80,159,35,57,36,83,
158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,56,36,83,158,
35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,0,33,25,80,
159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,116,104,45,100,
105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,178,7,69,
115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,16,2,89,162,
43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,16,2,32,0,
89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,35,16,2,247,
22,126,80,159,35,42,36,83,158,35,16,2,247,22,125,80,159,35,43,36,83,
158,35,16,2,247,22,61,80,159,35,44,36,83,158,35,16,2,248,22,18,74,
109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,35,45,36,83,158,
35,16,2,11,80,158,35,46,83,158,35,16,2,11,80,158,35,47,83,158,35,
16,2,32,0,89,162,43,37,44,2,13,222,33,41,80,159,35,48,36,83,158,
35,16,2,89,162,8,44,36,44,2,14,223,0,33,50,80,159,35,49,36,83,
158,35,16,2,89,162,43,35,43,2,15,223,0,33,51,80,159,35,53,36,95,
29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,2,3,69,35,37,
109,105,110,45,115,116,120,11,2,4,9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 4109);
}

View File

@ -104,6 +104,8 @@ static void assert_failure(int where) { printf("JIT assert failed %d\n", where);
/* Used by vector-set-performance-stats!: */
int scheme_jit_malloced;
static int skip_checks = 0;
#define MAX_SHARED_CALL_RANDS 25
static void *shared_tail_code[4][MAX_SHARED_CALL_RANDS];
static void *shared_non_tail_code[4][MAX_SHARED_CALL_RANDS][2];
@ -4131,38 +4133,42 @@ static int generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
jit_movr_p(JIT_R2, JIT_R0); /* save original argument */
}
for (i = 0; i < steps; i++) {
if (!i) {
ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1);
reffail = _jit.x.pc;
__END_TINY_JUMPS__(1);
if (steps == 1) {
if (name[1] == 'a') {
(void)jit_calli(bad_car_code);
if (!skip_checks) {
if (!i) {
ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1);
reffail = _jit.x.pc;
__END_TINY_JUMPS__(1);
if (steps == 1) {
if (name[1] == 'a') {
(void)jit_calli(bad_car_code);
} else {
(void)jit_calli(bad_cdr_code);
}
} else {
(void)jit_calli(bad_cdr_code);
if (name[1] == 'a') {
if (name[2] == 'a') {
(void)jit_calli(bad_caar_code);
} else {
(void)jit_calli(bad_cadr_code);
}
} else {
if (name[2] == 'a') {
(void)jit_calli(bad_cdar_code);
} else {
(void)jit_calli(bad_cddr_code);
}
}
}
__START_TINY_JUMPS__(1);
mz_patch_branch(ref);
} else {
if (name[1] == 'a') {
if (name[2] == 'a') {
(void)jit_calli(bad_caar_code);
} else {
(void)jit_calli(bad_cadr_code);
}
} else {
if (name[2] == 'a') {
(void)jit_calli(bad_cdar_code);
} else {
(void)jit_calli(bad_cddr_code);
}
}
(void)jit_bmsi_ul(reffail, JIT_R0, 0x1);
}
__START_TINY_JUMPS__(1);
mz_patch_branch(ref);
jit_ldxi_s(JIT_R1, JIT_R0, &((Scheme_Object *)0x0)->type);
(void)jit_bnei_i(reffail, JIT_R1, scheme_pair_type);
} else {
(void)jit_bmsi_ul(reffail, JIT_R0, 0x1);
reffail = NULL;
}
jit_ldxi_s(JIT_R1, JIT_R0, &((Scheme_Object *)0x0)->type);
(void)jit_bnei_i(reffail, JIT_R1, scheme_pair_type);
if (name[steps - i] == 'a') {
(void)jit_ldxi_p(JIT_R0, JIT_R0, &((Scheme_Simple_Object *)0x0)->u.pair_val.car);
} else {
@ -4524,35 +4530,54 @@ static int generate_binary_char(mz_jit_state *jitter, Scheme_App3_Rec *app,
return 1;
}
static int generate_vector_op(mz_jit_state *jitter, int set)
static int generate_vector_op(mz_jit_state *jitter, int set, int int_ready)
/* if int_ready, JIT_R1 has num index and JIT_V1 has pre-computed offset,
otherwise JIT_R1 has fixnum index */
{
GC_CAN_IGNORE jit_insn *ref, *reffail;
__START_TINY_JUMPS__(1);
ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1);
__END_TINY_JUMPS__(1);
if (!skip_checks) {
__START_TINY_JUMPS__(1);
ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1);
__END_TINY_JUMPS__(1);
reffail = _jit.x.pc;
if (set) {
(void)jit_calli(vector_set_check_index_code);
reffail = _jit.x.pc;
if (int_ready) {
jit_lshi_ul(JIT_R1, JIT_R1, 1);
jit_ori_l(JIT_R1, JIT_R1, 0x1);
}
if (set) {
(void)jit_calli(vector_set_check_index_code);
} else {
(void)jit_calli(vector_ref_check_index_code);
}
/* doesn't return */
CHECK_LIMIT();
__START_TINY_JUMPS__(1);
mz_patch_branch(ref);
if (!int_ready)
(void)jit_bmci_ul(reffail, JIT_R1, 0x1);
jit_ldxi_s(JIT_R2, JIT_R0, &((Scheme_Object *)0x0)->type);
(void)jit_bnei_i(reffail, JIT_R2, scheme_vector_type);
jit_ldxi_i(JIT_R2, JIT_R0, (int)&SCHEME_VEC_SIZE(0x0));
if (!int_ready) {
jit_rshi_ul(JIT_V1, JIT_R1, 1);
(void)jit_bler_ul(reffail, JIT_R2, JIT_V1);
} else {
(void)jit_bler_ul(reffail, JIT_R2, JIT_R1);
}
CHECK_LIMIT();
__END_TINY_JUMPS__(1);
} else {
(void)jit_calli(vector_ref_check_index_code);
if (!int_ready)
jit_rshi_ul(JIT_V1, JIT_R1, 1);
}
/* doesn't return */
CHECK_LIMIT();
__START_TINY_JUMPS__(1);
mz_patch_branch(ref);
(void)jit_bmci_ul(reffail, JIT_R1, 0x1);
jit_ldxi_s(JIT_R2, JIT_R0, &((Scheme_Object *)0x0)->type);
(void)jit_bnei_i(reffail, JIT_R2, scheme_vector_type);
jit_ldxi_i(JIT_R2, JIT_R0, (int)&SCHEME_VEC_SIZE(0x0));
jit_rshi_ul(JIT_V1, JIT_R1, 1);
(void)jit_bler_ul(reffail, JIT_R2, JIT_V1);
CHECK_LIMIT();
jit_lshi_ul(JIT_V1, JIT_V1, JIT_LOG_WORD_SIZE);
jit_addi_p(JIT_V1, JIT_V1, (int)&SCHEME_VEC_ELS(0x0));
if (!int_ready) {
jit_lshi_ul(JIT_V1, JIT_V1, JIT_LOG_WORD_SIZE);
jit_addi_p(JIT_V1, JIT_V1, (int)&SCHEME_VEC_ELS(0x0));
}
if (set) {
jit_ldr_p(JIT_R2, JIT_RUNSTACK);
jit_stxr_p(JIT_V1, JIT_R0, JIT_R2);
@ -4560,7 +4585,6 @@ static int generate_vector_op(mz_jit_state *jitter, int set)
} else {
jit_ldxr_p(JIT_R0, JIT_R0, JIT_V1);
}
__END_TINY_JUMPS__(1);
return 1;
}
@ -4736,7 +4760,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i
if (!which) {
/* vector-ref is relatively simple and worth inlining */
generate_vector_op(jitter, 0);
generate_vector_op(jitter, 0, 0);
CHECK_LIMIT();
} else if (which == 1) {
(void)jit_calli(string_ref_check_index_code);
@ -4761,7 +4785,9 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i
offset = offset << LOG_MZCHAR_SIZE;
jit_movi_l(JIT_V1, offset);
if (!which) {
(void)jit_calli(vector_ref_code);
/* vector-ref is relatively simple and worth inlining */
generate_vector_op(jitter, 0, 1);
CHECK_LIMIT();
} else if (which == 1) {
(void)jit_calli(string_ref_code);
} else {
@ -4975,7 +5001,7 @@ static int generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int
if (!simple) {
if (!which) {
/* vector-set! is relatively simple and worth inlining */
generate_vector_op(jitter, 1);
generate_vector_op(jitter, 1, 0);
CHECK_LIMIT();
} else if (which == 1) {
(void)jit_calli(string_set_check_index_code);
@ -4992,7 +5018,9 @@ static int generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int
offset = offset << LOG_MZCHAR_SIZE;
jit_movi_l(JIT_V1, offset);
if (!which) {
(void)jit_calli(vector_set_code);
/* vector-set! is relatively simple and worth inlining */
generate_vector_op(jitter, 1, 1);
CHECK_LIMIT();
} else if (which == 1) {
(void)jit_calli(string_set_code);
} else {

View File

@ -229,7 +229,7 @@
"(lambda(s sfx)"
"(let-values(((base name)(check-suffix-call s sfx 'path-replace-suffix)))"
"(let((new-name(bytes->path-element"
" (regexp-replace #rx#\"([.][^.]*|)$\""
" (regexp-replace #rx#\"(?:[.][^.]*|)$\""
"(path-element->bytes name)"
"(if(string? sfx)"
"(string->bytes/locale sfx(char->integer #\\?))"
@ -682,6 +682,7 @@
"(hash-set! ht modname #t))))"
"(when(and(not(vector? s-parsed))"
"(or(string? s)"
"(symbol? s)"
"(and(pair? s)"
"(eq?(car s) 'lib))))"
"(hash-set! -path-cache"

View File

@ -290,7 +290,7 @@
(lambda (s sfx)
(let-values ([(base name) (check-suffix-call s sfx 'path-replace-suffix)])
(let ([new-name (bytes->path-element
(regexp-replace #rx#"([.][^.]*|)$"
(regexp-replace #rx#"(?:[.][^.]*|)$"
(path-element->bytes name)
(if (string? sfx)
(string->bytes/locale sfx (char->integer #\?))
@ -773,6 +773,7 @@
;; If a `lib' path, cache pathname manipulations
(when (and (not (vector? s-parsed))
(or (string? s)
(symbol? s)
(and (pair? s)
(eq? (car s) 'lib))))
(hash-set! -path-cache

View File

@ -350,13 +350,16 @@ scheme_list_to_vector (Scheme_Object *list)
static Scheme_Object *
vector_fill (int argc, Scheme_Object *argv[])
{
int i;
int i, sz;
Scheme_Object *v;
if (!SCHEME_MUTABLE_VECTORP(argv[0]))
scheme_wrong_type("vector-fill!", "mutable vector", 0, argc, argv);
for (i = 0; i < SCHEME_VEC_SIZE(argv[0]); i++) {
SCHEME_VEC_ELS(argv[0])[i] = argv[1];
v = argv[1];
sz = SCHEME_VEC_SIZE(argv[0]);
for (i = 0; i < sz; i++) {
SCHEME_VEC_ELS(argv[0])[i] = v;
}
return argv[0];