| 390 | } |
| 391 | |
| 392 | void das_context_eval_block_unaligned ( das_context * context, das_block * block, vec4f_unaligned * arguments, int narguments, vec4f_unaligned * result ) { |
| 393 | vec4f * args = nullptr; |
| 394 | if ( narguments ) { |
| 395 | if ( intptr_t(arguments) & 0xf ) { |
| 396 | args = (vec4f *) alloca(narguments * sizeof(vec4f)); |
| 397 | DAS_ASSERT((intptr_t(args) & 0xf) == 0); |
| 398 | for ( int i=0; i!=narguments; ++i ) { |
| 399 | args[i] = v_ldu((const float *)(arguments + i)); |
| 400 | } |
| 401 | } else { |
| 402 | args = (vec4f *) arguments; |
| 403 | } |
| 404 | } |
| 405 | vec4f res = das_context_eval_block(context, block, args); |
| 406 | v_stu((float *)result, res); |
| 407 | } |
| 408 | |
| 409 | void das_context_eval_block_cmres ( das_context * context, das_block * block, vec4f * arguments, void * cmres ) { |
| 410 | if ( !block ) ((Context *)context)->throw_error("invoke null block"); // this never happens |
nothing calls this directly
no test coverage detected