@@ -120,40 +120,12 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
120
120
end
121
121
elseif f === Core. apply_type
122
122
return Some {Any} (Core. apply_type (getargs (args, frame)... ))
123
- elseif f === Core. arrayref
124
- if nargs == 3
125
- return Some {Any} (Core. arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
126
- elseif nargs == 4
127
- return Some {Any} (Core. arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
128
- elseif nargs == 5
129
- return Some {Any} (Core. arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
130
- else
131
- return Some {Any} (Core. arrayref (getargs (args, frame)... ))
132
- end
133
- elseif f === Core. arrayset
134
- if nargs == 4
135
- return Some {Any} (Core. arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
136
- elseif nargs == 5
137
- return Some {Any} (Core. arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
138
- elseif nargs == 6
139
- return Some {Any} (Core. arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ]), @lookup (frame, args[7 ])))
140
- else
141
- return Some {Any} (Core. arrayset (getargs (args, frame)... ))
142
- end
143
- elseif f === Core. arraysize
144
- if nargs == 2
145
- return Some {Any} (Core. arraysize (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
146
- else
147
- return Some {Any} (Core. arraysize (getargs (args, frame)... ))
148
- end
149
123
elseif @static isdefined (Core, :compilerbarrier ) && f === Core. compilerbarrier
150
124
if nargs == 2
151
125
return Some {Any} (Core. compilerbarrier (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
152
126
else
153
127
return Some {Any} (Core. compilerbarrier (getargs (args, frame)... ))
154
128
end
155
- elseif f === Core. const_arrayref
156
- return Some {Any} (Core. const_arrayref (getargs (args, frame)... ))
157
129
elseif @static isdefined (Core, :donotdelete ) && f === Core. donotdelete
158
130
return Some {Any} (Core. donotdelete (getargs (args, frame)... ))
159
131
elseif @static isdefined (Core, :finalizer ) && f === Core. finalizer
@@ -178,6 +150,44 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
178
150
else
179
151
return Some {Any} (Core. ifelse (getargs (args, frame)... ))
180
152
end
153
+ elseif @static isdefined (Core, :memoryref ) && f === Core. memoryref
154
+ if nargs == 1
155
+ return Some {Any} (Core. memoryref (@lookup (frame, args[2 ])))
156
+ elseif nargs == 2
157
+ return Some {Any} (Core. memoryref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
158
+ elseif nargs == 3
159
+ return Some {Any} (Core. memoryref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
160
+ elseif nargs == 4
161
+ return Some {Any} (Core. memoryref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
162
+ elseif nargs == 5
163
+ return Some {Any} (Core. memoryref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
164
+ else
165
+ return Some {Any} (Core. memoryref (getargs (args, frame)... ))
166
+ end
167
+ elseif @static isdefined (Core, :memoryref_isassigned ) && f === Core. memoryref_isassigned
168
+ if nargs == 3
169
+ return Some {Any} (Core. memoryref_isassigned (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
170
+ else
171
+ return Some {Any} (Core. memoryref_isassigned (getargs (args, frame)... ))
172
+ end
173
+ elseif @static isdefined (Core, :memoryrefget ) && f === Core. memoryrefget
174
+ if nargs == 3
175
+ return Some {Any} (Core. memoryrefget (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
176
+ else
177
+ return Some {Any} (Core. memoryrefget (getargs (args, frame)... ))
178
+ end
179
+ elseif @static isdefined (Core, :memoryrefoffset ) && f === Core. memoryrefoffset
180
+ if nargs == 1
181
+ return Some {Any} (Core. memoryrefoffset (@lookup (frame, args[2 ])))
182
+ else
183
+ return Some {Any} (Core. memoryrefoffset (getargs (args, frame)... ))
184
+ end
185
+ elseif @static isdefined (Core, :memoryrefset! ) && f === Core. memoryrefset!
186
+ if nargs == 4
187
+ return Some {Any} (Core. memoryrefset! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
188
+ else
189
+ return Some {Any} (Core. memoryrefset! (getargs (args, frame)... ))
190
+ end
181
191
elseif @static isdefined (Core, :set_binding_type! ) && f === Core. set_binding_type!
182
192
return Some {Any} (Core. set_binding_type! (getargs (args, frame)... ))
183
193
elseif f === Core. sizeof
@@ -320,6 +330,66 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
320
330
call_expr. args[3 ] = @lookup (frame, args[3 ])
321
331
return Some {Any} (Core. eval (moduleof (frame), call_expr))
322
332
end
333
+ elseif @static isdefined (Core, :arrayref ) && f === :arrayref
334
+ if nargs == 1
335
+ return Some {Any} (arrayref (@lookup (frame, args[2 ])))
336
+ elseif nargs == 2
337
+ return Some {Any} (arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
338
+ elseif nargs == 3
339
+ return Some {Any} (arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
340
+ elseif nargs == 4
341
+ return Some {Any} (arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
342
+ elseif nargs == 5
343
+ return Some {Any} (arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
344
+ else
345
+ return Some {Any} (arrayref (getargs (args, frame)... ))
346
+ end
347
+ elseif @static isdefined (Core, :arrayset ) && f === :arrayset
348
+ if nargs == 1
349
+ return Some {Any} (arrayset (@lookup (frame, args[2 ])))
350
+ elseif nargs == 2
351
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
352
+ elseif nargs == 3
353
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
354
+ elseif nargs == 4
355
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
356
+ elseif nargs == 5
357
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
358
+ elseif nargs == 6
359
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ]), @lookup (frame, args[7 ])))
360
+ else
361
+ return Some {Any} (arrayset (getargs (args, frame)... ))
362
+ end
363
+ elseif @static isdefined (Core, :arrayset ) && f === :arrayset
364
+ if nargs == 1
365
+ return Some {Any} (arrayset (@lookup (frame, args[2 ])))
366
+ elseif nargs == 2
367
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
368
+ elseif nargs == 3
369
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
370
+ elseif nargs == 4
371
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
372
+ elseif nargs == 5
373
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
374
+ elseif nargs == 6
375
+ return Some {Any} (arrayset (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ]), @lookup (frame, args[7 ])))
376
+ else
377
+ return Some {Any} (arrayset (getargs (args, frame)... ))
378
+ end
379
+ elseif @static isdefined (Core, :const_arrayref ) && f === :const_arrayref
380
+ if nargs == 1
381
+ return Some {Any} (const_arrayref (@lookup (frame, args[2 ])))
382
+ elseif nargs == 2
383
+ return Some {Any} (const_arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ])))
384
+ elseif nargs == 3
385
+ return Some {Any} (const_arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
386
+ elseif nargs == 4
387
+ return Some {Any} (const_arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
388
+ elseif nargs == 5
389
+ return Some {Any} (const_arrayref (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
390
+ else
391
+ return Some {Any} (const_arrayref (getargs (args, frame)... ))
392
+ end
323
393
elseif f === Core. Intrinsics. llvmcall
324
394
return Some {Any} (Core. Intrinsics. llvmcall (getargs (args, frame)... ))
325
395
end
0 commit comments