source: trunk/xcache/xc_const_string.c @ 1325

Last change on this file since 1325 was 1325, checked in by moo, 18 months ago

adds opcode string for PHP5.2 seperately for easier compiling

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1#include "xcache.h"
2#include "xc_const_string.h"
3
4/* {{{ xc_get_op_type */
5static const char *const op_type_names[] = {
6    /* 0 */ "NULL?",
7    /* 1 */ "IS_CONST",
8    /* 2 */ "IS_TMP_VAR",
9    /* 3 */ NULL,
10    /* 4 */ "IS_VAR",
11    /* 5 */ NULL,
12    /* 6 */ NULL,
13    /* 7 */ NULL,
14    /* 8 */ "IS_UNUSED",
15#ifdef IS_CV
16    /* 9  */ NULL,
17    /* 10 */ NULL,
18    /* 11 */ NULL,
19    /* 12 */ NULL,
20    /* 13 */ NULL,
21    /* 14 */ NULL,
22    /* 15 */ NULL,
23    /* 16 */ "IS_CV"
24#endif
25};
26
27zend_uchar xc_get_op_type_count()
28{
29    return sizeof(op_type_names) / sizeof(op_type_names[0]);
30}
31
32const char *xc_get_op_type(zend_uchar op_type)
33{
34    assert(op_type < xc_get_op_type_count());
35    return op_type_names[op_type];
36}
37/* }}} */
38/* {{{ xc_get_data_type */
39static const char *const data_type_names[] = {
40    /* 0 */ "IS_NULL",
41    /* 1 */ "IS_LONG",
42    /* 2 */ "IS_DOUBLE",
43    /* 3 */ "IS_BOOL",
44    /* 4 */ "IS_ARRAY",
45    /* 5 */ "IS_OBJECT",
46    /* 6 */ "IS_STRING",
47    /* 7 */ "IS_RESOURCE",
48    /* 8 */ "IS_CONSTANT",
49    /* 9 */ "IS_CONSTANT_ARRAY",
50    /* 10 */ "IS_UNICODE"
51};
52
53zend_uchar xc_get_data_type_count()
54{
55    return sizeof(data_type_names) / sizeof(data_type_names[0]);
56}
57
58const char *xc_get_data_type(zend_uchar data_type)
59{
60    return data_type_names[(data_type & IS_CONSTANT_TYPE_MASK)];
61}
62/* }}} */
63/* {{{ xc_get_opcode */
64#if PHP_MAJOR_VERSION >= 6
65#   include "xc_const_string_opcodes_php6.x.h"
66#elif defined(ZEND_ENGINE_2_5)
67#   include "xc_const_string_opcodes_php5.5.h"
68#elif defined(ZEND_ENGINE_2_4)
69#   include "xc_const_string_opcodes_php5.4.h"
70#elif defined(ZEND_ENGINE_2_3)
71#   include "xc_const_string_opcodes_php5.3.h"
72#elif defined(ZEND_ENGINE_2_2)
73#   include "xc_const_string_opcodes_php5.2.h"
74#elif defined(ZEND_ENGINE_2_1)
75#   include "xc_const_string_opcodes_php5.1.h"
76#elif defined(ZEND_ENGINE_2)
77#   include "xc_const_string_opcodes_php5.0.h"
78#else
79#   include "xc_const_string_opcodes_php4.x.h"
80#endif
81
82zend_uchar xc_get_opcode_count()
83{
84    return sizeof(xc_opcode_names) / sizeof(xc_opcode_names[0]);
85}
86
87const char *xc_get_opcode(zend_uchar opcode)
88{
89    assert(opcode < xc_get_opcode_count());
90    return xc_opcode_names[opcode];
91}
92/* }}} */
Note: See TracBrowser for help on using the repository browser.