(expr: str)
| 411 | '''.replace('EXPR', expr) |
| 412 | |
| 413 | def VEC_ARG3_ALIGNED(expr: str) -> str: |
| 414 | return ''' |
| 415 | { |
| 416 | NE_REGISTER store_in = params->program[pc].ret; |
| 417 | NE_REGISTER arg1 = params->program[pc].arg1; |
| 418 | NE_REGISTER arg2 = params->program[pc].arg2; |
| 419 | NE_REGISTER arg3 = params->program[pc].arg3; |
| 420 | |
| 421 | BOUNDS_CHECK(store_in); |
| 422 | BOUNDS_CHECK(arg1); |
| 423 | BOUNDS_CHECK(arg2); |
| 424 | BOUNDS_CHECK(arg3); |
| 425 | |
| 426 | char *dest = params->registers[store_in].mem; |
| 427 | char *x1 = params->registers[arg1].mem; |
| 428 | char *x2 = params->registers[arg2].mem; |
| 429 | char *x3 = params->registers[arg3].mem; |
| 430 | EXPR; |
| 431 | return 0; |
| 432 | } |
| 433 | '''.replace('EXPR', expr) |
| 434 | VEC_ARGN_ALIGNED = {0: VEC_ARG0_ALIGNED, 1: VEC_ARG1_ALIGNED, 2: VEC_ARG2_ALIGNED, 3: VEC_ARG3_ALIGNED} |
| 435 | |
| 436 | # Strided expressions can iterate over non-unity steps, i.e. 2,4,3, |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…