comparison src/bytecode.c @ 16:0293115a14e9 r19-15b91

Import from CVS: tag r19-15b91
author cvs
date Mon, 13 Aug 2007 08:49:20 +0200
parents 376386a54a3c
children 859a2309aef8
comparison
equal deleted inserted replaced
15:ad457d5f7d04 16:0293115a14e9
317 format for easier processing. */ 317 format for easier processing. */
318 massaged_code = 318 massaged_code =
319 (Emchar *) alloca (sizeof (Emchar) * 319 (Emchar *) alloca (sizeof (Emchar) *
320 (1 + string_char_length (XSTRING (bytestr)))); 320 (1 + string_char_length (XSTRING (bytestr))));
321 massaged_code_len = 321 massaged_code_len =
322 convert_bufbyte_string_into_emchar_string (string_data (XSTRING (bytestr)), 322 convert_bufbyte_string_into_emchar_string (XSTRING_DATA (bytestr),
323 string_length (XSTRING (bytestr)), 323 XSTRING_LENGTH (bytestr),
324 massaged_code); 324 massaged_code);
325 massaged_code[massaged_code_len] = 0; 325 massaged_code[massaged_code_len] = 0;
326 pc = 0; 326 pc = 0;
327 #else /* !V20_SLOW_WAY */ 327 #else /* !V20_SLOW_WAY */
328 /* Initialize the pc-pointer by fetching from the string. */ 328 /* Initialize the pc-pointer by fetching from the string. */
444 { 444 {
445 XSETINT (v2, XINT (v2) + 1); 445 XSETINT (v2, XINT (v2) + 1);
446 Fput (v1, Qbyte_code_meter, v2); 446 Fput (v1, Qbyte_code_meter, v2);
447 } 447 }
448 } 448 }
449 #endif 449 #endif /* BYTE_CODE_METER */
450 TOP = Ffuncall (op + 1, &TOP); 450 TOP = Ffuncall (op + 1, &TOP);
451 break; 451 break;
452 452
453 case Bunbind+6: 453 case Bunbind+6:
454 op = FETCH; 454 op = FETCH;
654 v2 = POP; /* bodyform */ 654 v2 = POP; /* bodyform */
655 TOP = Fcondition_case_3 (v2, TOP, v1); 655 TOP = Fcondition_case_3 (v2, TOP, v1);
656 break; 656 break;
657 657
658 case Btemp_output_buffer_setup: 658 case Btemp_output_buffer_setup:
659 temp_output_buffer_setup ((char *) string_data (XSTRING (TOP))); 659 temp_output_buffer_setup ((char *) XSTRING_DATA (TOP));
660 TOP = Vstandard_output; 660 TOP = Vstandard_output;
661 break; 661 break;
662 662
663 case Btemp_output_buffer_show: 663 case Btemp_output_buffer_show:
664 v1 = POP; 664 v1 = POP;
860 f1 = (FLOATP (v1) ? float_data (XFLOAT (v1)) : XINT (v1)); 860 f1 = (FLOATP (v1) ? float_data (XFLOAT (v1)) : XINT (v1));
861 f2 = (FLOATP (v2) ? float_data (XFLOAT (v2)) : XINT (v2)); 861 f2 = (FLOATP (v2) ? float_data (XFLOAT (v2)) : XINT (v2));
862 TOP = (f1 == f2 ? Qt : Qnil); 862 TOP = (f1 == f2 ? Qt : Qnil);
863 } 863 }
864 else 864 else
865 #endif 865 #endif /* LISP_FLOAT_TYPE */
866 TOP = (XINT (v1) == XINT (v2) ? Qt : Qnil); 866 TOP = (XINT (v1) == XINT (v2) ? Qt : Qnil);
867 break; 867 break;
868 868
869 case Bgtr: 869 case Bgtr:
870 v1 = POP; 870 v1 = POP;
1040 break; 1040 break;
1041 1041
1042 case Bchar_syntax: 1042 case Bchar_syntax:
1043 CHECK_CHAR_COERCE_INT (TOP); 1043 CHECK_CHAR_COERCE_INT (TOP);
1044 TOP = make_char (syntax_code_spec 1044 TOP = make_char (syntax_code_spec
1045 [(int) SYNTAX (current_buffer->syntax_table, 1045 [(int) SYNTAX
1046 XCHAR (TOP))]); 1046 (current_buffer->syntax_table,
1047 XCHAR (TOP))]);
1047 break; 1048 break;
1048 1049
1049 case Bbuffer_substring: 1050 case Bbuffer_substring:
1050 v1 = POP; 1051 v1 = POP;
1051 TOP = Fbuffer_substring (TOP, v1, Fcurrent_buffer ()); 1052 TOP = Fbuffer_substring (TOP, v1, Fcurrent_buffer ());