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 />

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

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

Saved successfully!

Ooh no, something went wrong!