412 |
|
|
413 |
|
|
414 |
DEFUN ("byte-code", Fbyte_code, Sbyte_code, 3, 3, 0, |
DEFUN ("byte-code", Fbyte_code, Sbyte_code, 3, 3, 0, |
415 |
"Function used internally in byte-compiled code.\n\ |
doc: /* Function used internally in byte-compiled code. |
416 |
The first argument, BYTESTR, is a string of byte code;\n\ |
The first argument, BYTESTR, is a string of byte code; |
417 |
the second, VECTOR, a vector of constants;\n\ |
the second, VECTOR, a vector of constants; |
418 |
the third, MAXDEPTH, the maximum stack depth used in this function.\n\ |
the third, MAXDEPTH, the maximum stack depth used in this function. |
419 |
If the third argument is incorrect, Emacs may crash.") |
If the third argument is incorrect, Emacs may crash. */) |
420 |
(bytestr, vector, maxdepth) |
(bytestr, vector, maxdepth) |
421 |
Lisp_Object bytestr, vector, maxdepth; |
Lisp_Object bytestr, vector, maxdepth; |
422 |
{ |
{ |
423 |
int count = specpdl_ptr - specpdl; |
int count = specpdl_ptr - specpdl; |
1746 |
#ifdef BYTE_CODE_METER |
#ifdef BYTE_CODE_METER |
1747 |
|
|
1748 |
DEFVAR_LISP ("byte-code-meter", &Vbyte_code_meter, |
DEFVAR_LISP ("byte-code-meter", &Vbyte_code_meter, |
1749 |
"A vector of vectors which holds a histogram of byte-code usage.\n\ |
doc: /* A vector of vectors which holds a histogram of byte-code usage. |
1750 |
\(aref (aref byte-code-meter 0) CODE) indicates how many times the byte\n\ |
\(aref (aref byte-code-meter 0) CODE) indicates how many times the byte |
1751 |
opcode CODE has been executed.\n\ |
opcode CODE has been executed. |
1752 |
\(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,\n\ |
\(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0, |
1753 |
indicates how many times the byte opcodes CODE1 and CODE2 have been\n\ |
indicates how many times the byte opcodes CODE1 and CODE2 have been |
1754 |
executed in succession."); |
executed in succession. */); |
1755 |
|
|
1756 |
DEFVAR_BOOL ("byte-metering-on", &byte_metering_on, |
DEFVAR_BOOL ("byte-metering-on", &byte_metering_on, |
1757 |
"If non-nil, keep profiling information on byte code usage.\n\ |
doc: /* If non-nil, keep profiling information on byte code usage. |
1758 |
The variable byte-code-meter indicates how often each byte opcode is used.\n\ |
The variable byte-code-meter indicates how often each byte opcode is used. |
1759 |
If a symbol has a property named `byte-code-meter' whose value is an\n\ |
If a symbol has a property named `byte-code-meter' whose value is an |
1760 |
integer, it is incremented each time that symbol's function is called."); |
integer, it is incremented each time that symbol's function is called. */); |
1761 |
|
|
1762 |
byte_metering_on = 0; |
byte_metering_on = 0; |
1763 |
Vbyte_code_meter = Fmake_vector (make_number (256), make_number (0)); |
Vbyte_code_meter = Fmake_vector (make_number (256), make_number (0)); |