| 800 | } |
| 801 | |
| 802 | ExpressionPtr SimulateVisitor::visit(ExprMakeVariant * expr) { |
| 803 | const auto &at = expr->at; |
| 804 | SimNode_Block * block; |
| 805 | if ( expr->useCMRES ) { |
| 806 | block = context.code->makeNode<SimNode_MakeLocalCMRes>(at); |
| 807 | } else { |
| 808 | block = context.code->makeNode<SimNode_MakeLocal>(at, expr->stackTop); |
| 809 | } |
| 810 | auto simlist = sv_simulateLocal(expr); |
| 811 | block->total = int(simlist.size()); |
| 812 | block->list = (SimNode **) context.code->allocate(sizeof(SimNode *)*block->total); |
| 813 | for ( uint32_t i=0, is=block->total; i!=is; ++i ) |
| 814 | block->list[i] = simlist[i]; |
| 815 | setE(expr, block); |
| 816 | return expr; |
| 817 | } |
| 818 | |
| 819 | // structure |
| 820 |
no test coverage detected