Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
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 />
1044<br />
1045<br />
1046 #if 1<br />
1047 case eiclongjmp:<br />
1048 {<br />
1049<br />
1050 _EiC_jmp_buf * reg;<br />
1051<br />
1052 reg = (_EiC_jmp_buf *) ((char*)STK[ToP].v.p.p -<br />
STK[ToP+1].v.ival);<br />
1053<br />
1054 p = reg->p;<br />
1055 EiC_CurrentFile = reg->file;<br />
1056 InSt = reg->inst;<br />
1057 env->lsp = reg->lsp;<br />
1058 AR[1] = &env->LAR[reg->offset]; /*reg->ar; */<br />
1059<br />
1060 if(STK[ToP+1].v.ival == 0)<br />
1061 STK[reg->top].v.ival = 1;<br />
1062 else<br />
1063 STK[reg->top].v.ival = STK[ToP+1].v.ival;<br />
1064<br />
1065 ToP = reg->top;<br />
1066 if(EiC_traceON) {printf(" eiclongjmp \n");}<br />
1067 }<br />
1068<br />
1069 break;<br />
1070<br />
1071 case eicsetjmp:<br />
1072 {<br />
1073<br />
1074 _EiC_jmp_buf * reg;<br />
1075<br />
1076 reg = (_EiC_jmp_buf *) STK[ToP].v.p.p;<br />
1077<br />
1078 reg->p = p;<br />
1079 reg->file = (void*)EiC_CurrentFile; /* save file */<br />
1080 reg->inst = InSt;<br />
1081 reg->lsp = env->lsp;<br />
1082 reg->offset = AR[1] - env->LAR;<br />
1083 reg->ar = AR[1];<br />
1084 reg->top = ToP;<br />
1085<br />
1086 STK[ToP].v.ival = 0;<br />
1087 _if(EiC_traceON) {printf(" eicsetjmp \n");}<br />
1088 }<br />
1089<br />
1090 break;<br />
1091 #endif<br />
1092<br />
1093 case massign:<br />
1094 {<br />
1095 val_t *v = &AR[InSt[p].ext][InSt[p].val.ival].v;<br />
1096 v->p.sp = (void*)xcalloc(STK[ToP].v.ival,1);<br />
1097 v->p.ep = (char*)v->p.sp + STK[ToP].v.ival;<br />
1098 vp = NULL;<br />
1099 if(EiC_traceON) {printf("massign "); }<br />
1100 }<br />
1101 break;<br />
1102 case fmem: FMEM; if(EiC_traceON) {printf("fmem ");}<br />
1103 break;<br />
1104 case refmem: refMEM; if(EiC_traceON) {printf("refmem "); }<br />
1105 break;<br />
1106 case minit:<br />
1107 memcpy(STK[ToP].v.p.p,InSt[p].val.p.p, InSt[p].ext);<br />
1108 if(EiC_traceON) {printf("minit "); }<br />
1109 break;<br />
1110 case reducear:<br />
117