pike.git / src / docode.c

version» Context lines:

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.125 2001/07/02 07:02:45 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.126 2001/07/24 01:16:10 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "pike_memory.h"
pike.git/src/docode.c:1900:    case F_VAL_LVAL:    return do_docode(CAR(n),flags) +    do_docode(CDR(n), (INT16)(flags | DO_LVALUE));       default:    fatal("Infernal compiler error (unknown parse-tree-token %d).\n", n->token);    return 0; /* make gcc happy */    }   }    - void do_code_block(node *n) + INT32 do_code_block(node *n)   { -  +  INT32 ret;   #ifdef PIKE_DEBUG    if (current_stack_depth != -4711) fatal("Reentrance in do_code_block().\n");    current_stack_depth = 0;   #endif       init_bytecode();    label_no=1;    -  + #ifdef ALIGN_PIKE_FUNCTION_BEGINNINGS +  while( ( (((INT32) PC)+2) & (ALIGN_PIKE_JUMPS-1))) +  ins_byte(0); + #endif +  +  ret=PC;    emit1(F_BYTE,Pike_compiler->compiler_frame->max_number_of_locals);    emit1(F_BYTE,Pike_compiler->compiler_frame->num_args);    emit0(F_START_FUNCTION);    low_insert_label(0);    if(Pike_compiler->new_program->identifier_references[Pike_compiler->compiler_frame->    current_function_number].id_flags &    ID_INLINE)    {    Pike_compiler->compiler_frame->recur_label=0;    Pike_compiler->compiler_frame->is_inline=1;
pike.git/src/docode.c:1948:    emit1(F_BYTE,Pike_compiler->compiler_frame->num_args);    emit0(F_START_FUNCTION);    low_insert_label(Pike_compiler->compiler_frame->recur_label);    DO_CODE_BLOCK(n);    }    assemble();      #ifdef PIKE_DEBUG    current_stack_depth = -4711;   #endif +  return ret;   }      int docode(node *n)   {    int tmp;    int label_no_save = label_no;    dynamic_buffer instrbuf_save = instrbuf;    int stack_depth_save = current_stack_depth;    struct statement_label *label_save = current_label;    struct cleanup_frame *top_cleanups_save = top_statement_label_dummy.cleanups;