| 2205 | } |
| 2206 | |
| 2207 | void SimulateVisitor::sv_simulateBlock ( const ExprBlock * expr, SimNode_Block * block ) { |
| 2208 | das_map<int32_t,uint32_t> ofsmap; |
| 2209 | vector<SimNode *> simlist = sv_collectExpressions(expr->list, &ofsmap); |
| 2210 | block->total = int(simlist.size()); |
| 2211 | if ( block->total ) { |
| 2212 | block->list = (SimNode **) context.code->allocate(sizeof(SimNode *)*block->total); |
| 2213 | for ( uint32_t i=0, is=block->total; i!=is; ++i ) |
| 2214 | block->list[i] = simlist[i]; |
| 2215 | } |
| 2216 | sv_simulateLabels(expr, block, ofsmap); |
| 2217 | } |
| 2218 | |
| 2219 | void SimulateVisitor::sv_simulateLabels ( const ExprBlock * expr, SimNode_Block * block, const das_map<int32_t,uint32_t> & ofsmap ) { |
| 2220 | if ( expr->maxLabelIndex!=-1 ) { |