pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.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: interpret.c,v 1.224 2001/07/17 20:32:36 grubba Exp $"); + RCSID("$Id: interpret.c,v 1.225 2001/07/17 22:03:33 grubba Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"   #include "svalue.h"   #include "array.h"   #include "mapping.h"   #include "pike_error.h"   #include "language.h"   #include "stralloc.h"   #include "constants.h"
pike.git/src/interpret.c:798:      static int eval_instruction(PIKE_OPCODE_T *pc)   {    do_inter_return_label = && inter_return_label;    do_escape_catch_label = && inter_escape_catch_label;      #ifdef PIKE_DEBUG    if (t_flag) {    int i;    fprintf(stderr, "Calling code at 0x%p:\n", pc); + #ifdef sparc +  if (((INT32)pc) & 0x03) { +  fatal("Odd offset!\n"); +  } + #endif /* sparc */    for (i=0; i < 16; i+=4) {    fprintf(stderr,    " 0x%08x 0x%08x 0x%08x 0x%08x\n",    ((int *)pc)[i],    ((int *)pc)[i+1],    ((int *)pc)[i+2],    ((int *)pc)[i+3]);    }    }   #endif /* PIKE_DEBUG */
pike.git/src/interpret.c:1403: Inside #if defined(PIKE_DEBUG)
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)    fatal("Pike code called within gc.\n");   #endif       debug_malloc_touch(Pike_fp);    pc=new_frame->context.prog->program + function->func.offset;      #ifdef HAVE_COMPUTED_GOTO    num_locals = (int)(ptrdiff_t)((pc++)[0]);    num_args = (int)(ptrdiff_t)((pc++)[0]); + #elif defined(PIKE_USE_MACHINE_CODE) && defined(sparc) +  num_locals = (pc++)[0]; +  num_args = (pc++)[0];   #else /* !HAVE_COMPUTED_GOTO */    num_locals = EXTRACT_UCHAR(pc++);    num_args = EXTRACT_UCHAR(pc++);   #endif /* HAVE_COMPUTED_GOTO */      #ifdef PIKE_DEBUG    if(num_locals < num_args)    fatal("Wrong number of arguments or locals in function def.\n"    "num_locals: %d < num_args: %d\n",    num_locals, num_args);