Call a native function. If bitmap_args is given, they override the values of (some) of the bitmap arguments used to track the presence of values for certain arguments. By default, the values of the bitmap arguments are inferred from args.
(
self,
decl: FuncDecl,
args: Sequence[Value],
arg_kinds: list[ArgKind],
arg_names: Sequence[str | None],
line: int,
*,
bitmap_args: list[Register] | None = None,
)
| 1277 | return None |
| 1278 | |
| 1279 | def call( |
| 1280 | self, |
| 1281 | decl: FuncDecl, |
| 1282 | args: Sequence[Value], |
| 1283 | arg_kinds: list[ArgKind], |
| 1284 | arg_names: Sequence[str | None], |
| 1285 | line: int, |
| 1286 | *, |
| 1287 | bitmap_args: list[Register] | None = None, |
| 1288 | ) -> Value: |
| 1289 | """Call a native function. |
| 1290 | |
| 1291 | If bitmap_args is given, they override the values of (some) of the bitmap |
| 1292 | arguments used to track the presence of values for certain arguments. By |
| 1293 | default, the values of the bitmap arguments are inferred from args. |
| 1294 | """ |
| 1295 | # Normalize args to positionals. |
| 1296 | args = self.native_args_to_positional( |
| 1297 | args, arg_kinds, arg_names, decl.sig, line, bitmap_args=bitmap_args |
| 1298 | ) |
| 1299 | return self.add(Call(decl, args, line)) |
| 1300 | |
| 1301 | def native_args_to_positional( |
| 1302 | self, |