pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:1:
/*\ ||| This file a part of Pike, and is copyright by Fredrik Hubinette ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h"
-
RCSID("$Id: docode.c,v 1.
10
1997/
01
/
30
03
:
51
:
32
hubbe Exp $");
+
RCSID("$Id: docode.c,v 1.
11
1997/
02
/
14
04
:
45
:
57
hubbe Exp $");
#include "las.h" #include "program.h" #include "language.h" #include "pike_types.h" #include "stralloc.h" #include "interpret.h" #include "constants.h" #include "array.h" #include "macros.h" #include "error.h"
pike.git/src/docode.c:278:
tmp1=do_docode(CAR(n),0); if(tmp1!=1) { fatal("Internal compiler error, Yikes!\n"); } emit2(F_PUSH_ARRAY); return -0x7ffffff; case '?': {
+
INT32 *prev_switch_jumptable = current_switch_jumptable;
int adroppings , bdroppings;
-
+
current_switch_jumptable=0;
-
+
if(!CDDR(n)) { tmp1=alloc_label(); do_jump_when_zero(CAR(n), tmp1); DO_CODE_BLOCK(CADR(n)); emit(F_LABEL, tmp1);
-
+
current_switch_jumptable = prev_switch_jumptable;
return 0; } if(!CADR(n)) { tmp1=alloc_label(); do_jump_when_non_zero(CAR(n), tmp1); DO_CODE_BLOCK(CDDR(n)); emit(F_LABEL,tmp1);
-
+
current_switch_jumptable = prev_switch_jumptable;
return 0; } tmp1=alloc_label(); do_jump_when_zero(CAR(n),tmp1); adroppings=do_docode(CADR(n), flags); tmp3=emit(F_POP_N_ELEMS,0); /* Else */
pike.git/src/docode.c:321:
do_pop(bdroppings - adroppings); } if(adroppings > bdroppings) { update_arg(tmp3,adroppings-bdroppings); adroppings=bdroppings; } emit(F_LABEL, tmp2);
+
+
current_switch_jumptable = prev_switch_jumptable;
return adroppings; } case F_AND_EQ: case F_OR_EQ: case F_XOR_EQ: case F_LSH_EQ: case F_RSH_EQ: case F_ADD_EQ: case F_SUB_EQ: