comparison src/bytecode.c @ 90261:7beb78bc1f8e

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-97 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 616-696) - Add lisp/mh-e/.arch-inventory - Update from CVS - Merge from gnus--rel--5.10 - Update from CVS: lisp/smerge-mode.el: Add 'tools' to file keywords. - lisp/gnus/ChangeLog: Remove duplicate entry * gnus--rel--5.10 (patch 147-181) - Update from CVS - Merge from emacs--cvs-trunk--0 - Update from CVS: lisp/mml.el (mml-preview): Doc fix. - Update from CVS: texi/message.texi: Fix default values. - Update from CVS: texi/gnus.texi (RSS): Addition.
author Miles Bader <miles@gnu.org>
date Mon, 16 Jan 2006 08:37:27 +0000
parents 2d92f5c9d6ae 1eb416c4b163
children c5406394f567
comparison
equal deleted inserted replaced
90260:0ca0d9181b5e 90261:7beb78bc1f8e
522 PUSH (v2); 522 PUSH (v2);
523 break; 523 break;
524 } 524 }
525 525
526 case Bgotoifnil: 526 case Bgotoifnil:
527 MAYBE_GC (); 527 {
528 op = FETCH2; 528 Lisp_Object v1;
529 if (NILP (POP)) 529 MAYBE_GC ();
530 { 530 op = FETCH2;
531 BYTE_CODE_QUIT; 531 v1 = POP;
532 CHECK_RANGE (op); 532 if (NILP (v1))
533 stack.pc = stack.byte_string_start + op; 533 {
534 } 534 BYTE_CODE_QUIT;
535 break; 535 CHECK_RANGE (op);
536 stack.pc = stack.byte_string_start + op;
537 }
538 break;
539 }
536 540
537 case Bcar: 541 case Bcar:
538 { 542 {
539 Lisp_Object v1; 543 Lisp_Object v1;
540 v1 = TOP; 544 v1 = TOP;
728 CHECK_RANGE (op); 732 CHECK_RANGE (op);
729 stack.pc = stack.byte_string_start + op; 733 stack.pc = stack.byte_string_start + op;
730 break; 734 break;
731 735
732 case Bgotoifnonnil: 736 case Bgotoifnonnil:
733 MAYBE_GC (); 737 {
734 op = FETCH2; 738 Lisp_Object v1;
735 if (!NILP (POP)) 739 MAYBE_GC ();
736 { 740 op = FETCH2;
737 BYTE_CODE_QUIT; 741 v1 = POP;
738 CHECK_RANGE (op); 742 if (!NILP (v1))
739 stack.pc = stack.byte_string_start + op; 743 {
740 } 744 BYTE_CODE_QUIT;
741 break; 745 CHECK_RANGE (op);
746 stack.pc = stack.byte_string_start + op;
747 }
748 break;
749 }
742 750
743 case Bgotoifnilelsepop: 751 case Bgotoifnilelsepop:
744 MAYBE_GC (); 752 MAYBE_GC ();
745 op = FETCH2; 753 op = FETCH2;
746 if (NILP (TOP)) 754 if (NILP (TOP))
769 BYTE_CODE_QUIT; 777 BYTE_CODE_QUIT;
770 stack.pc += (int) *stack.pc - 127; 778 stack.pc += (int) *stack.pc - 127;
771 break; 779 break;
772 780
773 case BRgotoifnil: 781 case BRgotoifnil:
774 MAYBE_GC (); 782 {
775 if (NILP (POP)) 783 Lisp_Object v1;
776 { 784 MAYBE_GC ();
777 BYTE_CODE_QUIT; 785 v1 = POP;
778 stack.pc += (int) *stack.pc - 128; 786 if (NILP (v1))
779 } 787 {
780 stack.pc++; 788 BYTE_CODE_QUIT;
781 break; 789 stack.pc += (int) *stack.pc - 128;
790 }
791 stack.pc++;
792 break;
793 }
782 794
783 case BRgotoifnonnil: 795 case BRgotoifnonnil:
784 MAYBE_GC (); 796 {
785 if (!NILP (POP)) 797 Lisp_Object v1;
786 { 798 MAYBE_GC ();
787 BYTE_CODE_QUIT; 799 v1 = POP;
788 stack.pc += (int) *stack.pc - 128; 800 if (!NILP (v1))
789 } 801 {
790 stack.pc++; 802 BYTE_CODE_QUIT;
791 break; 803 stack.pc += (int) *stack.pc - 128;
804 }
805 stack.pc++;
806 break;
807 }
792 808
793 case BRgotoifnilelsepop: 809 case BRgotoifnilelsepop:
794 MAYBE_GC (); 810 MAYBE_GC ();
795 op = *stack.pc++; 811 op = *stack.pc++;
796 if (NILP (TOP)) 812 if (NILP (TOP))
859 record_unwind_protect (Fprogn, POP); 875 record_unwind_protect (Fprogn, POP);
860 break; 876 break;
861 877
862 case Bcondition_case: 878 case Bcondition_case:
863 { 879 {
864 Lisp_Object v1; 880 Lisp_Object handlers, body;
865 v1 = POP; 881 handlers = POP;
866 v1 = Fcons (POP, v1); 882 body = POP;
867 BEFORE_POTENTIAL_GC (); 883 BEFORE_POTENTIAL_GC ();
868 TOP = Fcondition_case (Fcons (TOP, v1)); 884 TOP = internal_lisp_condition_case (TOP, body, handlers);
869 AFTER_POTENTIAL_GC (); 885 AFTER_POTENTIAL_GC ();
870 break; 886 break;
871 } 887 }
872 888
873 case Btemp_output_buffer_setup: 889 case Btemp_output_buffer_setup: