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, 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, 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, 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, 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, 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, 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,148,228,16,0,97,10,37,11,8,148,228,16,0,13,16, 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, 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,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, 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, 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, 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, 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, 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, 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,48,53,93,8,224,28,57,0,0,95,9,8,224,28,57,0, 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, 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, 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, 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, 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, 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, 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,48,56,93,8,224,29,57,0,0,95,9, 2,19,3,1,7,101,110,118,57,56,50,55,93,8,224,46,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, 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, 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, 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, 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, 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, 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, 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, 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,51,49,93,8,224,30,57,0,0,18,16,2,158,94,10, 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,30,57,0,0,2,1,27,248,22,67, 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,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,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, 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, 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, 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, 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, 6,114,6,148,6,164,6,14,8,28,8,191,8,194,9,194,10,201,10,208,10,
213,10,88,11,101,11,56,12,158,12,171,12,193,12,145,13,49,14,121,15,129, 215,10,90,11,103,11,58,12,160,12,173,12,195,12,147,13,51,14,123,15,131,
15,137,15,163,15,18,16,0,0,6,19,0,0,72,112,97,116,104,45,115,116, 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, 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, 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, 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, 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, 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, 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, 195,27,249,22,151,13,250,22,134,14,0,20,35,114,120,35,34,40,63,58,91,
91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22,159,6, 46,93,91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22,
23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142,13,23, 159,6,23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142,
199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28,248,22, 13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28,
141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11,87,95, 248,22,141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11,
28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28,23,193, 87,95,28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28,
2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23, 23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,
198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,12, 13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,
252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,159,6, 11,12,252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,
23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2,25,36, 159,6,23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2,
23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199, 25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26,23,201, 23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26,
2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14,0,9, 23,201,2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14,
35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1,95,28, 0,9,35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1,
248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1,28,248, 95,28,248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1,
22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144, 28,248,22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,
13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4,194,11, 22,144,13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4,
249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13,249,80, 194,11,249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13,
158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67,79,76, 249,80,158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67,
76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22, 79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1,
159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174,7,6, 250,22,159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174,
8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,79, 7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,
23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115,45,100, 22,79,23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115,
105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,32,47, 45,100,105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,
89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2,23,198, 32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2,
2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,248,22, 23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,
99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2,87,94, 248,22,99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2,
23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,1,248, 87,94,23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,
22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,202,2, 1,248,22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,
194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1,23,193, 202,2,194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1,
1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249,22,65, 23,193,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249,
248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249,22,79, 22,65,248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249,
197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87,94,23, 22,79,197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87,
193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94,23,194, 94,23,193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94,
1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147,7,194, 23,194,1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147,
10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116,101,32, 7,194,10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116,
115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22, 101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,
74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13,13,108, 248,22,74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13,
105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,248,22, 13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,
159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18,222,33, 248,22,159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18,
53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222, 222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,
33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199, 99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13,23,201, 23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13,
2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23,194,2, 23,201,2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23,
250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1,250,2, 194,2,250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1,
51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1, 250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,
27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201,2,28, 193,1,27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201,
28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2,192,87, 2,28,28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2,
94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249,22,166, 192,87,94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249,
8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51,23,202, 22,166,8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51,
1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202,195,194, 23,202,1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202,
28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2,27,249, 195,194,28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2,
22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2,51,198, 27,249,22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2,
199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,194,2, 51,198,199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,
11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196,1,23, 194,2,11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196,
200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23,193,1, 1,23,200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23,
27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166,13,248, 193,1,27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166,
22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250,2,51, 13,248,22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250,
204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,141,13, 2,51,204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,
23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,196,2, 141,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,
27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,164, 196,2,27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,
13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104,32,111, 22,164,13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104,
114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197, 32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,
2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2,192,87, 23,197,2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2,
94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,2,28, 192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,
23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22,163,13, 2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22,
23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111,114,32, 163,13,23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111,
114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105, 114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,
110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90,161,38, 114,105,110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90,
35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97,116,105, 161,38,35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97,
118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23,199,1, 116,105,118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23,
23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,1,9, 199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,
28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5,1,46, 1,9,28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5,
23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193,250,2, 1,46,23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193,
51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,11,11, 250,2,51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,
87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3,35,249, 11,11,87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3,
22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23,197,1, 35,249,22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23,
87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37,23,196, 197,1,87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37,
1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22,175,3, 23,196,1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22,
23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97,95,89, 175,3,23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97,
162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,22,138, 95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,
5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,11,16, 22,138,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,
0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11,11,10, 11,16,0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11,
10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,4,2, 11,10,10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,
5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15, 4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,
30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110, 2,15,30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,
45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97,114,97, 111,110,45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97,
109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,11,11,16,0,35,16, 114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,11,11,16,0,
0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11,16,11, 35,16,0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11,
2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2, 16,11,2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,
1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2,6,2, 9,2,1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2,
15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46,36,11, 6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46,
11,16,0,16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,35,16, 36,11,11,16,0,16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,
0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28,80,159, 35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28,
35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33,29,80, 80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33,
159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222,33,30, 29,80,159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222,
80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,80,159,35, 33,30,80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,80,
36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80,159,35, 159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80,
37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33,32,80, 159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33,
159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5,222,33, 32,80,159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5,
34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,6,223,0, 222,33,34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,6,
33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,51,2,7, 223,0,33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,51,
222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,38,49,2, 2,7,222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,38,
8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,43,37,52, 49,2,8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,43,
2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,162,43,37, 37,52,2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,162,
53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,89,162,43, 43,37,53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,89,
36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158,38,20, 162,43,36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158,
96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44,9,223, 38,20,96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44,
0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83,158,35, 9,223,0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83,
16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,22,178,7, 158,35,16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,22,
2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,91,94,126, 178,7,2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,91,
97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,8,44,37, 94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,8,
47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158,38,20, 44,37,47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158,
96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37,46,9, 38,20,96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37,
223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,36,83,158, 46,9,223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,36,
35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,36,94,29, 83,158,35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,36,
94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35,37,109, 94,29,94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35,
105,110,45,115,116,120,11,9,9,9,35,0}; 37,109,105,110,45,115,116,120,11,9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 5009); 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 22,181,7,23,202,1,11,27,248,22,159,6,23,208,2,28,192,192,27,248,22,
63,23,208,2,249,22,164,8,248,22,66,23,210,2,2,21,11,250,22,137,2, 53,23,209,2,28,192,192,28,248,22,63,23,209,2,249,22,164,8,248,22,66,
80,159,50,43,37,28,248,22,159,6,23,210,2,249,22,65,23,211,1,248,80, 23,211,2,2,21,11,250,22,137,2,80,159,50,43,37,28,248,22,159,6,23,
159,53,55,36,23,213,1,87,94,23,210,1,249,22,65,23,211,1,247,22,182, 210,2,249,22,65,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210,
13,252,22,183,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,91, 1,249,22,65,23,211,1,247,22,182,13,252,22,183,7,23,208,1,23,207,1,
159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,96,96,2, 23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,11,90,161,
20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,9,223,1, 36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,224,2,0,
33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,248,22,152, 33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,9,225,2,
4,248,80,159,37,49,37,247,22,188,11,248,22,190,4,80,159,36,36,37,248, 3,0,33,49,208,87,95,248,22,152,4,248,80,159,37,49,37,247,22,188,11,
22,179,12,80,159,36,41,36,159,35,20,103,159,35,16,1,11,16,0,83,158, 248,22,190,4,80,159,36,36,37,248,22,179,12,80,159,36,41,36,159,35,20,
41,20,100,143,66,35,37,98,111,111,116,29,11,11,11,11,10,10,36,80,158, 103,159,35,16,1,11,16,0,83,158,41,20,100,143,66,35,37,98,111,111,116,
35,35,20,103,159,39,16,19,2,1,2,2,30,2,4,72,112,97,116,104,45, 29,11,11,11,11,10,10,36,80,158,35,35,20,103,159,39,16,19,2,1,2,
115,116,114,105,110,103,63,10,30,2,4,75,112,97,116,104,45,97,100,100,45, 2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4,
115,117,102,102,105,120,7,30,2,5,1,20,112,97,114,97,109,101,116,101,114, 75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,7,30,2,5,1,
105,122,97,116,105,111,110,45,107,101,121,4,30,2,5,1,23,101,120,116,101, 20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,
110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,2, 4,30,2,5,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,
6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,30,2,4,69, 114,105,122,97,116,105,111,110,3,2,6,2,7,2,8,2,9,2,10,2,11,
45,102,105,110,100,45,99,111,108,0,30,2,4,76,110,111,114,109,97,108,45, 2,12,2,13,2,14,30,2,4,69,45,102,105,110,100,45,99,111,108,0,30,
99,97,115,101,45,112,97,116,104,6,30,2,4,79,112,97,116,104,45,114,101, 2,4,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,6,30,
112,108,97,99,101,45,115,117,102,102,105,120,9,2,15,16,0,11,11,16,0, 2,4,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,
35,16,0,35,16,11,2,9,2,10,2,7,2,8,2,11,2,12,2,2,2, 120,9,2,15,16,0,11,11,16,0,35,16,0,35,16,11,2,9,2,10,2,
6,2,1,2,14,2,13,46,11,11,38,35,11,11,16,1,2,15,16,1,11, 7,2,8,2,11,2,12,2,2,2,6,2,1,2,14,2,13,46,11,11,38,
16,1,2,15,36,36,36,11,11,16,0,16,0,16,0,35,35,11,11,11,16, 35,11,11,16,1,2,15,16,1,11,16,1,2,15,36,36,36,11,11,16,0,
0,16,0,16,0,35,35,16,0,16,16,83,158,35,16,2,89,162,43,36,44, 16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,35,16,0,16,16,
9,223,0,33,23,80,159,35,57,36,83,158,35,16,2,89,162,43,36,44,9, 83,158,35,16,2,89,162,43,36,44,9,223,0,33,23,80,159,35,57,36,83,
223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,43,36,48,67,103, 158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,56,36,83,158,
101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,158,35,16,2,89, 35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,0,33,25,80,
162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,26,80,159,35,54, 159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,116,104,45,100,
36,83,158,35,16,2,248,22,178,7,69,115,111,45,115,117,102,102,105,120,80, 105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,178,7,69,
159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,2,223,0,33,35,80, 115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,16,2,89,162,
159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,6,222,192, 43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,16,2,32,0,
80,159,35,41,36,83,158,35,16,2,247,22,126,80,159,35,42,36,83,158,35, 89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,35,16,2,247,
16,2,247,22,125,80,159,35,43,36,83,158,35,16,2,247,22,61,80,159,35, 22,126,80,159,35,42,36,83,158,35,16,2,247,22,125,80,159,35,43,36,83,
44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97, 158,35,16,2,247,22,61,80,159,35,44,36,83,158,35,16,2,248,22,18,74,
100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,83,158, 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,47,83,158,35,16,2,32,0,89,162,43,37,44,2, 35,16,2,11,80,158,35,46,83,158,35,16,2,11,80,158,35,47,83,158,35,
13,222,33,41,80,159,35,48,36,83,158,35,16,2,89,162,8,44,36,44,2, 16,2,32,0,89,162,43,37,44,2,13,222,33,41,80,159,35,48,36,83,158,
14,223,0,33,50,80,159,35,49,36,83,158,35,16,2,89,162,43,35,43,2, 35,16,2,89,162,8,44,36,44,2,14,223,0,33,50,80,159,35,49,36,83,
15,223,0,33,51,80,159,35,53,36,95,29,94,2,3,68,35,37,107,101,114, 158,35,16,2,89,162,43,35,43,2,15,223,0,33,51,80,159,35,53,36,95,
110,101,108,11,29,94,2,3,69,35,37,109,105,110,45,115,116,120,11,2,4, 29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,2,3,69,35,37,
9,9,9,35,0}; 109,105,110,45,115,116,120,11,2,4,9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 4099); 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!: */ /* Used by vector-set-performance-stats!: */
int scheme_jit_malloced; int scheme_jit_malloced;
static int skip_checks = 0;
#define MAX_SHARED_CALL_RANDS 25 #define MAX_SHARED_CALL_RANDS 25
static void *shared_tail_code[4][MAX_SHARED_CALL_RANDS]; static void *shared_tail_code[4][MAX_SHARED_CALL_RANDS];
static void *shared_non_tail_code[4][MAX_SHARED_CALL_RANDS][2]; 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 */ jit_movr_p(JIT_R2, JIT_R0); /* save original argument */
} }
for (i = 0; i < steps; i++) { for (i = 0; i < steps; i++) {
if (!i) { if (!skip_checks) {
ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); if (!i) {
reffail = _jit.x.pc; ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1);
__END_TINY_JUMPS__(1); reffail = _jit.x.pc;
if (steps == 1) { __END_TINY_JUMPS__(1);
if (name[1] == 'a') { if (steps == 1) {
(void)jit_calli(bad_car_code); if (name[1] == 'a') {
(void)jit_calli(bad_car_code);
} else {
(void)jit_calli(bad_cdr_code);
}
} else { } 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 { } else {
if (name[1] == 'a') { (void)jit_bmsi_ul(reffail, JIT_R0, 0x1);
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); jit_ldxi_s(JIT_R1, JIT_R0, &((Scheme_Object *)0x0)->type);
mz_patch_branch(ref); (void)jit_bnei_i(reffail, JIT_R1, scheme_pair_type);
} else { } 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') { if (name[steps - i] == 'a') {
(void)jit_ldxi_p(JIT_R0, JIT_R0, &((Scheme_Simple_Object *)0x0)->u.pair_val.car); (void)jit_ldxi_p(JIT_R0, JIT_R0, &((Scheme_Simple_Object *)0x0)->u.pair_val.car);
} else { } else {
@ -4524,35 +4530,54 @@ static int generate_binary_char(mz_jit_state *jitter, Scheme_App3_Rec *app,
return 1; 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; GC_CAN_IGNORE jit_insn *ref, *reffail;
__START_TINY_JUMPS__(1); if (!skip_checks) {
ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); __START_TINY_JUMPS__(1);
__END_TINY_JUMPS__(1); ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1);
__END_TINY_JUMPS__(1);
reffail = _jit.x.pc; reffail = _jit.x.pc;
if (set) { if (int_ready) {
(void)jit_calli(vector_set_check_index_code); 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 { } 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); if (!int_ready) {
mz_patch_branch(ref); jit_lshi_ul(JIT_V1, JIT_V1, JIT_LOG_WORD_SIZE);
(void)jit_bmci_ul(reffail, JIT_R1, 0x1); jit_addi_p(JIT_V1, JIT_V1, (int)&SCHEME_VEC_ELS(0x0));
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 (set) { if (set) {
jit_ldr_p(JIT_R2, JIT_RUNSTACK); jit_ldr_p(JIT_R2, JIT_RUNSTACK);
jit_stxr_p(JIT_V1, JIT_R0, JIT_R2); 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 { } else {
jit_ldxr_p(JIT_R0, JIT_R0, JIT_V1); jit_ldxr_p(JIT_R0, JIT_R0, JIT_V1);
} }
__END_TINY_JUMPS__(1);
return 1; return 1;
} }
@ -4736,7 +4760,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i
if (!which) { if (!which) {
/* vector-ref is relatively simple and worth inlining */ /* vector-ref is relatively simple and worth inlining */
generate_vector_op(jitter, 0); generate_vector_op(jitter, 0, 0);
CHECK_LIMIT(); CHECK_LIMIT();
} else if (which == 1) { } else if (which == 1) {
(void)jit_calli(string_ref_check_index_code); (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; offset = offset << LOG_MZCHAR_SIZE;
jit_movi_l(JIT_V1, offset); jit_movi_l(JIT_V1, offset);
if (!which) { 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) { } else if (which == 1) {
(void)jit_calli(string_ref_code); (void)jit_calli(string_ref_code);
} else { } else {
@ -4975,7 +5001,7 @@ static int generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int
if (!simple) { if (!simple) {
if (!which) { if (!which) {
/* vector-set! is relatively simple and worth inlining */ /* vector-set! is relatively simple and worth inlining */
generate_vector_op(jitter, 1); generate_vector_op(jitter, 1, 0);
CHECK_LIMIT(); CHECK_LIMIT();
} else if (which == 1) { } else if (which == 1) {
(void)jit_calli(string_set_check_index_code); (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; offset = offset << LOG_MZCHAR_SIZE;
jit_movi_l(JIT_V1, offset); jit_movi_l(JIT_V1, offset);
if (!which) { 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) { } else if (which == 1) {
(void)jit_calli(string_set_code); (void)jit_calli(string_set_code);
} else { } else {

View File

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

View File

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

View File

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