3
;; The optimizers have been redone to allow more flags
4
;; The old style optimizations correspond to the first 2
6
;; ( arglist result-type flags {string | function})
8
;; meaning of the flags slot.
9
; '((allocates-new-storage ans); might invoke gbc
10
; (side-effect-p set) ; no effect on arguments
11
; (constantp) ; always returns same result,
13
; (result-type-from-args rfa); if passed args of matching
14
; ;type result is of result type
15
; (is))) ;; extends the `integer stack'.
16
; (cond ((member flag v :test 'eq)
18
;;; valid properties are 'inline-always 'inline-safe 'inline-unsafe
20
;; Note: The order of the properties is important, since the first
21
;; one whose arg types and result type can be matched will be chosen.
24
(or (fboundp 'flags) (load "../cmpnew/cmpeval.lsp"))
28
(push '((fixnum fixnum fixnum) fixnum #.(flags rfa)INLINE-BOOLE3)
29
(get 'boole3 'inline-always))
32
(push '((t) boolean #.(flags set)
33
"@0;(type_of(#0)==t_stream? ((#0)->sm.sm_fp)!=0: 0 )")
34
(get 'fp-okp 'inline-unsafe))
35
(push '((stream) boolean #.(flags set)"((#0)->sm.sm_fp)!=0")
36
(get 'fp-okp 'inline-unsafe))
39
(push '((fixnum fixnum fixnum) fixnum #.(flags)
40
"((((~(-1 << (#0))) << (#1)) & (#2)) >> (#1))")
41
(get 'si::ldb1 'inline-always))
44
(push '((t) boolean #.(flags)"type_of(#0)==t_longfloat")
45
(get 'long-float-p 'inline-always))
48
(push '((object) boolean #.(flags set)"(feof((#0)->sm.sm_fp))")
49
(get 'sfeof 'inline-unsafe))
53
(push '((object) fixnum #.(flags set rfa) "getc((#0)->sm.sm_fp)")
54
(get 'sgetc1 'inline-unsafe))
57
(push '((fixnum object) fixnum #.(flags set rfa)"(putc(#0,(#1)->sm.sm_fp))")
58
(get 'sputc 'inline-unsafe))
59
(push '((character object) fixnum #.(flags set rfa)"(putc(#0,(#1)->sm.sm_fp))")
60
(get 'sputc 'inline-unsafe))
63
(push '((t t) t #.(flags ans set)"read_byte1(#0,#1)")
64
(get 'read-byte1 'inline-unsafe))
67
(push '((t t) t #.(flags ans set)"read_char1(#0,#1)")
68
(get 'read-char1 'inline-unsafe))
71
(push '((fixnum fixnum) fixnum #.(flags)"((#0) << (#1))")
72
(get 'shift<< 'inline-always))
75
(push '((fixnum fixnum) fixnum #.(flags set rfa)"((#0) >> (- (#1)))")
76
(get 'shift>> 'inline-always))
79
(push '((t) boolean #.(flags)"type_of(#0)==t_shortfloat")
80
(get 'short-float-p 'inline-always))
83
(push '(nil t #.(flags ans set)"Ct")
84
(get 'side-effects 'inline-always))
87
(push '((fixnum t t) t #.(flags)
88
"(STcons#0.t=t_cons,STcons#0.m=0,STcons#0.c_car=(#1),
89
STcons#0.c_cdr=(#2),(object)&STcons#0)")
90
(get 'stack-cons 'inline-always))
93
(push '((t t t) t #.(flags ans set)SUBLIS1-INLINE)
94
(get 'sublis1 'inline-always))
97
(push '((t) fixnum #.(flags rfa)
98
"@0;(type_of(#0)==t_symbol ? (#0)->s.st_fillp :not_a_variable((#0)))")
99
(get 'symbol-length 'inline-always))
102
(push '((t fixnum) boolean #.(flags)
103
"@0;(type_of(#0) == t_vector && (#0)->v.v_elttype == (#1))")
104
(get 'vector-type 'inline-always))
107
(push '((t t t) t #.(flags set)"aset1(#0,fixint(#1),#2)")
108
(get 'system:aset 'inline-always))
109
(push '((t fixnum t) t #.(flags set)"aset1(#0,#1,#2)")
110
(get 'system:aset 'inline-always))
111
(push '((t t t) t #.(flags set)"aset1(#0,fix(#1),#2)")
112
(get 'system:aset 'inline-unsafe))
113
(push '(((array t) fixnum t) t #.(flags set)"(#0)->v.v_self[#1]= (#2)")
114
(get 'system:aset 'inline-unsafe))
115
(push '(((array string-char) fixnum character) character #.(flags rfa set)"(#0)->ust.ust_self[#1]= (#2)")
116
(get 'system:aset 'inline-unsafe))
117
(push '(((array fixnum) fixnum fixnum) fixnum #.(flags set rfa)"(#0)->fixa.fixa_self[#1]= (#2)")
118
(get 'system:aset 'inline-unsafe))
119
(push '(((array signed-short) fixnum fixnum) fixnum #.(flags rfa set)"((short *)(#0)->ust.ust_self)[#1]=(#2)")
120
(get 'system:aset 'inline-unsafe))
121
(push '(((array signed-char) fixnum fixnum) fixnum #.(flags rfa set)"((#0)->ust.ust_self)[#1]=(#2)")
122
(get 'system:aset 'inline-unsafe))
123
(push '(((array unsigned-short) fixnum fixnum) fixnum #.(flags rfa set)
124
"((unsigned short *)(#0)->ust.ust_self)[#1]=(#2)")
125
(get 'system:aset 'inline-unsafe))
126
(push '(((array unsigned-char) fixnum fixnum) fixnum #.(flags rfa set)"((#0)->ust.ust_self)[#1]=(#2)")
127
(get 'system:aset 'inline-unsafe))
128
(push '(((array short-float) fixnum short-float) short-float #.(flags rfa set)"(#0)->sfa.sfa_self[#1]= (#2)")
129
(get 'system:aset 'inline-unsafe))
130
(push '(((array long-float) fixnum long-float) long-float #.(flags rfa set)"(#0)->lfa.lfa_self[#1]= (#2)")
131
(get 'system:aset 'inline-unsafe))
132
(push '((t t t t) t #.(flags set)
133
"@0;aset(#0,fix(#1)*(#0)->a.a_dims[1]+fix(#2),#3)")
134
(get 'system:aset 'inline-unsafe))
135
(push '(((array t) fixnum fixnum t) t #.(flags set)
136
"@0;(#0)->a.a_self[(#1)*(#0)->a.a_dims[1]+#2]= (#3)")
137
(get 'system:aset 'inline-unsafe))
138
(push '(((array string-char) fixnum fixnum character) character
140
"@0;(#0)->ust.ust_self[(#1)*(#0)->a.a_dims[1]+#2]= (#3)")
141
(get 'system:aset 'inline-unsafe))
142
(push '(((array fixnum) fixnum fixnum fixnum) fixnum #.(flags set rfa)
143
"@0;(#0)->fixa.fixa_self[(#1)*(#0)->a.a_dims[1]+#2]= (#3)")
144
(get 'system:aset 'inline-unsafe))
145
(push '(((array short-float) fixnum fixnum short-float) short-float #.(flags rfa set)
146
"@0;(#0)->sfa.sfa_self[(#1)*(#0)->a.a_dims[1]+#2]= (#3)")
147
(get 'system:aset 'inline-unsafe))
148
(push '(((array long-float) fixnum fixnum long-float) long-float #.(flags rfa set)
149
"@0;(#0)->lfa.lfa_self[(#1)*(#0)->a.a_dims[1]+#2]= (#3)")
150
(get 'system:aset 'inline-unsafe))
153
(push '((t t t) t #.(flags set)"elt_set(#0,fixint(#1),#2)")
154
(get 'system:char-set 'inline-always))
155
(push '((t fixnum t) t #.(flags set)"elt_set(#0,#1,#2)")
156
(get 'system:char-set 'inline-always))
157
(push '((t t t) t #.(flags set)
158
"@2;((#0)->ust.ust_self[fix(#1)]=char_code(#2),(#2))")
159
(get 'system:char-set 'inline-unsafe))
160
(push '((t fixnum character) character #.(flags rfa set)"(#0)->ust.ust_self[#1]= (#2)")
161
(get 'system:char-set 'inline-unsafe))
164
(push '((t t t) t #.(flags set)"elt_set(#0,fixint(#1),#2)")
165
(get 'system:elt-set 'inline-always))
166
(push '((t fixnum t) t #.(flags set)"elt_set(#0,#1,#2)")
167
(get 'system:elt-set 'inline-always))
168
(push '((t t t) t #.(flags set)"elt_set(#0,fix(#1),#2)")
169
(get 'system:elt-set 'inline-unsafe))
171
;;SYSTEM:FILL-POINTER-SET
172
(push '((t fixnum) fixnum #.(flags rfa set)"((#0)->st.st_fillp)=(#1)")
173
(get 'system:fill-pointer-set 'inline-unsafe))
176
(push '((t) boolean #.(flags)"type_of(#0)==t_fixnum")
177
(get 'system:fixnump 'inline-always))
178
(push '((fixnum) boolean #.(flags)"1")
179
(get 'system:fixnump 'inline-always))
182
(push '((fixnum) t #.(flags ans set)"(MVloc[(#0)])")
183
(get 'system:mv-ref 'inline-always))
186
(push '((t t t) t #.(flags set)"putprop(#0,#1,#2)")
187
(get 'system:putprop 'inline-always))
190
(push '((t t t) t #.(flags set)"elt_set(#0,fixint(#1),#2)")
191
(get 'system:schar-set 'inline-always))
192
(push '((t fixnum t) t #.(flags set)"elt_set(#0,#1,#2)")
193
(get 'system:schar-set 'inline-always))
194
(push '((t t t) t #.(flags set)
195
"@2;((#0)->ust.ust_self[fix(#1)]=char_code(#2),(#2))")
196
(get 'system:schar-set 'inline-unsafe))
197
(push '((t fixnum character) character #.(flags set rfa)"(#0)->ust.ust_self[#1]= (#2)")
198
(get 'system:schar-set 'inline-unsafe))
201
(push '((fixnum t) t #.(flags ans set)"(MVloc[(#0)]=(#1))")
202
(get 'system:set-mv 'inline-always))
205
(push '((t t t) t #.(flags set)"sputprop(#0,#1,#2)")
206
(get 'system:sputprop 'inline-always))
208
;;SYSTEM:STRUCTURE-DEF
209
(push '((t) t #.(flags)"(#0)->str.str_def")
210
(get 'system:structure-def 'inline-unsafe))
212
;;SYSTEM:STRUCTURE-REF
213
(push '((t t fixnum) t #.(flags ans)"structure_ref(#0,#1,#2)")
214
(get 'system:structure-ref 'inline-always))
216
;;SYSTEM:STRUCTURE-SET
217
(push '((t t fixnum t) t #.(flags set)"structure_set(#0,#1,#2,#3)")
218
(get 'system:structure-set 'inline-always))
221
(push '((t) boolean #.(flags)"type_of(#0)==t_structure")
222
(get 'system:structurep 'inline-always))
225
(push '((t t t) t #.(flags set)"aset1(#0,fixint(#1),#2)")
226
(get 'system:svset 'inline-always))
227
(push '((t fixnum t) t #.(flags set)"aset1(#0,#1,#2)")
228
(get 'system:svset 'inline-always))
229
(push '((t t t) t #.(flags set)"((#0)->v.v_self[fix(#1)]=(#2))")
230
(get 'system:svset 'inline-unsafe))
231
(push '((t fixnum t) t #.(flags set)"(#0)->v.v_self[#1]= (#2)")
232
(get 'system:svset 'inline-unsafe))
235
(push '((t t) t #.(flags ans)"number_times(#0,#1)")
236
(get '* 'inline-always))
237
(push '((fixnum-float fixnum-float) short-float #.(flags)"(double)(#0)*(double)(#1)")
238
(get '* 'inline-always))
239
(push '((fixnum-float fixnum-float) long-float #.(flags)"(double)(#0)*(double)(#1)")
240
(get '* 'inline-always))
241
(push '((long-float long-float) long-float #.(flags rfa)"(double)(#0)*(double)(#1)")
242
(get '* 'inline-always))
243
(push '((short-float short-float) short-float #.(flags rfa)"(#0)*(#1)")
244
(get '* 'inline-always))
247
(push '((fixnum fixnum) fixnum #.(flags)"(#0)*(#1)")
248
(get '* 'inline-always))
252
(push '((t t) t #.(flags ans)"number_plus(#0,#1)")
253
(get '+ 'inline-always))
254
(push '((fixnum-float fixnum-float) short-float #.(flags)"(double)(#0)+(double)(#1)")
255
(get '+ 'inline-always))
256
(push '((fixnum-float fixnum-float) long-float #.(flags)"(double)(#0)+(double)(#1)")
257
(get '+ 'inline-always))
258
(push '((long-float long-float) long-float #.(flags rfa)"(double)(#0)+(double)(#1)")
259
(get '+ 'inline-always))
260
(push '((short-float short-float) short-float #.(flags rfa)"(#0)+(#1)")
261
(get '+ 'inline-always))
264
(push '((fixnum fixnum) fixnum #.(flags)"(#0)+(#1)")
265
(get '+ 'inline-always))
269
(push '((t) t #.(flags ans)"number_negate(#0)")
270
(get '- 'inline-always))
271
(push '((t t) t #.(flags ans)"number_minus(#0,#1)")
272
(get '- 'inline-always))
273
(push '((fixnum-float fixnum-float) short-float #.(flags)"(double)(#0)-(double)(#1)")
274
(get '- 'inline-always))
275
(push '((fixnum-float) short-float #.(flags)"-(double)(#0)")
276
(get '- 'inline-always))
277
(push '((fixnum-float) long-float #.(flags)"-(double)(#0)")
278
(get '- 'inline-always))
279
(push '((fixnum-float fixnum-float) long-float #.(flags)"(double)(#0)-(double)(#1)")
280
(get '- 'inline-always))
281
(push '((long-float long-float) long-float #.(flags rfa)"(double)(#0)-(double)(#1)")
282
(get '- 'inline-always))
283
(push '((short-float short-float) short-float #.(flags rfa)"(#0)-(#1)")
284
(get '- 'inline-always))
287
(push '((fixnum fixnum) fixnum #.(flags)"(#0)-(#1)")
288
(get '- 'inline-always))
289
(push '((fixnum) fixnum #.(flags)"-(#0)")
290
(get '- 'inline-always))
294
(push '((fixnum fixnum) fixnum #.(flags)"(#0)/(#1)")
295
(get '/ 'inline-always))
296
(push '((fixnum-float fixnum-float) short-float #.(flags)"(double)(#0)/(double)(#1)")
297
(get '/ 'inline-always))
298
(push '((fixnum-float fixnum-float) long-float #.(flags)"(double)(#0)/(double)(#1)")
299
(get '/ 'inline-always))
300
(push '((long-float long-float) long-float #.(flags rfa)"(double)(#0)/(double)(#1)")
301
(get '/ 'inline-always))
302
(push '((short-float short-float) short-float #.(flags rfa)"(#0)/(#1)")
303
(get '/ 'inline-always))
306
(push '((t t) boolean #.(flags)"number_compare(#0,#1)!=0")
307
(get '/= 'inline-always))
308
(push '((fixnum-float fixnum-float) boolean #.(flags)"(#0)!=(#1)")
309
(get '/= 'inline-always))
312
(push '((t) t #.(flags ans)"one_plus(#0)")
313
(get '1+ 'inline-always))
314
(push '((fixnum-float) short-float #.(flags)"(double)(#0)+1")
315
(get '1+ 'inline-always))
316
(push '((fixnum-float) long-float #.(flags)"(double)(#0)+1")
317
(get '1+ 'inline-always))
318
(push '((fixnum) fixnum #.(flags)"(#0)+1")
319
(get '1+ 'inline-always))
323
(push '((t) t #.(flags ans)"one_minus(#0)")
324
(get '1- 'inline-always))
325
(push '((fixnum) fixnum #.(flags)"(#0)-1")
326
(get '1- 'inline-always))
327
(push '((fixnum-float) short-float #.(flags)"(double)(#0)-1")
328
(get '1- 'inline-always))
329
(push '((fixnum-float) long-float #.(flags)"(double)(#0)-1")
330
(get '1- 'inline-always))
333
(push '((t t) boolean #.(flags)"number_compare(#0,#1)<0")
334
(get '< 'inline-always))
335
(push '((fixnum-float fixnum-float) boolean #.(flags)"(#0)<(#1)")
336
(get '< 'inline-always))
339
(push '((t t) boolean #.(flags)"((object)(#0))<((object)(#1))")
340
(get 'si::objlt 'inline-always))
343
(push '((t t) boolean #.(flags)"number_compare(#0,#1)<=0")
344
(get '<= 'inline-always))
346
(push '((fixnum-float fixnum-float) boolean #.(flags)"(#0)<=(#1)")
347
(get '<= 'inline-always))
350
(push '((t t) boolean #.(flags)"number_compare(#0,#1)==0")
351
(get '= 'inline-always))
353
(push '((fixnum-float fixnum-float) boolean #.(flags)"(#0)==(#1)")
354
(get '= 'inline-always))
357
(push '((t t) boolean #.(flags)"number_compare(#0,#1)>0")
358
(get '> 'inline-always))
360
(push '((fixnum-float fixnum-float) boolean #.(flags)"(#0)>(#1)")
361
(get '> 'inline-always))
364
(push '((t t) boolean #.(flags)"number_compare(#0,#1)>=0")
365
(get '>= 'inline-always))
366
(push '((fixnum-float fixnum-float) boolean #.(flags)"(#0)>=(#1)")
367
(get '>= 'inline-always))
370
(push '((t t) t #.(flags ans)"append(#0,#1)")
371
(get 'append 'inline-always))
374
(push '((t t) t #.(flags ans)"aref1(#0,fixint(#1))")
375
(get 'aref 'inline-always))
376
(push '((t fixnum) t #.(flags ans)"aref1(#0,#1)")
377
(get 'aref 'inline-always))
378
(push '((t t) t #.(flags ans)"aref1(#0,fix(#1))")
379
(get 'aref 'inline-unsafe))
380
(push '(((array t) fixnum) t #.(flags)"(#0)->v.v_self[#1]")
381
(get 'aref 'inline-unsafe))
382
(push '(((array string-char) fixnum) character #.(flags rfa)"(#0)->ust.ust_self[#1]")
383
(get 'aref 'inline-unsafe))
384
(push '(((array fixnum) fixnum) fixnum #.(flags rfa)"(#0)->fixa.fixa_self[#1]")
385
(get 'aref 'inline-unsafe))
386
(push '(((array unsigned-char) fixnum) fixnum #.(flags rfa)"(#0)->ust.ust_self[#1]")
387
(get 'aref 'inline-unsafe))
388
(push '(((array signed-char) fixnum) fixnum #.(flags rfa)"SIGNED_CHAR((#0)->ust.ust_self[#1])")
389
(get 'aref 'inline-unsafe))
390
(push '(((array unsigned-short) fixnum) fixnum #.(flags rfa)
391
"((unsigned short *)(#0)->ust.ust_self)[#1]")
392
(get 'aref 'inline-unsafe))
393
(push '(((array signed-short) fixnum) fixnum #.(flags rfa)"((short *)(#0)->ust.ust_self)[#1]")
394
(get 'aref 'inline-unsafe))
395
(push '(((array short-float) fixnum) short-float #.(flags rfa)"(#0)->sfa.sfa_self[#1]")
396
(get 'aref 'inline-unsafe))
397
(push '(((array long-float) fixnum) long-float #.(flags rfa)"(#0)->lfa.lfa_self[#1]")
398
(get 'aref 'inline-unsafe))
399
(push '((t t t) t #.(flags ans)
400
"@0;aref(#0,fix(#1)*(#0)->a.a_dims[1]+fix(#2))")
401
(get 'aref 'inline-unsafe))
402
(push '(((array t) fixnum fixnum) t #.(flags )
403
"@0;(#0)->a.a_self[(#1)*(#0)->a.a_dims[1]+#2]")
404
(get 'aref 'inline-unsafe))
405
(push '(((array string-char) fixnum fixnum) character #.(flags rfa)
406
"@0;(#0)->ust.ust_self[(#1)*(#0)->a.a_dims[1]+#2]")
407
(get 'aref 'inline-unsafe))
408
(push '(((array fixnum) fixnum fixnum) fixnum #.(flags rfa)
409
"@0;(#0)->fixa.fixa_self[(#1)*(#0)->a.a_dims[1]+#2]")
410
(get 'aref 'inline-unsafe))
411
(push '(((array short-float) fixnum fixnum) short-float #.(flags rfa)
412
"@0;(#0)->sfa.sfa_self[(#1)*(#0)->a.a_dims[1]+#2]")
413
(get 'aref 'inline-unsafe))
414
(push '(((array long-float) fixnum fixnum) long-float #.(flags rfa)
415
"@0;(#0)->lfa.lfa_self[(#1)*(#0)->a.a_dims[1]+#2]")
416
(get 'aref 'inline-unsafe))
419
(push '((t) fixnum #.(flags rfa)"((#0)->st.st_dim)")
420
(get 'array-total-size 'inline-unsafe))
423
(push '((t) boolean #.(flags)
424
"@0;type_of(#0)==t_array||
425
type_of(#0)==t_vector||
426
type_of(#0)==t_string||
427
type_of(#0)==t_bitvector")
428
(get 'arrayp 'inline-always))
431
(push '((t) boolean #.(flags)"type_of(#0)!=t_cons")
432
(get 'atom 'inline-always))
435
(push '((t) boolean #.(flags)"(type_of(#0)==t_bitvector)")
436
(get 'bit-vector-p 'inline-always))
439
(push '((t) boolean #.(flags)"(#0)->s.s_dbind!=OBJNULL")
440
(get 'boundp 'inline-unsafe))
443
(push '((t) t #.(flags)"caaaar(#0)")
444
(get 'caaaar 'inline-safe))
445
(push '((t) t #.(flags)"CMPcaaaar(#0)")
446
(get 'caaaar 'inline-unsafe))
449
(push '((t) t #.(flags)"caaadr(#0)")
450
(get 'caaadr 'inline-safe))
451
(push '((t) t #.(flags)"CMPcaaadr(#0)")
452
(get 'caaadr 'inline-unsafe))
455
(push '((t) t #.(flags)"caaar(#0)")
456
(get 'caaar 'inline-safe))
457
(push '((t) t #.(flags)"CMPcaaar(#0)")
458
(get 'caaar 'inline-unsafe))
461
(push '((t) t #.(flags)"caadar(#0)")
462
(get 'caadar 'inline-safe))
463
(push '((t) t #.(flags)"CMPcaadar(#0)")
464
(get 'caadar 'inline-unsafe))
467
(push '((t) t #.(flags)"caaddr(#0)")
468
(get 'caaddr 'inline-safe))
469
(push '((t) t #.(flags)"CMPcaaddr(#0)")
470
(get 'caaddr 'inline-unsafe))
473
(push '((t) t #.(flags)"caadr(#0)")
474
(get 'caadr 'inline-safe))
475
(push '((t) t #.(flags)"CMPcaadr(#0)")
476
(get 'caadr 'inline-unsafe))
479
(push '((t) t #.(flags)"caar(#0)")
480
(get 'caar 'inline-safe))
481
(push '((t) t #.(flags)"CMPcaar(#0)")
482
(get 'caar 'inline-unsafe))
485
(push '((t) t #.(flags)"cadaar(#0)")
486
(get 'cadaar 'inline-safe))
487
(push '((t) t #.(flags)"CMPcadaar(#0)")
488
(get 'cadaar 'inline-unsafe))
491
(push '((t) t #.(flags)"cadadr(#0)")
492
(get 'cadadr 'inline-safe))
493
(push '((t) t #.(flags)"CMPcadadr(#0)")
494
(get 'cadadr 'inline-unsafe))
497
(push '((t) t #.(flags)"cadar(#0)")
498
(get 'cadar 'inline-safe))
499
(push '((t) t #.(flags)"CMPcadar(#0)")
500
(get 'cadar 'inline-unsafe))
503
(push '((t) t #.(flags)"caddar(#0)")
504
(get 'caddar 'inline-safe))
505
(push '((t) t #.(flags)"CMPcaddar(#0)")
506
(get 'caddar 'inline-unsafe))
509
(push '((t) t #.(flags)"cadddr(#0)")
510
(get 'cadddr 'inline-safe))
511
(push '((t) t #.(flags)"CMPcadddr(#0)")
512
(get 'cadddr 'inline-unsafe))
515
(push '((t) t #.(flags)"caddr(#0)")
516
(get 'caddr 'inline-safe))
517
(push '((t) t #.(flags)"CMPcaddr(#0)")
518
(get 'caddr 'inline-unsafe))
521
(push '((t) t #.(flags)"cadr(#0)")
522
(get 'cadr 'inline-safe))
523
(push '((t) t #.(flags)"CMPcadr(#0)")
524
(get 'cadr 'inline-unsafe))
527
(push '((t) t #.(flags)"car(#0)")
528
(get 'car 'inline-safe))
529
(push '((t) t #.(flags)"CMPcar(#0)")
530
(get 'car 'inline-unsafe))
533
(push '((t) t #.(flags)"cdaaar(#0)")
534
(get 'cdaaar 'inline-safe))
535
(push '((t) t #.(flags)"CMPcdaaar(#0)")
536
(get 'cdaaar 'inline-unsafe))
539
(push '((t) t #.(flags)"cdaadr(#0)")
540
(get 'cdaadr 'inline-safe))
541
(push '((t) t #.(flags)"CMPcdaadr(#0)")
542
(get 'cdaadr 'inline-unsafe))
545
(push '((t) t #.(flags)"cdaar(#0)")
546
(get 'cdaar 'inline-safe))
547
(push '((t) t #.(flags)"CMPcdaar(#0)")
548
(get 'cdaar 'inline-unsafe))
551
(push '((t) t #.(flags)"cdadar(#0)")
552
(get 'cdadar 'inline-safe))
553
(push '((t) t #.(flags)"CMPcdadar(#0)")
554
(get 'cdadar 'inline-unsafe))
557
(push '((t) t #.(flags)"cdaddr(#0)")
558
(get 'cdaddr 'inline-safe))
559
(push '((t) t #.(flags)"CMPcdaddr(#0)")
560
(get 'cdaddr 'inline-unsafe))
563
(push '((t) t #.(flags)"cdadr(#0)")
564
(get 'cdadr 'inline-safe))
565
(push '((t) t #.(flags)"CMPcdadr(#0)")
566
(get 'cdadr 'inline-unsafe))
569
(push '((t) t #.(flags)"cdar(#0)")
570
(get 'cdar 'inline-safe))
571
(push '((t) t #.(flags)"CMPcdar(#0)")
572
(get 'cdar 'inline-unsafe))
575
(push '((t) t #.(flags)"cddaar(#0)")
576
(get 'cddaar 'inline-safe))
577
(push '((t) t #.(flags)"CMPcddaar(#0)")
578
(get 'cddaar 'inline-unsafe))
581
(push '((t) t #.(flags)"cddadr(#0)")
582
(get 'cddadr 'inline-safe))
583
(push '((t) t #.(flags)"CMPcddadr(#0)")
584
(get 'cddadr 'inline-unsafe))
587
(push '((t) t #.(flags)"cddar(#0)")
588
(get 'cddar 'inline-safe))
589
(push '((t) t #.(flags)"CMPcddar(#0)")
590
(get 'cddar 'inline-unsafe))
593
(push '((t) t #.(flags)"cdddar(#0)")
594
(get 'cdddar 'inline-safe))
595
(push '((t) t #.(flags)"CMPcdddar(#0)")
596
(get 'cdddar 'inline-unsafe))
599
(push '((t) t #.(flags)"cddddr(#0)")
600
(get 'cddddr 'inline-safe))
601
(push '((t) t #.(flags)"CMPcddddr(#0)")
602
(get 'cddddr 'inline-unsafe))
605
(push '((t) t #.(flags)"cdddr(#0)")
606
(get 'cdddr 'inline-safe))
607
(push '((t) t #.(flags)"CMPcdddr(#0)")
608
(get 'cdddr 'inline-unsafe))
611
(push '((t) t #.(flags)"cddr(#0)")
612
(get 'cddr 'inline-safe))
613
(push '((t) t #.(flags)"CMPcddr(#0)")
614
(get 'cddr 'inline-unsafe))
617
(push '((t) t #.(flags)"cdr(#0)")
618
(get 'cdr 'inline-safe))
619
(push '((t) t #.(flags)"CMPcdr(#0)")
620
(get 'cdr 'inline-unsafe))
623
(push '((t t) t #.(flags ans)"elt(#0,fixint(#1))")
624
(get 'char 'inline-always))
625
(push '((t fixnum) t #.(flags ans)"elt(#0,#1)")
626
(get 'char 'inline-always))
627
(push '((t t) t #.(flags)"code_char((#0)->ust.ust_self[fix(#1)])")
628
(get 'char 'inline-unsafe))
629
(push '((t fixnum) character #.(flags rfa)"(#0)->ust.ust_self[#1]")
630
(get 'char 'inline-unsafe))
633
(push '((character) fixnum #.(flags rfa)"(#0)")
634
(get 'char-code 'inline-always))
637
(push '((character character) boolean #.(flags)"(#0)!=(#1)")
638
(get 'char/= 'inline-always))
639
(push '((t t) boolean #.(flags)"!eql(#0,#1)")
640
(get 'char/= 'inline-unsafe))
641
(push '((t t) boolean #.(flags)"char_code(#0)!=char_code(#1)")
642
(get 'char/= 'inline-unsafe))
645
(push '((character character) boolean #.(flags)"(#0)<(#1)")
646
(get 'char< 'inline-always))
649
(push '((character character) boolean #.(flags)"(#0)<=(#1)")
650
(get 'char<= 'inline-always))
653
(push '((t t) boolean #.(flags)"eql(#0,#1)")
654
(get 'char= 'inline-unsafe))
655
(push '((t t) boolean #.(flags)"char_code(#0)==char_code(#1)")
656
(get 'char= 'inline-unsafe))
657
(push '((character character) boolean #.(flags)"(#0)==(#1)")
658
(get 'char= 'inline-unsafe))
661
(push '((character character) boolean #.(flags)"(#0)>(#1)")
662
(get 'char> 'inline-always))
665
(push '((character character) boolean #.(flags)"(#0)>=(#1)")
666
(get 'char>= 'inline-always))
669
(push '((t) boolean #.(flags)"type_of(#0)==t_character")
670
(get 'characterp 'inline-always))
673
(push '((fixnum) character #.(flags)"(#0)")
674
(get 'code-char 'inline-always))
677
(push '((t t) t #.(flags ans)"make_cons(#0,#1)")
678
(get 'cons 'inline-always))
679
(push '((t t) :dynamic-extent #.(flags ans)"ON_STACK_CONS(#0,#1)")
680
(get 'cons 'inline-always))
683
(push '((t) boolean #.(flags)"type_of(#0)==t_cons")
684
(get 'consp 'inline-always))
687
(push '((long-float) long-float #.(flags rfa)"cos(#0)")
688
(get 'cos 'inline-always))
691
(push '((character) boolean #.(flags)"@0; ((#0) <= '9' && (#0) >= '0')")
692
(get 'digit-char-p 'inline-always))
695
(push '((t t) t #.(flags ans)"elt(#0,fixint(#1))")
696
(get 'elt 'inline-always))
697
(push '((t fixnum) t #.(flags ans)"elt(#0,#1)")
698
(get 'elt 'inline-always))
699
(push '((t t) t #.(flags ans)"elt(#0,fix(#1))")
700
(get 'elt 'inline-unsafe))
703
;;Must use endp_prop here as generic lisp code containing (endp
704
;;can be compiled to take function output as its argument, which
705
;;cannot be redirected via a macro, e.g. endp(cdr(V20)). CM
706
(push '((t) boolean #.(flags)"endp_prop(#0)")
707
(get 'endp 'inline-safe))
708
(push '((t) boolean #.(flags)"(#0)==Cnil")
709
(get 'endp 'inline-unsafe))
712
(push '((t t) boolean #.(flags)"(#0)==(#1)")
713
(get 'eq 'inline-always))
714
(push '((fixnum fixnum) boolean #.(flags)"0")
715
(get 'eq 'inline-always))
718
(push '((t t) boolean #.(flags)"eql(#0,#1)")
719
(get 'eql 'inline-always))
720
(push '((fixnum fixnum) boolean #.(flags)"(#0)==(#1)")
721
(get 'eql 'inline-always))
722
(push '((character character) boolean #.(flags)"(#0)==(#1)")
723
(get 'eql 'inline-always))
727
(push '((t t) boolean #.(flags)"equal(#0,#1)")
728
(get 'equal 'inline-always))
729
(push '((fixnum fixnum) boolean #.(flags)"(#0)==(#1)")
730
(get 'equal 'inline-always))
733
(push '((t t) boolean #.(flags)"equalp(#0,#1)")
734
(get 'equalp 'inline-always))
735
(push '((fixnum fixnum) boolean #.(flags)"(#0)==(#1)")
736
(get 'equalp 'inline-always))
739
(push '((t t) t #.(flags ans)"number_expt(#0,#1)")
740
(get 'expt 'inline-always))
742
(push '((fixnum fixnum) fixnum #.(flags)(LAMBDA (LOC1 LOC2)
745
(EQ (CAR LOC1) 'FIXNUM-LOC)
749
(EQUAL (CADDR (CADR LOC1))
751
(WT "(1<<(" LOC2 "))")
752
(WT "fixnum_expt(" LOC1 #\,
754
(get 'expt 'inline-always))
758
(push '((t) fixnum #.(flags rfa)"((#0)->st.st_fillp)")
759
(get 'fill-pointer 'inline-unsafe))
762
(push '((t) t #.(flags)"car(#0)")
763
(get 'first 'inline-safe))
764
(push '((t) t #.(flags)"CMPcar(#0)")
765
(get 'first 'inline-unsafe))
768
(push '((fixnum-float) long-float #.(flags)"((longfloat)(#0))")
769
(get 'float 'inline-always))
770
(push '((fixnum-float) short-float #.(flags)"((shortfloat)(#0))")
771
(get 'float 'inline-always))
774
(push '((t) boolean #.(flags)
775
"@0;type_of(#0)==t_shortfloat||type_of(#0)==t_longfloat")
776
(get 'floatp 'inline-always))
779
; (push '((fixnum fixnum) fixnum #.(flags rfa)
780
; "@01;(#0>=0&&(#1)>0?(#0)/(#1):ifloor(#0,#1))")
781
; (get 'floor 'inline-always))
782
(push '((fixnum fixnum) fixnum #.(flags rfa)
783
"@01;({fixnum _t=(#0)/(#1);((#1)<0 && (#0)<=0) || ((#1)>0 && (#0)>=0) || ((#1)*_t == (#0)) ? _t : _t - 1;})")
784
(get 'floor 'inline-always))
787
(push '((t) t #.(flags)"cadddr(#0)")
788
(get 'fourth 'inline-safe))
789
(push '((t) t #.(flags)"CMPcadddr(#0)")
790
(get 'fourth 'inline-unsafe))
793
(push '((t t t) t #.(flags)"get(#0,#1,#2)")
794
(get 'get 'inline-always))
795
(push '((t t) t #.(flags)"get(#0,#1,Cnil)")
796
(get 'get 'inline-always))
799
(push '((t) boolean #.(flags)
800
"@0;type_of(#0)==t_fixnum||type_of(#0)==t_bignum")
801
(get 'integerp 'inline-always))
802
(push '((fixnum) boolean #.(flags)
804
(get 'integerp 'inline-always))
808
(push '((t) boolean #.(flags)
809
"@0;(type_of(#0)==t_symbol&&(#0)->s.s_hpack==keyword_package)")
810
(get 'keywordp 'inline-always))
813
(push '((t) fixnum #.(flags rfa)"((fixnum)(#0))")
814
(get 'si::address 'inline-always))
817
(push '((fixnum) t #.(flags rfa)"((object)(#0))")
818
(get 'si::nani 'inline-always))
822
(push '((t) fixnum #.(flags rfa)"length(#0)")
823
(get 'length 'inline-always))
824
(push '(((array t)) fixnum #.(flags rfa)"(#0)->v.v_fillp")
825
(get 'length 'inline-unsafe))
826
(push '(((array fixnum)) fixnum #.(flags rfa)"(#0)->v.v_fillp")
827
(get 'length 'inline-unsafe))
828
(push '((string) fixnum #.(flags rfa)"(#0)->v.v_fillp")
829
(get 'length 'inline-unsafe))
832
(push '(nil t #.(flags)"Cnil")
833
(get 'list 'inline-always))
834
(push '((t) t #.(flags ans)"make_cons(#0,Cnil)")
835
(get 'list 'inline-always))
836
(push '((t t) t #.(flags ans)LIST-INLINE)
837
(get 'list 'inline-always))
838
(push '((t t t) t #.(flags ans)LIST-INLINE)
839
(get 'list 'inline-always))
840
(push '((t t t t) t #.(flags ans)LIST-INLINE)
841
(get 'list 'inline-always))
842
(push '((t t t t t) t #.(flags ans)LIST-INLINE)
843
(get 'list 'inline-always))
844
(push '((t t t t t t) t #.(flags ans)LIST-INLINE)
845
(get 'list 'inline-always))
846
(push '((t t t t t t t) t #.(flags ans)LIST-INLINE)
847
(get 'list 'inline-always))
848
(push '((t t t t t t t t) t #.(flags ans)LIST-INLINE)
849
(get 'list 'inline-always))
850
(push '((t t t t t t t t t) t #.(flags ans)LIST-INLINE)
851
(get 'list 'inline-always))
852
(push '((t t t t t t t t t t) t #.(flags ans)LIST-INLINE)
853
(get 'list 'inline-always))
856
(push '((t) t #.(flags)"(#0)")
857
(get 'list* 'inline-always))
858
(push '((t t) t #.(flags ans)"make_cons(#0,#1)")
859
(get 'list* 'inline-always))
860
(push '((t t t) t #.(flags ans)LIST*-INLINE)
861
(get 'list* 'inline-always))
862
(push '((t t t t) t #.(flags ans)LIST*-INLINE)
863
(get 'list* 'inline-always))
864
(push '((t t t t t) t #.(flags ans)LIST*-INLINE)
865
(get 'list* 'inline-always))
866
(push '((t t t t t t) t #.(flags ans)LIST*-INLINE)
867
(get 'list* 'inline-always))
868
(push '((t t t t t t t) t #.(flags ans)LIST*-INLINE)
869
(get 'list* 'inline-always))
870
(push '((t t t t t t t t) t #.(flags ans)LIST*-INLINE)
871
(get 'list* 'inline-always))
872
(push '((t t t t t t t t t) t #.(flags ans)LIST*-INLINE)
873
(get 'list* 'inline-always))
874
(push '((t t t t t t t t t t) t #.(flags ans)LIST*-INLINE)
875
(get 'list* 'inline-always))
878
(push '((t) boolean #.(flags)"@0;type_of(#0)==t_cons||(#0)==Cnil")
879
(get 'listp 'inline-always))
882
(push '((fixnum fixnum) fixnum #.(flags rfa)"((#0) & (#1))")
883
(get 'logand 'inline-always))
886
(push '((fixnum fixnum) fixnum #.(flags rfa)"((#0) | (#1))")
887
(get 'logior 'inline-always))
890
(push '((fixnum fixnum) fixnum #.(flags rfa)"((#0) ^ (#1))")
891
(get 'logxor 'inline-always))
894
(push '((fixnum) fixnum #.(flags rfa)"(~(#0))")
895
(get 'lognot 'inline-always))
898
(push '((fixnum) :dynamic-extent #.(flags ans)
899
"@0;(ALLOCA_CONS(#0),ON_STACK_MAKE_LIST(#0))")
900
(get 'make-list 'inline-always))
903
(push '((t t) t #.(flags)"@01;(number_compare(#0,#1)>=0?(#0):#1)")
904
(get 'max 'inline-always))
905
(push '((fixnum fixnum) fixnum #.(flags rfa)"@01;((#0)>=(#1)?(#0):#1)")
906
(get 'max 'inline-always))
909
(push '((t t) t #.(flags)"@01;(number_compare(#0,#1)<=0?(#0):#1)")
910
(get 'min 'inline-always))
911
(push '((fixnum fixnum) fixnum #.(flags rfa)"@01;((#0)<=(#1)?(#0):#1)")
912
(get 'min 'inline-always))
915
(push '((t) boolean #.(flags)"number_compare(small_fixnum(0),#0)>0")
916
(get 'minusp 'inline-always))
917
(push '((fixnum-float) boolean #.(flags)"(#0)<0")
918
(get 'minusp 'inline-always))
921
; (push '((fixnum fixnum) fixnum #.(flags rfa)"@01;(#0>=0&&(#1)>0?(#0)%(#1):imod(#0,#1))")
922
; (get 'mod 'inline-always))
923
(push '((fixnum fixnum) fixnum #.(flags rfa)"@01;({fixnum _t=(#0)%(#1);((#1)<0 && _t<=0) || ((#1)>0 && _t>=0) ? _t : _t + (#1);})")
924
(get 'mod 'inline-always))
927
(push '((t t) t #.(flags set)"nconc(#0,#1)")
928
(get 'nconc 'inline-always))
931
(push '((t) boolean #.(flags)"(#0)==Cnil")
932
(get 'not 'inline-always))
935
(push '((t) t #.(flags ans set)"nreverse(#0)")
936
(get 'nreverse 'inline-always))
939
(push '((t t) t #.(flags)"nth(fixint(#0),#1)")
940
(get 'nth 'inline-always))
941
(push '((fixnum t) t #.(flags)"nth(#0,#1)")
942
(get 'nth 'inline-always))
943
(push '((t t) t #.(flags)"nth(fix(#0),#1)")
944
(get 'nth 'inline-unsafe))
947
(push '((t t) t #.(flags)"nthcdr(fixint(#0),#1)")
948
(get 'nthcdr 'inline-always))
949
(push '((fixnum t) t #.(flags)"nthcdr(#0,#1)")
950
(get 'nthcdr 'inline-always))
951
(push '((t t) t #.(flags)"nthcdr(fix(#0),#1)")
952
(get 'nthcdr 'inline-unsafe))
955
(push '((t) boolean #.(flags)"(#0)==Cnil")
956
(get 'null 'inline-always))
959
(push '((t) boolean #.(flags)
960
"@0;type_of(#0)==t_fixnum||
961
type_of(#0)==t_bignum||
962
type_of(#0)==t_ratio||
963
type_of(#0)==t_shortfloat||
964
type_of(#0)==t_longfloat||
965
type_of(#0)==t_complex")
966
(get 'numberp 'inline-always))
969
(push '((t) boolean #.(flags)"number_compare(small_fixnum(0),#0)<0")
970
(get 'plusp 'inline-always))
971
(push '((fixnum-float) boolean #.(flags)"(#0)>0")
972
(get 'plusp 'inline-always))
975
(push '((t t) t #.(flags set)"prin1(#0,#1)")
976
(get 'prin1 'inline-always))
977
(push '((t) t #.(flags set)"prin1(#0,Cnil)")
978
(get 'prin1 'inline-always))
981
(push '((t t) t #.(flags set)"princ(#0,#1)")
982
(get 'princ 'inline-always))
983
(push '((t) t #.(flags set)"princ(#0,Cnil)")
984
(get 'princ 'inline-always))
987
(push '((t t) t #.(flags set)"print(#0,#1)")
988
(get 'print 'inline-always))
989
(push '((t) t #.(flags set)"print(#0,Cnil)")
990
(get 'print 'inline-always))
993
(push '((t) boolean #.(flags)"(file_exists(#0))")
994
(get 'probe-file 'inline-always))
997
(push '((t) boolean #.(flags) "type_of(#0)==t_ratio")
998
(get 'ratiop 'inline-always))
1005
(push '((fixnum fixnum) fixnum #.(flags rfa)"(#0)%(#1)")
1006
(get 'rem 'inline-always))
1012
(push '((t t) t #.(flags set)"remprop(#0,#1)")
1013
(get 'remprop 'inline-always))
1016
(push '((t) t #.(flags)"cdr(#0)")
1017
(get 'rest 'inline-safe))
1018
(push '((t) t #.(flags)"CMPcdr(#0)")
1019
(get 'rest 'inline-unsafe))
1022
(push '((t) t #.(flags ans)"reverse(#0)")
1023
(get 'reverse 'inline-always))
1026
(push '((t t) t #.(flags ans)"elt(#0,fixint(#1))")
1027
(get 'schar 'inline-always))
1028
(push '((t fixnum) t #.(flags ans)"elt(#0,#1)")
1029
(get 'schar 'inline-always))
1030
(push '((t t) t #.(flags rfa)"code_char((#0)->ust.ust_self[fix(#1)])")
1031
(get 'schar 'inline-unsafe))
1032
(push '((t fixnum) character #.(flags rfa)"(#0)->ust.ust_self[#1]")
1033
(get 'schar 'inline-unsafe))
1036
(push '((t) t #.(flags)"cadr(#0)")
1037
(get 'second 'inline-safe))
1038
(push '((t) t #.(flags)"CMPcadr(#0)")
1039
(get 'second 'inline-unsafe))
1042
(push '((long-float) long-float #.(flags rfa)"sin(#0)")
1043
(get 'sin 'inline-always))
1046
(push '((t) t #.(flags ans)"coerce_to_string(#0)")
1047
(get 'string 'inline-always))
1050
(push '((t) boolean #.(flags)"type_of(#0)==t_string")
1051
(get 'stringp 'inline-always))
1054
(push '((t t) t #.(flags ans)"aref1(#0,fixint(#1))")
1055
(get 'svref 'inline-always))
1056
(push '((t fixnum) t #.(flags ans)"aref1(#0,#1)")
1057
(get 'svref 'inline-always))
1058
(push '((t t) t #.(flags)"(#0)->v.v_self[fix(#1)]")
1059
(get 'svref 'inline-unsafe))
1060
(push '((t fixnum) t #.(flags)"(#0)->v.v_self[#1]")
1061
(get 'svref 'inline-unsafe))
1064
(push '((t) t #.(flags ans)"symbol_name(#0)")
1065
(get 'symbol-name 'inline-always))
1068
(push (list '(t) t #.(flags) "((#0)->s.s_plist)")
1069
(get 'symbol-plist 'inline-unsafe))
1072
(push '((t) boolean #.(flags)"type_of(#0)==t_symbol")
1073
(get 'symbolp 'inline-always))
1076
(push '((long-float) long-float #.(flags rfa)"tan(#0)")
1077
(get 'tan 'inline-always))
1080
(push '((long-float) long-float #.(flags rfa)"sqrt((double)#0)")
1081
(get 'sqrt 'inline-always))
1084
(push '((t) t #.(flags set)"terpri(#0)")
1085
(get 'terpri 'inline-always))
1086
(push '(nil t #.(flags set)"terpri(Cnil)")
1087
(get 'terpri 'inline-always))
1090
(push '((t) t #.(flags)"caddr(#0)")
1091
(get 'third 'inline-safe))
1092
(push '((t) t #.(flags)"CMPcaddr(#0)")
1093
(get 'third 'inline-unsafe))
1099
(push '((fixnum fixnum) fixnum #.(flags rfa)"(#0)/(#1)")
1100
(get 'truncate 'inline-always))
1101
(push '((fixnum-float) fixnum #.(flags)"(fixnum)(#0)")
1102
(get 'truncate 'inline-always))
1107
(push '((t) boolean #.(flags)
1108
"@0;type_of(#0)==t_vector||
1109
type_of(#0)==t_string||
1110
type_of(#0)==t_bitvector")
1111
(get 'vectorp 'inline-always))
1114
(push '((t) t #.(flags set)
1115
"@0;(writec_stream(char_code(#0),Vstandard_output->s.s_dbind),(#0))")
1116
(get 'write-char 'inline-unsafe))
1119
(push '((t) boolean #.(flags)"number_compare(small_fixnum(0),#0)==0")
1120
(get 'zerop 'inline-always))
1122
(push '((fixnum-float) boolean #.(flags)"(#0)==0")
1123
(get 'zerop 'inline-always))
1126
(push '((t) t #.(flags) "cmod(#0)")
1127
(get 'system:cmod 'inline-always))
1130
(push '((t t) t #.(flags) "ctimes(#0,#1)")
1131
(get 'system:ctimes 'inline-always))
1134
(push '((t t) t #.(flags) "cplus(#0,#1)")
1135
(get 'system:cplus 'inline-always))
1138
(push '((t t) t #.(flags) "cdifference(#0,#1)")
1139
(get 'system:cdifference 'inline-always))