emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/bytecode.c


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/bytecode.c
Date: Tue, 11 Jun 2002 21:49:02 -0400

Index: emacs/src/bytecode.c
diff -c emacs/src/bytecode.c:1.68 emacs/src/bytecode.c:1.69
*** emacs/src/bytecode.c:1.68   Wed Mar 20 02:44:54 2002
--- emacs/src/bytecode.c        Sun Jun  2 21:34:11 2002
***************
*** 22,28 ****
  hacked on by address@hidden 17-jun-91
    o  added a compile-time switch to turn on simple sanity checking;
    o  put back the obsolete byte-codes for error-detection;
!   o  added a new instruction, unbind_all, which I will use for 
       tail-recursion elimination;
    o  made temp_output_buffer_show be called with the right number
       of args;
--- 22,28 ----
  hacked on by address@hidden 17-jun-91
    o  added a compile-time switch to turn on simple sanity checking;
    o  put back the obsolete byte-codes for error-detection;
!   o  added a new instruction, unbind_all, which I will use for
       tail-recursion elimination;
    o  made temp_output_buffer_show be called with the right number
       of args;
***************
*** 46,55 ****
  #endif
  
  /*
!  * define BYTE_CODE_SAFE to enable some minor sanity checking (useful for 
   * debugging the byte compiler...)
   *
!  * define BYTE_CODE_METER to enable generation of a byte-op usage histogram. 
   */
  /* #define BYTE_CODE_SAFE */
  /* #define BYTE_CODE_METER */
--- 46,55 ----
  #endif
  
  /*
!  * define BYTE_CODE_SAFE to enable some minor sanity checking (useful for
   * debugging the byte compiler...)
   *
!  * define BYTE_CODE_METER to enable generation of a byte-op usage histogram.
   */
  /* #define BYTE_CODE_SAFE */
  /* #define BYTE_CODE_METER */
***************
*** 287,293 ****
         recorded value of `stack' here.  */
        if (!stack->top)
        abort ();
!       
        for (obj = stack->bottom; obj <= stack->top; ++obj)
        if (!XMARKBIT (*obj))
          {
--- 287,293 ----
         recorded value of `stack' here.  */
        if (!stack->top)
        abort ();
! 
        for (obj = stack->bottom; obj <= stack->top; ++obj)
        if (!XMARKBIT (*obj))
          {
***************
*** 313,319 ****
  /* Unmark objects in the stacks on byte_stack_list.  Relocate program
     counters.  Called when GC has completed.  */
  
! void 
  unmark_byte_stack ()
  {
    struct byte_stack *stack;
--- 313,319 ----
  /* Unmark objects in the stacks on byte_stack_list.  Relocate program
     counters.  Called when GC has completed.  */
  
! void
  unmark_byte_stack ()
  {
    struct byte_stack *stack;
***************
*** 466,472 ****
    stack.byte_string = bytestr;
    stack.pc = stack.byte_string_start = XSTRING (bytestr)->data;
    stack.constants = vector;
!   stack.bottom = (Lisp_Object *) alloca (XFASTINT (maxdepth) 
                                           * sizeof (Lisp_Object));
    top = stack.bottom - 1;
    stack.top = NULL;
--- 466,472 ----
    stack.byte_string = bytestr;
    stack.pc = stack.byte_string_start = XSTRING (bytestr)->data;
    stack.constants = vector;
!   stack.bottom = (Lisp_Object *) alloca (XFASTINT (maxdepth)
                                           * sizeof (Lisp_Object));
    top = stack.bottom - 1;
    stack.top = NULL;
***************
*** 476,482 ****
  #ifdef BYTE_CODE_SAFE
    stacke = stack.bottom - 1 + XFASTINT (maxdepth);
  #endif
!   
    while (1)
      {
  #ifdef BYTE_CODE_SAFE
--- 476,482 ----
  #ifdef BYTE_CODE_SAFE
    stacke = stack.bottom - 1 + XFASTINT (maxdepth);
  #endif
! 
    while (1)
      {
  #ifdef BYTE_CODE_SAFE
***************
*** 500,510 ****
          op = FETCH2;
          goto varref;
  
!       case Bvarref: 
!       case Bvarref + 1: 
!       case Bvarref + 2: 
        case Bvarref + 3:
!       case Bvarref + 4: 
        case Bvarref + 5:
          op = op - Bvarref;
          goto varref;
--- 500,510 ----
          op = FETCH2;
          goto varref;
  
!       case Bvarref:
!       case Bvarref + 1:
!       case Bvarref + 2:
        case Bvarref + 3:
!       case Bvarref + 4:
        case Bvarref + 5:
          op = op - Bvarref;
          goto varref;
***************
*** 619,625 ****
        varset:
          {
            Lisp_Object sym, val;
!             
            sym = vectorp[op];
            val = TOP;
  
--- 619,625 ----
        varset:
          {
            Lisp_Object sym, val;
! 
            sym = vectorp[op];
            val = TOP;
  
***************
*** 1352,1358 ****
          {
            Lisp_Object v1;
            BEFORE_POTENTIAL_GC ();
!           XSETFASTINT (v1, current_column ());
            AFTER_POTENTIAL_GC ();
            PUSH (v1);
            break;
--- 1352,1358 ----
          {
            Lisp_Object v1;
            BEFORE_POTENTIAL_GC ();
!           XSETFASTINT (v1, (int) current_column ()); /* iftc */
            AFTER_POTENTIAL_GC ();
            PUSH (v1);
            break;
***************
*** 1731,1737 ****
  #else
      abort ();
  #endif
!   
    return result;
  }
  
--- 1731,1737 ----
  #else
      abort ();
  #endif
! 
    return result;
  }
  
***************
*** 1752,1758 ****
  \(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,
  indicates how many times the byte opcodes CODE1 and CODE2 have been
  executed in succession.  */);
!   
    DEFVAR_BOOL ("byte-metering-on", &byte_metering_on,
               doc: /* If non-nil, keep profiling information on byte code 
usage.
  The variable byte-code-meter indicates how often each byte opcode is used.
--- 1752,1758 ----
  \(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,
  indicates how many times the byte opcodes CODE1 and CODE2 have been
  executed in succession.  */);
! 
    DEFVAR_BOOL ("byte-metering-on", &byte_metering_on,
               doc: /* If non-nil, keep profiling information on byte code 
usage.
  The variable byte-code-meter indicates how often each byte opcode is used.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]