diff options
| author | Paul Eggert | 2016-07-15 22:15:42 +0200 |
|---|---|---|
| committer | Paul Eggert | 2016-07-15 22:31:40 +0200 |
| commit | 4ba72d329525332798b3b222eaec0efc8a23ac75 (patch) | |
| tree | d4f32fea06f8111c8c04c7254e346cde2e6b20df /src/bytecode.c | |
| parent | 1873ef3b8986193803cee2721ee738f8dee39514 (diff) | |
| download | emacs-4ba72d329525332798b3b222eaec0efc8a23ac75.tar.gz emacs-4ba72d329525332798b3b222eaec0efc8a23ac75.zip | |
Remove BYTE_MAINTAIN_TOP
It is no longer needed now that we assume GC_MARK_STACK ==
GC_MAKE_GCPROS_NOOPS.
* src/bytecode.c (BYTE_MAINTAIN_TOP): Remove.
All uses removed, and code simplified accordingly.
(BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): Remove, since they
are always no-ops now. All uses removed.
(MAYBE_GC): Remove. All uses replaced by maybe_gc,
since it is now equivalent.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 220 |
1 files changed, 10 insertions, 210 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 75d51cc3e84..a551eca2447 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -278,9 +278,6 @@ enum byte_code_op | |||
| 278 | Bset_mark = 0163, /* this loser is no longer generated as of v18 */ | 278 | Bset_mark = 0163, /* this loser is no longer generated as of v18 */ |
| 279 | #endif | 279 | #endif |
| 280 | }; | 280 | }; |
| 281 | |||
| 282 | /* Whether to maintain a `top' and `bottom' field in the stack frame. */ | ||
| 283 | #define BYTE_MAINTAIN_TOP BYTE_CODE_SAFE | ||
| 284 | 281 | ||
| 285 | /* Structure describing a value stack used during byte-code execution | 282 | /* Structure describing a value stack used during byte-code execution |
| 286 | in Fbyte_code. */ | 283 | in Fbyte_code. */ |
| @@ -291,12 +288,6 @@ struct byte_stack | |||
| 291 | and is relocated when that string is relocated. */ | 288 | and is relocated when that string is relocated. */ |
| 292 | const unsigned char *pc; | 289 | const unsigned char *pc; |
| 293 | 290 | ||
| 294 | /* Top and bottom of stack. The bottom points to an area of memory | ||
| 295 | allocated with alloca in Fbyte_code. */ | ||
| 296 | #if BYTE_MAINTAIN_TOP | ||
| 297 | Lisp_Object *top, *bottom; | ||
| 298 | #endif | ||
| 299 | |||
| 300 | /* The string containing the byte-code, and its current address. | 291 | /* The string containing the byte-code, and its current address. |
| 301 | Storing this here protects it from GC. */ | 292 | Storing this here protects it from GC. */ |
| 302 | Lisp_Object byte_string; | 293 | Lisp_Object byte_string; |
| @@ -367,27 +358,6 @@ relocate_byte_stack (void) | |||
| 367 | 358 | ||
| 368 | #define TOP (*top) | 359 | #define TOP (*top) |
| 369 | 360 | ||
| 370 | /* Actions that must be performed before and after calling a function | ||
| 371 | that might GC. */ | ||
| 372 | |||
| 373 | #if !BYTE_MAINTAIN_TOP | ||
| 374 | #define BEFORE_POTENTIAL_GC() ((void)0) | ||
| 375 | #define AFTER_POTENTIAL_GC() ((void)0) | ||
| 376 | #else | ||
| 377 | #define BEFORE_POTENTIAL_GC() stack.top = top | ||
| 378 | #define AFTER_POTENTIAL_GC() stack.top = NULL | ||
| 379 | #endif | ||
| 380 | |||
| 381 | /* Garbage collect if we have consed enough since the last time. | ||
| 382 | We do this at every branch, to avoid loops that never GC. */ | ||
| 383 | |||
| 384 | #define MAYBE_GC() \ | ||
| 385 | do { \ | ||
| 386 | BEFORE_POTENTIAL_GC (); \ | ||
| 387 | maybe_gc (); \ | ||
| 388 | AFTER_POTENTIAL_GC (); \ | ||
| 389 | } while (0) | ||
| 390 | |||
| 391 | /* Check for jumping out of range. */ | 361 | /* Check for jumping out of range. */ |
| 392 | 362 | ||
| 393 | #ifdef BYTE_CODE_SAFE | 363 | #ifdef BYTE_CODE_SAFE |
| @@ -410,11 +380,9 @@ relocate_byte_stack (void) | |||
| 410 | { \ | 380 | { \ |
| 411 | Lisp_Object flag = Vquit_flag; \ | 381 | Lisp_Object flag = Vquit_flag; \ |
| 412 | Vquit_flag = Qnil; \ | 382 | Vquit_flag = Qnil; \ |
| 413 | BEFORE_POTENTIAL_GC (); \ | ||
| 414 | if (EQ (Vthrow_on_input, flag)) \ | 383 | if (EQ (Vthrow_on_input, flag)) \ |
| 415 | Fthrow (Vthrow_on_input, Qt); \ | 384 | Fthrow (Vthrow_on_input, Qt); \ |
| 416 | Fsignal (Qquit, Qnil); \ | 385 | Fsignal (Qquit, Qnil); \ |
| 417 | AFTER_POTENTIAL_GC (); \ | ||
| 418 | } \ | 386 | } \ |
| 419 | else if (pending_signals) \ | 387 | else if (pending_signals) \ |
| 420 | process_pending_signals (); \ | 388 | process_pending_signals (); \ |
| @@ -504,10 +472,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 504 | if (MAX_ALLOCA / word_size <= XFASTINT (maxdepth)) | 472 | if (MAX_ALLOCA / word_size <= XFASTINT (maxdepth)) |
| 505 | memory_full (SIZE_MAX); | 473 | memory_full (SIZE_MAX); |
| 506 | top = alloca ((XFASTINT (maxdepth) + 1) * sizeof *top); | 474 | top = alloca ((XFASTINT (maxdepth) + 1) * sizeof *top); |
| 507 | #if BYTE_MAINTAIN_TOP | ||
| 508 | stack.bottom = top + 1; | ||
| 509 | stack.top = NULL; | ||
| 510 | #endif | ||
| 511 | stack.next = byte_stack_list; | 475 | stack.next = byte_stack_list; |
| 512 | byte_stack_list = &stack; | 476 | byte_stack_list = &stack; |
| 513 | 477 | ||
| @@ -676,16 +640,12 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 676 | || (v2 = SYMBOL_VAL (XSYMBOL (v1)), | 640 | || (v2 = SYMBOL_VAL (XSYMBOL (v1)), |
| 677 | EQ (v2, Qunbound))) | 641 | EQ (v2, Qunbound))) |
| 678 | { | 642 | { |
| 679 | BEFORE_POTENTIAL_GC (); | ||
| 680 | v2 = Fsymbol_value (v1); | 643 | v2 = Fsymbol_value (v1); |
| 681 | AFTER_POTENTIAL_GC (); | ||
| 682 | } | 644 | } |
| 683 | } | 645 | } |
| 684 | else | 646 | else |
| 685 | { | 647 | { |
| 686 | BEFORE_POTENTIAL_GC (); | ||
| 687 | v2 = Fsymbol_value (v1); | 648 | v2 = Fsymbol_value (v1); |
| 688 | AFTER_POTENTIAL_GC (); | ||
| 689 | } | 649 | } |
| 690 | PUSH (v2); | 650 | PUSH (v2); |
| 691 | NEXT; | 651 | NEXT; |
| @@ -694,7 +654,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 694 | CASE (Bgotoifnil): | 654 | CASE (Bgotoifnil): |
| 695 | { | 655 | { |
| 696 | Lisp_Object v1; | 656 | Lisp_Object v1; |
| 697 | MAYBE_GC (); | 657 | maybe_gc (); |
| 698 | op = FETCH2; | 658 | op = FETCH2; |
| 699 | v1 = POP; | 659 | v1 = POP; |
| 700 | if (NILP (v1)) | 660 | if (NILP (v1)) |
| @@ -716,7 +676,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 716 | TOP = Qnil; | 676 | TOP = Qnil; |
| 717 | else | 677 | else |
| 718 | { | 678 | { |
| 719 | BEFORE_POTENTIAL_GC (); | ||
| 720 | wrong_type_argument (Qlistp, v1); | 679 | wrong_type_argument (Qlistp, v1); |
| 721 | } | 680 | } |
| 722 | NEXT; | 681 | NEXT; |
| @@ -733,10 +692,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 733 | CASE (Bmemq): | 692 | CASE (Bmemq): |
| 734 | { | 693 | { |
| 735 | Lisp_Object v1; | 694 | Lisp_Object v1; |
| 736 | BEFORE_POTENTIAL_GC (); | ||
| 737 | v1 = POP; | 695 | v1 = POP; |
| 738 | TOP = Fmemq (TOP, v1); | 696 | TOP = Fmemq (TOP, v1); |
| 739 | AFTER_POTENTIAL_GC (); | ||
| 740 | NEXT; | 697 | NEXT; |
| 741 | } | 698 | } |
| 742 | 699 | ||
| @@ -750,7 +707,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 750 | TOP = Qnil; | 707 | TOP = Qnil; |
| 751 | else | 708 | else |
| 752 | { | 709 | { |
| 753 | BEFORE_POTENTIAL_GC (); | ||
| 754 | wrong_type_argument (Qlistp, v1); | 710 | wrong_type_argument (Qlistp, v1); |
| 755 | } | 711 | } |
| 756 | NEXT; | 712 | NEXT; |
| @@ -786,9 +742,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 786 | SET_SYMBOL_VAL (XSYMBOL (sym), val); | 742 | SET_SYMBOL_VAL (XSYMBOL (sym), val); |
| 787 | else | 743 | else |
| 788 | { | 744 | { |
| 789 | BEFORE_POTENTIAL_GC (); | ||
| 790 | set_internal (sym, val, Qnil, 0); | 745 | set_internal (sym, val, Qnil, 0); |
| 791 | AFTER_POTENTIAL_GC (); | ||
| 792 | } | 746 | } |
| 793 | } | 747 | } |
| 794 | (void) POP; | 748 | (void) POP; |
| @@ -821,9 +775,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 821 | op -= Bvarbind; | 775 | op -= Bvarbind; |
| 822 | varbind: | 776 | varbind: |
| 823 | /* Specbind can signal and thus GC. */ | 777 | /* Specbind can signal and thus GC. */ |
| 824 | BEFORE_POTENTIAL_GC (); | ||
| 825 | specbind (vectorp[op], POP); | 778 | specbind (vectorp[op], POP); |
| 826 | AFTER_POTENTIAL_GC (); | ||
| 827 | NEXT; | 779 | NEXT; |
| 828 | 780 | ||
| 829 | CASE (Bcall6): | 781 | CASE (Bcall6): |
| @@ -843,7 +795,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 843 | op -= Bcall; | 795 | op -= Bcall; |
| 844 | docall: | 796 | docall: |
| 845 | { | 797 | { |
| 846 | BEFORE_POTENTIAL_GC (); | ||
| 847 | DISCARD (op); | 798 | DISCARD (op); |
| 848 | #ifdef BYTE_CODE_METER | 799 | #ifdef BYTE_CODE_METER |
| 849 | if (byte_metering_on && SYMBOLP (TOP)) | 800 | if (byte_metering_on && SYMBOLP (TOP)) |
| @@ -861,7 +812,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 861 | } | 812 | } |
| 862 | #endif | 813 | #endif |
| 863 | TOP = Ffuncall (op + 1, &TOP); | 814 | TOP = Ffuncall (op + 1, &TOP); |
| 864 | AFTER_POTENTIAL_GC (); | ||
| 865 | NEXT; | 815 | NEXT; |
| 866 | } | 816 | } |
| 867 | 817 | ||
| @@ -881,21 +831,17 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 881 | CASE (Bunbind5): | 831 | CASE (Bunbind5): |
| 882 | op -= Bunbind; | 832 | op -= Bunbind; |
| 883 | dounbind: | 833 | dounbind: |
| 884 | BEFORE_POTENTIAL_GC (); | ||
| 885 | unbind_to (SPECPDL_INDEX () - op, Qnil); | 834 | unbind_to (SPECPDL_INDEX () - op, Qnil); |
| 886 | AFTER_POTENTIAL_GC (); | ||
| 887 | NEXT; | 835 | NEXT; |
| 888 | 836 | ||
| 889 | CASE (Bunbind_all): /* Obsolete. Never used. */ | 837 | CASE (Bunbind_all): /* Obsolete. Never used. */ |
| 890 | /* To unbind back to the beginning of this frame. Not used yet, | 838 | /* To unbind back to the beginning of this frame. Not used yet, |
| 891 | but will be needed for tail-recursion elimination. */ | 839 | but will be needed for tail-recursion elimination. */ |
| 892 | BEFORE_POTENTIAL_GC (); | ||
| 893 | unbind_to (count, Qnil); | 840 | unbind_to (count, Qnil); |
| 894 | AFTER_POTENTIAL_GC (); | ||
| 895 | NEXT; | 841 | NEXT; |
| 896 | 842 | ||
| 897 | CASE (Bgoto): | 843 | CASE (Bgoto): |
| 898 | MAYBE_GC (); | 844 | maybe_gc (); |
| 899 | BYTE_CODE_QUIT; | 845 | BYTE_CODE_QUIT; |
| 900 | op = FETCH2; /* pc = FETCH2 loses since FETCH2 contains pc++ */ | 846 | op = FETCH2; /* pc = FETCH2 loses since FETCH2 contains pc++ */ |
| 901 | CHECK_RANGE (op); | 847 | CHECK_RANGE (op); |
| @@ -905,7 +851,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 905 | CASE (Bgotoifnonnil): | 851 | CASE (Bgotoifnonnil): |
| 906 | { | 852 | { |
| 907 | Lisp_Object v1; | 853 | Lisp_Object v1; |
| 908 | MAYBE_GC (); | 854 | maybe_gc (); |
| 909 | op = FETCH2; | 855 | op = FETCH2; |
| 910 | v1 = POP; | 856 | v1 = POP; |
| 911 | if (!NILP (v1)) | 857 | if (!NILP (v1)) |
| @@ -918,7 +864,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 918 | } | 864 | } |
| 919 | 865 | ||
| 920 | CASE (Bgotoifnilelsepop): | 866 | CASE (Bgotoifnilelsepop): |
| 921 | MAYBE_GC (); | 867 | maybe_gc (); |
| 922 | op = FETCH2; | 868 | op = FETCH2; |
| 923 | if (NILP (TOP)) | 869 | if (NILP (TOP)) |
| 924 | { | 870 | { |
| @@ -930,7 +876,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 930 | NEXT; | 876 | NEXT; |
| 931 | 877 | ||
| 932 | CASE (Bgotoifnonnilelsepop): | 878 | CASE (Bgotoifnonnilelsepop): |
| 933 | MAYBE_GC (); | 879 | maybe_gc (); |
| 934 | op = FETCH2; | 880 | op = FETCH2; |
| 935 | if (!NILP (TOP)) | 881 | if (!NILP (TOP)) |
| 936 | { | 882 | { |
| @@ -942,7 +888,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 942 | NEXT; | 888 | NEXT; |
| 943 | 889 | ||
| 944 | CASE (BRgoto): | 890 | CASE (BRgoto): |
| 945 | MAYBE_GC (); | 891 | maybe_gc (); |
| 946 | BYTE_CODE_QUIT; | 892 | BYTE_CODE_QUIT; |
| 947 | stack.pc += (int) *stack.pc - 127; | 893 | stack.pc += (int) *stack.pc - 127; |
| 948 | NEXT; | 894 | NEXT; |
| @@ -950,7 +896,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 950 | CASE (BRgotoifnil): | 896 | CASE (BRgotoifnil): |
| 951 | { | 897 | { |
| 952 | Lisp_Object v1; | 898 | Lisp_Object v1; |
| 953 | MAYBE_GC (); | 899 | maybe_gc (); |
| 954 | v1 = POP; | 900 | v1 = POP; |
| 955 | if (NILP (v1)) | 901 | if (NILP (v1)) |
| 956 | { | 902 | { |
| @@ -964,7 +910,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 964 | CASE (BRgotoifnonnil): | 910 | CASE (BRgotoifnonnil): |
| 965 | { | 911 | { |
| 966 | Lisp_Object v1; | 912 | Lisp_Object v1; |
| 967 | MAYBE_GC (); | 913 | maybe_gc (); |
| 968 | v1 = POP; | 914 | v1 = POP; |
| 969 | if (!NILP (v1)) | 915 | if (!NILP (v1)) |
| 970 | { | 916 | { |
| @@ -976,7 +922,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 976 | } | 922 | } |
| 977 | 923 | ||
| 978 | CASE (BRgotoifnilelsepop): | 924 | CASE (BRgotoifnilelsepop): |
| 979 | MAYBE_GC (); | 925 | maybe_gc (); |
| 980 | op = *stack.pc++; | 926 | op = *stack.pc++; |
| 981 | if (NILP (TOP)) | 927 | if (NILP (TOP)) |
| 982 | { | 928 | { |
| @@ -987,7 +933,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 987 | NEXT; | 933 | NEXT; |
| 988 | 934 | ||
| 989 | CASE (BRgotoifnonnilelsepop): | 935 | CASE (BRgotoifnonnilelsepop): |
| 990 | MAYBE_GC (); | 936 | maybe_gc (); |
| 991 | op = *stack.pc++; | 937 | op = *stack.pc++; |
| 992 | if (!NILP (TOP)) | 938 | if (!NILP (TOP)) |
| 993 | { | 939 | { |
| @@ -1024,10 +970,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1024 | ptrdiff_t count1 = SPECPDL_INDEX (); | 970 | ptrdiff_t count1 = SPECPDL_INDEX (); |
| 1025 | record_unwind_protect (restore_window_configuration, | 971 | record_unwind_protect (restore_window_configuration, |
| 1026 | Fcurrent_window_configuration (Qnil)); | 972 | Fcurrent_window_configuration (Qnil)); |
| 1027 | BEFORE_POTENTIAL_GC (); | ||
| 1028 | TOP = Fprogn (TOP); | 973 | TOP = Fprogn (TOP); |
| 1029 | unbind_to (count1, TOP); | 974 | unbind_to (count1, TOP); |
| 1030 | AFTER_POTENTIAL_GC (); | ||
| 1031 | NEXT; | 975 | NEXT; |
| 1032 | } | 976 | } |
| 1033 | 977 | ||
| @@ -1039,10 +983,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1039 | CASE (Bcatch): /* Obsolete since 24.4. */ | 983 | CASE (Bcatch): /* Obsolete since 24.4. */ |
| 1040 | { | 984 | { |
| 1041 | Lisp_Object v1; | 985 | Lisp_Object v1; |
| 1042 | BEFORE_POTENTIAL_GC (); | ||
| 1043 | v1 = POP; | 986 | v1 = POP; |
| 1044 | TOP = internal_catch (TOP, eval_sub, v1); | 987 | TOP = internal_catch (TOP, eval_sub, v1); |
| 1045 | AFTER_POTENTIAL_GC (); | ||
| 1046 | NEXT; | 988 | NEXT; |
| 1047 | } | 989 | } |
| 1048 | 990 | ||
| @@ -1098,30 +1040,24 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1098 | Lisp_Object handlers, body; | 1040 | Lisp_Object handlers, body; |
| 1099 | handlers = POP; | 1041 | handlers = POP; |
| 1100 | body = POP; | 1042 | body = POP; |
| 1101 | BEFORE_POTENTIAL_GC (); | ||
| 1102 | TOP = internal_lisp_condition_case (TOP, body, handlers); | 1043 | TOP = internal_lisp_condition_case (TOP, body, handlers); |
| 1103 | AFTER_POTENTIAL_GC (); | ||
| 1104 | NEXT; | 1044 | NEXT; |
| 1105 | } | 1045 | } |
| 1106 | 1046 | ||
| 1107 | CASE (Btemp_output_buffer_setup): /* Obsolete since 24.1. */ | 1047 | CASE (Btemp_output_buffer_setup): /* Obsolete since 24.1. */ |
| 1108 | BEFORE_POTENTIAL_GC (); | ||
| 1109 | CHECK_STRING (TOP); | 1048 | CHECK_STRING (TOP); |
| 1110 | temp_output_buffer_setup (SSDATA (TOP)); | 1049 | temp_output_buffer_setup (SSDATA (TOP)); |
| 1111 | AFTER_POTENTIAL_GC (); | ||
| 1112 | TOP = Vstandard_output; | 1050 | TOP = Vstandard_output; |
| 1113 | NEXT; | 1051 | NEXT; |
| 1114 | 1052 | ||
| 1115 | CASE (Btemp_output_buffer_show): /* Obsolete since 24.1. */ | 1053 | CASE (Btemp_output_buffer_show): /* Obsolete since 24.1. */ |
| 1116 | { | 1054 | { |
| 1117 | Lisp_Object v1; | 1055 | Lisp_Object v1; |
| 1118 | BEFORE_POTENTIAL_GC (); | ||
| 1119 | v1 = POP; | 1056 | v1 = POP; |
| 1120 | temp_output_buffer_show (TOP); | 1057 | temp_output_buffer_show (TOP); |
| 1121 | TOP = v1; | 1058 | TOP = v1; |
| 1122 | /* pop binding of standard-output */ | 1059 | /* pop binding of standard-output */ |
| 1123 | unbind_to (SPECPDL_INDEX () - 1, Qnil); | 1060 | unbind_to (SPECPDL_INDEX () - 1, Qnil); |
| 1124 | AFTER_POTENTIAL_GC (); | ||
| 1125 | NEXT; | 1061 | NEXT; |
| 1126 | } | 1062 | } |
| 1127 | 1063 | ||
| @@ -1129,7 +1065,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1129 | { | 1065 | { |
| 1130 | Lisp_Object v1, v2; | 1066 | Lisp_Object v1, v2; |
| 1131 | EMACS_INT n; | 1067 | EMACS_INT n; |
| 1132 | BEFORE_POTENTIAL_GC (); | ||
| 1133 | v1 = POP; | 1068 | v1 = POP; |
| 1134 | v2 = TOP; | 1069 | v2 = TOP; |
| 1135 | CHECK_NUMBER (v2); | 1070 | CHECK_NUMBER (v2); |
| @@ -1139,7 +1074,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1139 | v1 = XCDR (v1); | 1074 | v1 = XCDR (v1); |
| 1140 | immediate_quit = 0; | 1075 | immediate_quit = 0; |
| 1141 | TOP = CAR (v1); | 1076 | TOP = CAR (v1); |
| 1142 | AFTER_POTENTIAL_GC (); | ||
| 1143 | NEXT; | 1077 | NEXT; |
| 1144 | } | 1078 | } |
| 1145 | 1079 | ||
| @@ -1200,110 +1134,84 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1200 | NEXT; | 1134 | NEXT; |
| 1201 | 1135 | ||
| 1202 | CASE (Blength): | 1136 | CASE (Blength): |
| 1203 | BEFORE_POTENTIAL_GC (); | ||
| 1204 | TOP = Flength (TOP); | 1137 | TOP = Flength (TOP); |
| 1205 | AFTER_POTENTIAL_GC (); | ||
| 1206 | NEXT; | 1138 | NEXT; |
| 1207 | 1139 | ||
| 1208 | CASE (Baref): | 1140 | CASE (Baref): |
| 1209 | { | 1141 | { |
| 1210 | Lisp_Object v1; | 1142 | Lisp_Object v1; |
| 1211 | BEFORE_POTENTIAL_GC (); | ||
| 1212 | v1 = POP; | 1143 | v1 = POP; |
| 1213 | TOP = Faref (TOP, v1); | 1144 | TOP = Faref (TOP, v1); |
| 1214 | AFTER_POTENTIAL_GC (); | ||
| 1215 | NEXT; | 1145 | NEXT; |
| 1216 | } | 1146 | } |
| 1217 | 1147 | ||
| 1218 | CASE (Baset): | 1148 | CASE (Baset): |
| 1219 | { | 1149 | { |
| 1220 | Lisp_Object v1, v2; | 1150 | Lisp_Object v1, v2; |
| 1221 | BEFORE_POTENTIAL_GC (); | ||
| 1222 | v2 = POP; v1 = POP; | 1151 | v2 = POP; v1 = POP; |
| 1223 | TOP = Faset (TOP, v1, v2); | 1152 | TOP = Faset (TOP, v1, v2); |
| 1224 | AFTER_POTENTIAL_GC (); | ||
| 1225 | NEXT; | 1153 | NEXT; |
| 1226 | } | 1154 | } |
| 1227 | 1155 | ||
| 1228 | CASE (Bsymbol_value): | 1156 | CASE (Bsymbol_value): |
| 1229 | BEFORE_POTENTIAL_GC (); | ||
| 1230 | TOP = Fsymbol_value (TOP); | 1157 | TOP = Fsymbol_value (TOP); |
| 1231 | AFTER_POTENTIAL_GC (); | ||
| 1232 | NEXT; | 1158 | NEXT; |
| 1233 | 1159 | ||
| 1234 | CASE (Bsymbol_function): | 1160 | CASE (Bsymbol_function): |
| 1235 | BEFORE_POTENTIAL_GC (); | ||
| 1236 | TOP = Fsymbol_function (TOP); | 1161 | TOP = Fsymbol_function (TOP); |
| 1237 | AFTER_POTENTIAL_GC (); | ||
| 1238 | NEXT; | 1162 | NEXT; |
| 1239 | 1163 | ||
| 1240 | CASE (Bset): | 1164 | CASE (Bset): |
| 1241 | { | 1165 | { |
| 1242 | Lisp_Object v1; | 1166 | Lisp_Object v1; |
| 1243 | BEFORE_POTENTIAL_GC (); | ||
| 1244 | v1 = POP; | 1167 | v1 = POP; |
| 1245 | TOP = Fset (TOP, v1); | 1168 | TOP = Fset (TOP, v1); |
| 1246 | AFTER_POTENTIAL_GC (); | ||
| 1247 | NEXT; | 1169 | NEXT; |
| 1248 | } | 1170 | } |
| 1249 | 1171 | ||
| 1250 | CASE (Bfset): | 1172 | CASE (Bfset): |
| 1251 | { | 1173 | { |
| 1252 | Lisp_Object v1; | 1174 | Lisp_Object v1; |
| 1253 | BEFORE_POTENTIAL_GC (); | ||
| 1254 | v1 = POP; | 1175 | v1 = POP; |
| 1255 | TOP = Ffset (TOP, v1); | 1176 | TOP = Ffset (TOP, v1); |
| 1256 | AFTER_POTENTIAL_GC (); | ||
| 1257 | NEXT; | 1177 | NEXT; |
| 1258 | } | 1178 | } |
| 1259 | 1179 | ||
| 1260 | CASE (Bget): | 1180 | CASE (Bget): |
| 1261 | { | 1181 | { |
| 1262 | Lisp_Object v1; | 1182 | Lisp_Object v1; |
| 1263 | BEFORE_POTENTIAL_GC (); | ||
| 1264 | v1 = POP; | 1183 | v1 = POP; |
| 1265 | TOP = Fget (TOP, v1); | 1184 | TOP = Fget (TOP, v1); |
| 1266 | AFTER_POTENTIAL_GC (); | ||
| 1267 | NEXT; | 1185 | NEXT; |
| 1268 | } | 1186 | } |
| 1269 | 1187 | ||
| 1270 | CASE (Bsubstring): | 1188 | CASE (Bsubstring): |
| 1271 | { | 1189 | { |
| 1272 | Lisp_Object v1, v2; | 1190 | Lisp_Object v1, v2; |
| 1273 | BEFORE_POTENTIAL_GC (); | ||
| 1274 | v2 = POP; v1 = POP; | 1191 | v2 = POP; v1 = POP; |
| 1275 | TOP = Fsubstring (TOP, v1, v2); | 1192 | TOP = Fsubstring (TOP, v1, v2); |
| 1276 | AFTER_POTENTIAL_GC (); | ||
| 1277 | NEXT; | 1193 | NEXT; |
| 1278 | } | 1194 | } |
| 1279 | 1195 | ||
| 1280 | CASE (Bconcat2): | 1196 | CASE (Bconcat2): |
| 1281 | BEFORE_POTENTIAL_GC (); | ||
| 1282 | DISCARD (1); | 1197 | DISCARD (1); |
| 1283 | TOP = Fconcat (2, &TOP); | 1198 | TOP = Fconcat (2, &TOP); |
| 1284 | AFTER_POTENTIAL_GC (); | ||
| 1285 | NEXT; | 1199 | NEXT; |
| 1286 | 1200 | ||
| 1287 | CASE (Bconcat3): | 1201 | CASE (Bconcat3): |
| 1288 | BEFORE_POTENTIAL_GC (); | ||
| 1289 | DISCARD (2); | 1202 | DISCARD (2); |
| 1290 | TOP = Fconcat (3, &TOP); | 1203 | TOP = Fconcat (3, &TOP); |
| 1291 | AFTER_POTENTIAL_GC (); | ||
| 1292 | NEXT; | 1204 | NEXT; |
| 1293 | 1205 | ||
| 1294 | CASE (Bconcat4): | 1206 | CASE (Bconcat4): |
| 1295 | BEFORE_POTENTIAL_GC (); | ||
| 1296 | DISCARD (3); | 1207 | DISCARD (3); |
| 1297 | TOP = Fconcat (4, &TOP); | 1208 | TOP = Fconcat (4, &TOP); |
| 1298 | AFTER_POTENTIAL_GC (); | ||
| 1299 | NEXT; | 1209 | NEXT; |
| 1300 | 1210 | ||
| 1301 | CASE (BconcatN): | 1211 | CASE (BconcatN): |
| 1302 | op = FETCH; | 1212 | op = FETCH; |
| 1303 | BEFORE_POTENTIAL_GC (); | ||
| 1304 | DISCARD (op - 1); | 1213 | DISCARD (op - 1); |
| 1305 | TOP = Fconcat (op, &TOP); | 1214 | TOP = Fconcat (op, &TOP); |
| 1306 | AFTER_POTENTIAL_GC (); | ||
| 1307 | NEXT; | 1215 | NEXT; |
| 1308 | 1216 | ||
| 1309 | CASE (Bsub1): | 1217 | CASE (Bsub1): |
| @@ -1317,9 +1225,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1317 | } | 1225 | } |
| 1318 | else | 1226 | else |
| 1319 | { | 1227 | { |
| 1320 | BEFORE_POTENTIAL_GC (); | ||
| 1321 | TOP = Fsub1 (v1); | 1228 | TOP = Fsub1 (v1); |
| 1322 | AFTER_POTENTIAL_GC (); | ||
| 1323 | } | 1229 | } |
| 1324 | NEXT; | 1230 | NEXT; |
| 1325 | } | 1231 | } |
| @@ -1335,9 +1241,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1335 | } | 1241 | } |
| 1336 | else | 1242 | else |
| 1337 | { | 1243 | { |
| 1338 | BEFORE_POTENTIAL_GC (); | ||
| 1339 | TOP = Fadd1 (v1); | 1244 | TOP = Fadd1 (v1); |
| 1340 | AFTER_POTENTIAL_GC (); | ||
| 1341 | } | 1245 | } |
| 1342 | NEXT; | 1246 | NEXT; |
| 1343 | } | 1247 | } |
| @@ -1345,11 +1249,9 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1345 | CASE (Beqlsign): | 1249 | CASE (Beqlsign): |
| 1346 | { | 1250 | { |
| 1347 | Lisp_Object v1, v2; | 1251 | Lisp_Object v1, v2; |
| 1348 | BEFORE_POTENTIAL_GC (); | ||
| 1349 | v2 = POP; v1 = TOP; | 1252 | v2 = POP; v1 = TOP; |
| 1350 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v1); | 1253 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v1); |
| 1351 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v2); | 1254 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v2); |
| 1352 | AFTER_POTENTIAL_GC (); | ||
| 1353 | if (FLOATP (v1) || FLOATP (v2)) | 1255 | if (FLOATP (v1) || FLOATP (v2)) |
| 1354 | { | 1256 | { |
| 1355 | double f1, f2; | 1257 | double f1, f2; |
| @@ -1366,48 +1268,38 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1366 | CASE (Bgtr): | 1268 | CASE (Bgtr): |
| 1367 | { | 1269 | { |
| 1368 | Lisp_Object v1; | 1270 | Lisp_Object v1; |
| 1369 | BEFORE_POTENTIAL_GC (); | ||
| 1370 | v1 = POP; | 1271 | v1 = POP; |
| 1371 | TOP = arithcompare (TOP, v1, ARITH_GRTR); | 1272 | TOP = arithcompare (TOP, v1, ARITH_GRTR); |
| 1372 | AFTER_POTENTIAL_GC (); | ||
| 1373 | NEXT; | 1273 | NEXT; |
| 1374 | } | 1274 | } |
| 1375 | 1275 | ||
| 1376 | CASE (Blss): | 1276 | CASE (Blss): |
| 1377 | { | 1277 | { |
| 1378 | Lisp_Object v1; | 1278 | Lisp_Object v1; |
| 1379 | BEFORE_POTENTIAL_GC (); | ||
| 1380 | v1 = POP; | 1279 | v1 = POP; |
| 1381 | TOP = arithcompare (TOP, v1, ARITH_LESS); | 1280 | TOP = arithcompare (TOP, v1, ARITH_LESS); |
| 1382 | AFTER_POTENTIAL_GC (); | ||
| 1383 | NEXT; | 1281 | NEXT; |
| 1384 | } | 1282 | } |
| 1385 | 1283 | ||
| 1386 | CASE (Bleq): | 1284 | CASE (Bleq): |
| 1387 | { | 1285 | { |
| 1388 | Lisp_Object v1; | 1286 | Lisp_Object v1; |
| 1389 | BEFORE_POTENTIAL_GC (); | ||
| 1390 | v1 = POP; | 1287 | v1 = POP; |
| 1391 | TOP = arithcompare (TOP, v1, ARITH_LESS_OR_EQUAL); | 1288 | TOP = arithcompare (TOP, v1, ARITH_LESS_OR_EQUAL); |
| 1392 | AFTER_POTENTIAL_GC (); | ||
| 1393 | NEXT; | 1289 | NEXT; |
| 1394 | } | 1290 | } |
| 1395 | 1291 | ||
| 1396 | CASE (Bgeq): | 1292 | CASE (Bgeq): |
| 1397 | { | 1293 | { |
| 1398 | Lisp_Object v1; | 1294 | Lisp_Object v1; |
| 1399 | BEFORE_POTENTIAL_GC (); | ||
| 1400 | v1 = POP; | 1295 | v1 = POP; |
| 1401 | TOP = arithcompare (TOP, v1, ARITH_GRTR_OR_EQUAL); | 1296 | TOP = arithcompare (TOP, v1, ARITH_GRTR_OR_EQUAL); |
| 1402 | AFTER_POTENTIAL_GC (); | ||
| 1403 | NEXT; | 1297 | NEXT; |
| 1404 | } | 1298 | } |
| 1405 | 1299 | ||
| 1406 | CASE (Bdiff): | 1300 | CASE (Bdiff): |
| 1407 | BEFORE_POTENTIAL_GC (); | ||
| 1408 | DISCARD (1); | 1301 | DISCARD (1); |
| 1409 | TOP = Fminus (2, &TOP); | 1302 | TOP = Fminus (2, &TOP); |
| 1410 | AFTER_POTENTIAL_GC (); | ||
| 1411 | NEXT; | 1303 | NEXT; |
| 1412 | 1304 | ||
| 1413 | CASE (Bnegate): | 1305 | CASE (Bnegate): |
| @@ -1421,55 +1313,41 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1421 | } | 1313 | } |
| 1422 | else | 1314 | else |
| 1423 | { | 1315 | { |
| 1424 | BEFORE_POTENTIAL_GC (); | ||
| 1425 | TOP = Fminus (1, &TOP); | 1316 | TOP = Fminus (1, &TOP); |
| 1426 | AFTER_POTENTIAL_GC (); | ||
| 1427 | } | 1317 | } |
| 1428 | NEXT; | 1318 | NEXT; |
| 1429 | } | 1319 | } |
| 1430 | 1320 | ||
| 1431 | CASE (Bplus): | 1321 | CASE (Bplus): |
| 1432 | BEFORE_POTENTIAL_GC (); | ||
| 1433 | DISCARD (1); | 1322 | DISCARD (1); |
| 1434 | TOP = Fplus (2, &TOP); | 1323 | TOP = Fplus (2, &TOP); |
| 1435 | AFTER_POTENTIAL_GC (); | ||
| 1436 | NEXT; | 1324 | NEXT; |
| 1437 | 1325 | ||
| 1438 | CASE (Bmax): | 1326 | CASE (Bmax): |
| 1439 | BEFORE_POTENTIAL_GC (); | ||
| 1440 | DISCARD (1); | 1327 | DISCARD (1); |
| 1441 | TOP = Fmax (2, &TOP); | 1328 | TOP = Fmax (2, &TOP); |
| 1442 | AFTER_POTENTIAL_GC (); | ||
| 1443 | NEXT; | 1329 | NEXT; |
| 1444 | 1330 | ||
| 1445 | CASE (Bmin): | 1331 | CASE (Bmin): |
| 1446 | BEFORE_POTENTIAL_GC (); | ||
| 1447 | DISCARD (1); | 1332 | DISCARD (1); |
| 1448 | TOP = Fmin (2, &TOP); | 1333 | TOP = Fmin (2, &TOP); |
| 1449 | AFTER_POTENTIAL_GC (); | ||
| 1450 | NEXT; | 1334 | NEXT; |
| 1451 | 1335 | ||
| 1452 | CASE (Bmult): | 1336 | CASE (Bmult): |
| 1453 | BEFORE_POTENTIAL_GC (); | ||
| 1454 | DISCARD (1); | 1337 | DISCARD (1); |
| 1455 | TOP = Ftimes (2, &TOP); | 1338 | TOP = Ftimes (2, &TOP); |
| 1456 | AFTER_POTENTIAL_GC (); | ||
| 1457 | NEXT; | 1339 | NEXT; |
| 1458 | 1340 | ||
| 1459 | CASE (Bquo): | 1341 | CASE (Bquo): |
| 1460 | BEFORE_POTENTIAL_GC (); | ||
| 1461 | DISCARD (1); | 1342 | DISCARD (1); |
| 1462 | TOP = Fquo (2, &TOP); | 1343 | TOP = Fquo (2, &TOP); |
| 1463 | AFTER_POTENTIAL_GC (); | ||
| 1464 | NEXT; | 1344 | NEXT; |
| 1465 | 1345 | ||
| 1466 | CASE (Brem): | 1346 | CASE (Brem): |
| 1467 | { | 1347 | { |
| 1468 | Lisp_Object v1; | 1348 | Lisp_Object v1; |
| 1469 | BEFORE_POTENTIAL_GC (); | ||
| 1470 | v1 = POP; | 1349 | v1 = POP; |
| 1471 | TOP = Frem (TOP, v1); | 1350 | TOP = Frem (TOP, v1); |
| 1472 | AFTER_POTENTIAL_GC (); | ||
| 1473 | NEXT; | 1351 | NEXT; |
| 1474 | } | 1352 | } |
| 1475 | 1353 | ||
| @@ -1482,23 +1360,17 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1482 | } | 1360 | } |
| 1483 | 1361 | ||
| 1484 | CASE (Bgoto_char): | 1362 | CASE (Bgoto_char): |
| 1485 | BEFORE_POTENTIAL_GC (); | ||
| 1486 | TOP = Fgoto_char (TOP); | 1363 | TOP = Fgoto_char (TOP); |
| 1487 | AFTER_POTENTIAL_GC (); | ||
| 1488 | NEXT; | 1364 | NEXT; |
| 1489 | 1365 | ||
| 1490 | CASE (Binsert): | 1366 | CASE (Binsert): |
| 1491 | BEFORE_POTENTIAL_GC (); | ||
| 1492 | TOP = Finsert (1, &TOP); | 1367 | TOP = Finsert (1, &TOP); |
| 1493 | AFTER_POTENTIAL_GC (); | ||
| 1494 | NEXT; | 1368 | NEXT; |
| 1495 | 1369 | ||
| 1496 | CASE (BinsertN): | 1370 | CASE (BinsertN): |
| 1497 | op = FETCH; | 1371 | op = FETCH; |
| 1498 | BEFORE_POTENTIAL_GC (); | ||
| 1499 | DISCARD (op - 1); | 1372 | DISCARD (op - 1); |
| 1500 | TOP = Finsert (op, &TOP); | 1373 | TOP = Finsert (op, &TOP); |
| 1501 | AFTER_POTENTIAL_GC (); | ||
| 1502 | NEXT; | 1374 | NEXT; |
| 1503 | 1375 | ||
| 1504 | CASE (Bpoint_max): | 1376 | CASE (Bpoint_max): |
| @@ -1518,17 +1390,13 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1518 | } | 1390 | } |
| 1519 | 1391 | ||
| 1520 | CASE (Bchar_after): | 1392 | CASE (Bchar_after): |
| 1521 | BEFORE_POTENTIAL_GC (); | ||
| 1522 | TOP = Fchar_after (TOP); | 1393 | TOP = Fchar_after (TOP); |
| 1523 | AFTER_POTENTIAL_GC (); | ||
| 1524 | NEXT; | 1394 | NEXT; |
| 1525 | 1395 | ||
| 1526 | CASE (Bfollowing_char): | 1396 | CASE (Bfollowing_char): |
| 1527 | { | 1397 | { |
| 1528 | Lisp_Object v1; | 1398 | Lisp_Object v1; |
| 1529 | BEFORE_POTENTIAL_GC (); | ||
| 1530 | v1 = Ffollowing_char (); | 1399 | v1 = Ffollowing_char (); |
| 1531 | AFTER_POTENTIAL_GC (); | ||
| 1532 | PUSH (v1); | 1400 | PUSH (v1); |
| 1533 | NEXT; | 1401 | NEXT; |
| 1534 | } | 1402 | } |
| @@ -1536,9 +1404,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1536 | CASE (Bpreceding_char): | 1404 | CASE (Bpreceding_char): |
| 1537 | { | 1405 | { |
| 1538 | Lisp_Object v1; | 1406 | Lisp_Object v1; |
| 1539 | BEFORE_POTENTIAL_GC (); | ||
| 1540 | v1 = Fprevious_char (); | 1407 | v1 = Fprevious_char (); |
| 1541 | AFTER_POTENTIAL_GC (); | ||
| 1542 | PUSH (v1); | 1408 | PUSH (v1); |
| 1543 | NEXT; | 1409 | NEXT; |
| 1544 | } | 1410 | } |
| @@ -1546,17 +1412,13 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1546 | CASE (Bcurrent_column): | 1412 | CASE (Bcurrent_column): |
| 1547 | { | 1413 | { |
| 1548 | Lisp_Object v1; | 1414 | Lisp_Object v1; |
| 1549 | BEFORE_POTENTIAL_GC (); | ||
| 1550 | XSETFASTINT (v1, current_column ()); | 1415 | XSETFASTINT (v1, current_column ()); |
| 1551 | AFTER_POTENTIAL_GC (); | ||
| 1552 | PUSH (v1); | 1416 | PUSH (v1); |
| 1553 | NEXT; | 1417 | NEXT; |
| 1554 | } | 1418 | } |
| 1555 | 1419 | ||
| 1556 | CASE (Bindent_to): | 1420 | CASE (Bindent_to): |
| 1557 | BEFORE_POTENTIAL_GC (); | ||
| 1558 | TOP = Findent_to (TOP, Qnil); | 1421 | TOP = Findent_to (TOP, Qnil); |
| 1559 | AFTER_POTENTIAL_GC (); | ||
| 1560 | NEXT; | 1422 | NEXT; |
| 1561 | 1423 | ||
| 1562 | CASE (Beolp): | 1424 | CASE (Beolp): |
| @@ -1580,62 +1442,46 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1580 | NEXT; | 1442 | NEXT; |
| 1581 | 1443 | ||
| 1582 | CASE (Bset_buffer): | 1444 | CASE (Bset_buffer): |
| 1583 | BEFORE_POTENTIAL_GC (); | ||
| 1584 | TOP = Fset_buffer (TOP); | 1445 | TOP = Fset_buffer (TOP); |
| 1585 | AFTER_POTENTIAL_GC (); | ||
| 1586 | NEXT; | 1446 | NEXT; |
| 1587 | 1447 | ||
| 1588 | CASE (Binteractive_p): /* Obsolete since 24.1. */ | 1448 | CASE (Binteractive_p): /* Obsolete since 24.1. */ |
| 1589 | BEFORE_POTENTIAL_GC (); | ||
| 1590 | PUSH (call0 (intern ("interactive-p"))); | 1449 | PUSH (call0 (intern ("interactive-p"))); |
| 1591 | AFTER_POTENTIAL_GC (); | ||
| 1592 | NEXT; | 1450 | NEXT; |
| 1593 | 1451 | ||
| 1594 | CASE (Bforward_char): | 1452 | CASE (Bforward_char): |
| 1595 | BEFORE_POTENTIAL_GC (); | ||
| 1596 | TOP = Fforward_char (TOP); | 1453 | TOP = Fforward_char (TOP); |
| 1597 | AFTER_POTENTIAL_GC (); | ||
| 1598 | NEXT; | 1454 | NEXT; |
| 1599 | 1455 | ||
| 1600 | CASE (Bforward_word): | 1456 | CASE (Bforward_word): |
| 1601 | BEFORE_POTENTIAL_GC (); | ||
| 1602 | TOP = Fforward_word (TOP); | 1457 | TOP = Fforward_word (TOP); |
| 1603 | AFTER_POTENTIAL_GC (); | ||
| 1604 | NEXT; | 1458 | NEXT; |
| 1605 | 1459 | ||
| 1606 | CASE (Bskip_chars_forward): | 1460 | CASE (Bskip_chars_forward): |
| 1607 | { | 1461 | { |
| 1608 | Lisp_Object v1; | 1462 | Lisp_Object v1; |
| 1609 | BEFORE_POTENTIAL_GC (); | ||
| 1610 | v1 = POP; | 1463 | v1 = POP; |
| 1611 | TOP = Fskip_chars_forward (TOP, v1); | 1464 | TOP = Fskip_chars_forward (TOP, v1); |
| 1612 | AFTER_POTENTIAL_GC (); | ||
| 1613 | NEXT; | 1465 | NEXT; |
| 1614 | } | 1466 | } |
| 1615 | 1467 | ||
| 1616 | CASE (Bskip_chars_backward): | 1468 | CASE (Bskip_chars_backward): |
| 1617 | { | 1469 | { |
| 1618 | Lisp_Object v1; | 1470 | Lisp_Object v1; |
| 1619 | BEFORE_POTENTIAL_GC (); | ||
| 1620 | v1 = POP; | 1471 | v1 = POP; |
| 1621 | TOP = Fskip_chars_backward (TOP, v1); | 1472 | TOP = Fskip_chars_backward (TOP, v1); |
| 1622 | AFTER_POTENTIAL_GC (); | ||
| 1623 | NEXT; | 1473 | NEXT; |
| 1624 | } | 1474 | } |
| 1625 | 1475 | ||
| 1626 | CASE (Bforward_line): | 1476 | CASE (Bforward_line): |
| 1627 | BEFORE_POTENTIAL_GC (); | ||
| 1628 | TOP = Fforward_line (TOP); | 1477 | TOP = Fforward_line (TOP); |
| 1629 | AFTER_POTENTIAL_GC (); | ||
| 1630 | NEXT; | 1478 | NEXT; |
| 1631 | 1479 | ||
| 1632 | CASE (Bchar_syntax): | 1480 | CASE (Bchar_syntax): |
| 1633 | { | 1481 | { |
| 1634 | int c; | 1482 | int c; |
| 1635 | 1483 | ||
| 1636 | BEFORE_POTENTIAL_GC (); | ||
| 1637 | CHECK_CHARACTER (TOP); | 1484 | CHECK_CHARACTER (TOP); |
| 1638 | AFTER_POTENTIAL_GC (); | ||
| 1639 | c = XFASTINT (TOP); | 1485 | c = XFASTINT (TOP); |
| 1640 | if (NILP (BVAR (current_buffer, enable_multibyte_characters))) | 1486 | if (NILP (BVAR (current_buffer, enable_multibyte_characters))) |
| 1641 | MAKE_CHAR_MULTIBYTE (c); | 1487 | MAKE_CHAR_MULTIBYTE (c); |
| @@ -1646,97 +1492,73 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1646 | CASE (Bbuffer_substring): | 1492 | CASE (Bbuffer_substring): |
| 1647 | { | 1493 | { |
| 1648 | Lisp_Object v1; | 1494 | Lisp_Object v1; |
| 1649 | BEFORE_POTENTIAL_GC (); | ||
| 1650 | v1 = POP; | 1495 | v1 = POP; |
| 1651 | TOP = Fbuffer_substring (TOP, v1); | 1496 | TOP = Fbuffer_substring (TOP, v1); |
| 1652 | AFTER_POTENTIAL_GC (); | ||
| 1653 | NEXT; | 1497 | NEXT; |
| 1654 | } | 1498 | } |
| 1655 | 1499 | ||
| 1656 | CASE (Bdelete_region): | 1500 | CASE (Bdelete_region): |
| 1657 | { | 1501 | { |
| 1658 | Lisp_Object v1; | 1502 | Lisp_Object v1; |
| 1659 | BEFORE_POTENTIAL_GC (); | ||
| 1660 | v1 = POP; | 1503 | v1 = POP; |
| 1661 | TOP = Fdelete_region (TOP, v1); | 1504 | TOP = Fdelete_region (TOP, v1); |
| 1662 | AFTER_POTENTIAL_GC (); | ||
| 1663 | NEXT; | 1505 | NEXT; |
| 1664 | } | 1506 | } |
| 1665 | 1507 | ||
| 1666 | CASE (Bnarrow_to_region): | 1508 | CASE (Bnarrow_to_region): |
| 1667 | { | 1509 | { |
| 1668 | Lisp_Object v1; | 1510 | Lisp_Object v1; |
| 1669 | BEFORE_POTENTIAL_GC (); | ||
| 1670 | v1 = POP; | 1511 | v1 = POP; |
| 1671 | TOP = Fnarrow_to_region (TOP, v1); | 1512 | TOP = Fnarrow_to_region (TOP, v1); |
| 1672 | AFTER_POTENTIAL_GC (); | ||
| 1673 | NEXT; | 1513 | NEXT; |
| 1674 | } | 1514 | } |
| 1675 | 1515 | ||
| 1676 | CASE (Bwiden): | 1516 | CASE (Bwiden): |
| 1677 | BEFORE_POTENTIAL_GC (); | ||
| 1678 | PUSH (Fwiden ()); | 1517 | PUSH (Fwiden ()); |
| 1679 | AFTER_POTENTIAL_GC (); | ||
| 1680 | NEXT; | 1518 | NEXT; |
| 1681 | 1519 | ||
| 1682 | CASE (Bend_of_line): | 1520 | CASE (Bend_of_line): |
| 1683 | BEFORE_POTENTIAL_GC (); | ||
| 1684 | TOP = Fend_of_line (TOP); | 1521 | TOP = Fend_of_line (TOP); |
| 1685 | AFTER_POTENTIAL_GC (); | ||
| 1686 | NEXT; | 1522 | NEXT; |
| 1687 | 1523 | ||
| 1688 | CASE (Bset_marker): | 1524 | CASE (Bset_marker): |
| 1689 | { | 1525 | { |
| 1690 | Lisp_Object v1, v2; | 1526 | Lisp_Object v1, v2; |
| 1691 | BEFORE_POTENTIAL_GC (); | ||
| 1692 | v1 = POP; | 1527 | v1 = POP; |
| 1693 | v2 = POP; | 1528 | v2 = POP; |
| 1694 | TOP = Fset_marker (TOP, v2, v1); | 1529 | TOP = Fset_marker (TOP, v2, v1); |
| 1695 | AFTER_POTENTIAL_GC (); | ||
| 1696 | NEXT; | 1530 | NEXT; |
| 1697 | } | 1531 | } |
| 1698 | 1532 | ||
| 1699 | CASE (Bmatch_beginning): | 1533 | CASE (Bmatch_beginning): |
| 1700 | BEFORE_POTENTIAL_GC (); | ||
| 1701 | TOP = Fmatch_beginning (TOP); | 1534 | TOP = Fmatch_beginning (TOP); |
| 1702 | AFTER_POTENTIAL_GC (); | ||
| 1703 | NEXT; | 1535 | NEXT; |
| 1704 | 1536 | ||
| 1705 | CASE (Bmatch_end): | 1537 | CASE (Bmatch_end): |
| 1706 | BEFORE_POTENTIAL_GC (); | ||
| 1707 | TOP = Fmatch_end (TOP); | 1538 | TOP = Fmatch_end (TOP); |
| 1708 | AFTER_POTENTIAL_GC (); | ||
| 1709 | NEXT; | 1539 | NEXT; |
| 1710 | 1540 | ||
| 1711 | CASE (Bupcase): | 1541 | CASE (Bupcase): |
| 1712 | BEFORE_POTENTIAL_GC (); | ||
| 1713 | TOP = Fupcase (TOP); | 1542 | TOP = Fupcase (TOP); |
| 1714 | AFTER_POTENTIAL_GC (); | ||
| 1715 | NEXT; | 1543 | NEXT; |
| 1716 | 1544 | ||
| 1717 | CASE (Bdowncase): | 1545 | CASE (Bdowncase): |
| 1718 | BEFORE_POTENTIAL_GC (); | ||
| 1719 | TOP = Fdowncase (TOP); | 1546 | TOP = Fdowncase (TOP); |
| 1720 | AFTER_POTENTIAL_GC (); | ||
| 1721 | NEXT; | 1547 | NEXT; |
| 1722 | 1548 | ||
| 1723 | CASE (Bstringeqlsign): | 1549 | CASE (Bstringeqlsign): |
| 1724 | { | 1550 | { |
| 1725 | Lisp_Object v1; | 1551 | Lisp_Object v1; |
| 1726 | BEFORE_POTENTIAL_GC (); | ||
| 1727 | v1 = POP; | 1552 | v1 = POP; |
| 1728 | TOP = Fstring_equal (TOP, v1); | 1553 | TOP = Fstring_equal (TOP, v1); |
| 1729 | AFTER_POTENTIAL_GC (); | ||
| 1730 | NEXT; | 1554 | NEXT; |
| 1731 | } | 1555 | } |
| 1732 | 1556 | ||
| 1733 | CASE (Bstringlss): | 1557 | CASE (Bstringlss): |
| 1734 | { | 1558 | { |
| 1735 | Lisp_Object v1; | 1559 | Lisp_Object v1; |
| 1736 | BEFORE_POTENTIAL_GC (); | ||
| 1737 | v1 = POP; | 1560 | v1 = POP; |
| 1738 | TOP = Fstring_lessp (TOP, v1); | 1561 | TOP = Fstring_lessp (TOP, v1); |
| 1739 | AFTER_POTENTIAL_GC (); | ||
| 1740 | NEXT; | 1562 | NEXT; |
| 1741 | } | 1563 | } |
| 1742 | 1564 | ||
| @@ -1751,10 +1573,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1751 | CASE (Bnthcdr): | 1573 | CASE (Bnthcdr): |
| 1752 | { | 1574 | { |
| 1753 | Lisp_Object v1; | 1575 | Lisp_Object v1; |
| 1754 | BEFORE_POTENTIAL_GC (); | ||
| 1755 | v1 = POP; | 1576 | v1 = POP; |
| 1756 | TOP = Fnthcdr (TOP, v1); | 1577 | TOP = Fnthcdr (TOP, v1); |
| 1757 | AFTER_POTENTIAL_GC (); | ||
| 1758 | NEXT; | 1578 | NEXT; |
| 1759 | } | 1579 | } |
| 1760 | 1580 | ||
| @@ -1765,11 +1585,9 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1765 | { | 1585 | { |
| 1766 | /* Exchange args and then do nth. */ | 1586 | /* Exchange args and then do nth. */ |
| 1767 | EMACS_INT n; | 1587 | EMACS_INT n; |
| 1768 | BEFORE_POTENTIAL_GC (); | ||
| 1769 | v2 = POP; | 1588 | v2 = POP; |
| 1770 | v1 = TOP; | 1589 | v1 = TOP; |
| 1771 | CHECK_NUMBER (v2); | 1590 | CHECK_NUMBER (v2); |
| 1772 | AFTER_POTENTIAL_GC (); | ||
| 1773 | n = XINT (v2); | 1591 | n = XINT (v2); |
| 1774 | immediate_quit = 1; | 1592 | immediate_quit = 1; |
| 1775 | while (--n >= 0 && CONSP (v1)) | 1593 | while (--n >= 0 && CONSP (v1)) |
| @@ -1779,10 +1597,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1779 | } | 1597 | } |
| 1780 | else | 1598 | else |
| 1781 | { | 1599 | { |
| 1782 | BEFORE_POTENTIAL_GC (); | ||
| 1783 | v1 = POP; | 1600 | v1 = POP; |
| 1784 | TOP = Felt (TOP, v1); | 1601 | TOP = Felt (TOP, v1); |
| 1785 | AFTER_POTENTIAL_GC (); | ||
| 1786 | } | 1602 | } |
| 1787 | NEXT; | 1603 | NEXT; |
| 1788 | } | 1604 | } |
| @@ -1790,46 +1606,36 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1790 | CASE (Bmember): | 1606 | CASE (Bmember): |
| 1791 | { | 1607 | { |
| 1792 | Lisp_Object v1; | 1608 | Lisp_Object v1; |
| 1793 | BEFORE_POTENTIAL_GC (); | ||
| 1794 | v1 = POP; | 1609 | v1 = POP; |
| 1795 | TOP = Fmember (TOP, v1); | 1610 | TOP = Fmember (TOP, v1); |
| 1796 | AFTER_POTENTIAL_GC (); | ||
| 1797 | NEXT; | 1611 | NEXT; |
| 1798 | } | 1612 | } |
| 1799 | 1613 | ||
| 1800 | CASE (Bassq): | 1614 | CASE (Bassq): |
| 1801 | { | 1615 | { |
| 1802 | Lisp_Object v1; | 1616 | Lisp_Object v1; |
| 1803 | BEFORE_POTENTIAL_GC (); | ||
| 1804 | v1 = POP; | 1617 | v1 = POP; |
| 1805 | TOP = Fassq (TOP, v1); | 1618 | TOP = Fassq (TOP, v1); |
| 1806 | AFTER_POTENTIAL_GC (); | ||
| 1807 | NEXT; | 1619 | NEXT; |
| 1808 | } | 1620 | } |
| 1809 | 1621 | ||
| 1810 | CASE (Bnreverse): | 1622 | CASE (Bnreverse): |
| 1811 | BEFORE_POTENTIAL_GC (); | ||
| 1812 | TOP = Fnreverse (TOP); | 1623 | TOP = Fnreverse (TOP); |
| 1813 | AFTER_POTENTIAL_GC (); | ||
| 1814 | NEXT; | 1624 | NEXT; |
| 1815 | 1625 | ||
| 1816 | CASE (Bsetcar): | 1626 | CASE (Bsetcar): |
| 1817 | { | 1627 | { |
| 1818 | Lisp_Object v1; | 1628 | Lisp_Object v1; |
| 1819 | BEFORE_POTENTIAL_GC (); | ||
| 1820 | v1 = POP; | 1629 | v1 = POP; |
| 1821 | TOP = Fsetcar (TOP, v1); | 1630 | TOP = Fsetcar (TOP, v1); |
| 1822 | AFTER_POTENTIAL_GC (); | ||
| 1823 | NEXT; | 1631 | NEXT; |
| 1824 | } | 1632 | } |
| 1825 | 1633 | ||
| 1826 | CASE (Bsetcdr): | 1634 | CASE (Bsetcdr): |
| 1827 | { | 1635 | { |
| 1828 | Lisp_Object v1; | 1636 | Lisp_Object v1; |
| 1829 | BEFORE_POTENTIAL_GC (); | ||
| 1830 | v1 = POP; | 1637 | v1 = POP; |
| 1831 | TOP = Fsetcdr (TOP, v1); | 1638 | TOP = Fsetcdr (TOP, v1); |
| 1832 | AFTER_POTENTIAL_GC (); | ||
| 1833 | NEXT; | 1639 | NEXT; |
| 1834 | } | 1640 | } |
| 1835 | 1641 | ||
| @@ -1850,10 +1656,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1850 | } | 1656 | } |
| 1851 | 1657 | ||
| 1852 | CASE (Bnconc): | 1658 | CASE (Bnconc): |
| 1853 | BEFORE_POTENTIAL_GC (); | ||
| 1854 | DISCARD (1); | 1659 | DISCARD (1); |
| 1855 | TOP = Fnconc (2, &TOP); | 1660 | TOP = Fnconc (2, &TOP); |
| 1856 | AFTER_POTENTIAL_GC (); | ||
| 1857 | NEXT; | 1661 | NEXT; |
| 1858 | 1662 | ||
| 1859 | CASE (Bnumberp): | 1663 | CASE (Bnumberp): |
| @@ -1870,14 +1674,10 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1870 | interpreter. */ | 1674 | interpreter. */ |
| 1871 | 1675 | ||
| 1872 | case Bset_mark: | 1676 | case Bset_mark: |
| 1873 | BEFORE_POTENTIAL_GC (); | ||
| 1874 | error ("set-mark is an obsolete bytecode"); | 1677 | error ("set-mark is an obsolete bytecode"); |
| 1875 | AFTER_POTENTIAL_GC (); | ||
| 1876 | break; | 1678 | break; |
| 1877 | case Bscan_buffer: | 1679 | case Bscan_buffer: |
| 1878 | BEFORE_POTENTIAL_GC (); | ||
| 1879 | error ("scan-buffer is an obsolete bytecode"); | 1680 | error ("scan-buffer is an obsolete bytecode"); |
| 1880 | AFTER_POTENTIAL_GC (); | ||
| 1881 | break; | 1681 | break; |
| 1882 | #endif | 1682 | #endif |
| 1883 | 1683 | ||