19.06.2014 Views

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Analyse</strong> <strong>dynamique</strong> <strong>de</strong> programmes C<br />

264 case jmpFdbl:<br />

265 jmpfTYPE(dval); if(EiC_traceON) printf("jmpftype dval\n");<br />

266 break;<br />

267 case jmpFptr:<br />

268 jmpfTYPE(p.p); if(EiC_traceON) {printf("jmpftype p.p\n");}<br />

269 break;<br />

270 case jmpFllng:<br />

271 jmpfTYPE(llval); /*if(EiC_traceON) {printf("jmpftype<br />

llval"); }*/<br />

272 break;<br />

273<br />

274 case jmpTint:<br />

275 jmptTYPE(ival); /*if(EiC_traceON) {printf("jmptTint "); }*/<br />

276 break;<br />

277 case jmpTlng:<br />

278 jmptTYPE(lval); /*if(EiC_traceON) {printf("jmpTlng "); }*/<br />

279 break;<br />

280 case jmpTdbl:<br />

281 jmptTYPE(dval);/* if(EiC_traceON) {printf("jmpTdbl "); }*/<br />

282 break;<br />

283 case jmpTptr:<br />

284 jmptTYPE(p.p);/*if(EiC_traceON) { printf("jmpTptr "); }*/<br />

285 break;<br />

286 case jmpTllng:<br />

287 jmptTYPE(llval); /*if(EiC_traceON) {printf("jmpTllng "); }*/<br />

288 break;<br />

289<br />

290 case jmpu: p += InSt[p].val.ival - 1;<br />

291 /*if(EiC_traceON) { printf("jmpu \n"); }*/<br />

292 break;<br />

293 case dupval:<br />

294 /* should really adjustTop here !!*/<br />

295 STK[ToP + 1].v = STK[ToP].v;<br />

296 ToP += InSt[p].val.ival;<br />

297 /*if(EiC_traceON) {printf("dupval "); }*/<br />

298 break;<br />

299 case jmptab:<br />

300 {<br />

301 /*if(EiC_traceON) {printf("jmptab "); }*/<br />

302 struct {<br />

303 int n;<br />

304 val_t *loc;<br />

305 } *tab;<br />

306 int i;<br />

307 tab = InSt[p].val.p.p;<br />

308 for (i = 1; i < tab->n; i += 2)<br />

309 if (tab->loc[i].ival == STK[ToP].v.ival) {<br />

310 p += tab->loc[i + 1].ival - 1;<br />

311 break;<br />

312 }<br />

313 if (i >= tab->n)<br />

314 p += tab->loc[0].ival - 1;<br />

315 }<br />

316 break;<br />

317<br />

318<br />

319 /* specific float stuff */<br />

320<br />

321 case dreffloat:<br />

322 drefTYPE(float, dval); /*if(EiC_traceON) { printf("dreffloat<br />

");}*/<br />

323 break;<br />

324 case reffloat: refTYPE(float, dval);/* if(EiC_traceON)<br />

{printf("reffloat ");} */<br />

325 break;<br />

326 case rvalfloat:<br />

327 STK[ToP].v.dval=AR[InSt[p].ext][InSt[p].val.ival].v.fval;<br />

/*if(EiC_traceON) { printf("rvalfloat ");}*/<br />

104

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!