Lines Matching refs:opline

11 	zend_op *opline = op_array->opcodes;  variable
12 zend_op *end = opline + op_array->last;
14 while (opline < end) {
15 switch (opline->opcode) {
34 if (ZEND_OP1_TYPE(opline) == IS_CONST &&
35 ZEND_OP2_TYPE(opline) == IS_CONST) {
37 int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC) = get_binary_op(opline->opcode);
38 zend_uint tv = ZEND_RESULT(opline).var; /* temporary variable */
42 if (opline->opcode == ZEND_DIV &&
43 Z_TYPE(ZEND_OP2_LITERAL(opline)) == IS_LONG &&
44 Z_LVAL(ZEND_OP2_LITERAL(opline)) == 0) {
51 …if (binary_op(&result, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LITERAL(opline) TSRMLS_CC) != SUCCESS)…
59 literal_dtor(&ZEND_OP1_LITERAL(opline));
60 literal_dtor(&ZEND_OP2_LITERAL(opline));
61 MAKE_NOP(opline);
63 replace_tmp_by_const(op_array, opline + 1, tv, &result TSRMLS_CC);
68 if (ZEND_OP1_TYPE(opline) == IS_CONST &&
69 opline->extended_value != IS_ARRAY &&
70 opline->extended_value != IS_OBJECT &&
71 opline->extended_value != IS_RESOURCE) {
73 zend_uint tv = ZEND_RESULT(opline).var; /* temporary variable */
75 res = ZEND_OP1_LITERAL(opline);
77 switch (opline->extended_value) {
95 literal_dtor(&ZEND_OP1_LITERAL(opline));
96 MAKE_NOP(opline);
98 replace_tmp_by_const(op_array, opline + 1, tv, &res TSRMLS_CC);
99 } else if (opline->extended_value == IS_BOOL) {
101 opline->opcode = ZEND_BOOL;
102 opline->extended_value = 0;
108 if (ZEND_OP1_TYPE(opline) == IS_CONST) {
110 unary_op_type unary_op = get_unary_op(opline->opcode);
112 zend_uint tv = ZEND_RESULT(opline).var; /* temporary variable */
118 if (unary_op(&result, &ZEND_OP1_LITERAL(opline)) != SUCCESS) {
120 if (unary_op(&result, &ZEND_OP1_LITERAL(opline) TSRMLS_CC) != SUCCESS) {
129 literal_dtor(&ZEND_OP1_LITERAL(opline));
130 MAKE_NOP(opline);
132 replace_tmp_by_const(op_array, opline + 1, tv, &result TSRMLS_CC);
139 zend_op *next_op = opline + 1;
140 int requires_conversion = (opline->opcode == ZEND_ADD_CHAR? 1 : 0);
151 if (ZEND_RESULT(opline).var != ZEND_RESULT(next_op).var) {
165 final_length += (requires_conversion? 1 : ZEND_OP2_LITERAL(opline).value.str.len);
169 char chval = (char)ZEND_OP2_LITERAL(opline).value.lval;
171 ZEND_OP2_LITERAL(opline).value.str.val = ptr;
173 ZEND_OP2_LITERAL(opline).type = IS_STRING;
174 opline->opcode = ZEND_ADD_STRING;
177 memcpy(ptr, Z_STRVAL(ZEND_OP2_LITERAL(opline)), Z_STRLEN(ZEND_OP2_LITERAL(opline)));
178 if (!IS_INTERNED(Z_STRVAL(ZEND_OP2_LITERAL(opline)))) {
179 efree(Z_STRVAL(ZEND_OP2_LITERAL(opline)));
181 Z_STRVAL(ZEND_OP2_LITERAL(opline)) = ptr;
182 ptr += Z_STRLEN(ZEND_OP2_LITERAL(opline));
184 ZEND_OP2_LITERAL(opline).value.str.len = final_length;
185 next_op = opline + 1;
200 if (last_op-opline >= 3) { /* If we have more than 2 NOPS then JMP over them */
201 (opline + 1)->opcode = ZEND_JMP;
202 …ZEND_OP1(opline + 1).opline_num = last_op - op_array->opcodes; /* that's OK even for ZE2, since op…
209 if (ZEND_OP1_TYPE(opline) == IS_UNUSED &&
210 ZEND_OP2_TYPE(opline) == IS_CONST &&
211 Z_TYPE(ZEND_OP2_LITERAL(opline)) == IS_STRING &&
212 Z_STRLEN(ZEND_OP2_LITERAL(opline)) == sizeof("__COMPILER_HALT_OFFSET__") - 1 &&
213 …memcmp(Z_STRVAL(ZEND_OP2_LITERAL(opline)), "__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFF…
222 zend_uint tv = ZEND_RESULT(opline).var;
224 literal_dtor(&ZEND_OP2_LITERAL(opline));
225 MAKE_NOP(opline);
226 replace_tmp_by_const(op_array, opline, tv, &offset TSRMLS_CC);
233 if (ZEND_OP1_TYPE(opline) == IS_UNUSED &&
234 ZEND_OP2_TYPE(opline) == IS_CONST &&
235 ZEND_OP2_LITERAL(opline).type == IS_STRING) {
237 zend_uint tv = ZEND_RESULT(opline).var;
240 …zend_get_persistent_constant(Z_STRVAL(ZEND_OP2_LITERAL(opline)), Z_STRLEN(ZEND_OP2_LITERAL(opline)…
243 literal_dtor(&ZEND_OP2_LITERAL(opline));
244 MAKE_NOP(opline);
245 replace_tmp_by_const(op_array, opline, tv, &c TSRMLS_CC);
250 if (opline->extended_value == 0 /* not method */ &&
251 ZEND_OP1_TYPE(opline) == IS_UNUSED &&
252 ZEND_OP2_TYPE(opline) == IS_CONST) {
253 if ((opline + 1)->opcode == ZEND_DO_FCALL_BY_NAME &&
254 (opline + 1)->extended_value == 0) {
255 (opline + 1)->opcode = ZEND_DO_FCALL;
256 COPY_NODE((opline + 1)->op1, opline->op2);
257 … zend_str_tolower(Z_STRVAL(ZEND_OP1_LITERAL(opline + 1)), Z_STRLEN(ZEND_OP1_LITERAL(opline + 1)));
259 …HASH_P(&ZEND_OP1_LITERAL(opline + 1)) = zend_hash_func(Z_STRVAL(ZEND_OP1_LITERAL(opline + 1)), Z_S…
260 op_array->literals[(opline + 1)->op1.constant].cache_slot = op_array->last_cache_slot++;
262 MAKE_NOP(opline);
274 if (opline != op_array->opcodes &&
275 (opline-1)->opcode == ZEND_BEGIN_SILENCE &&
276 (opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_LOCAL &&
277 opline->op1_type == IS_CONST &&
278 opline->op2_type == IS_UNUSED &&
279 Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING &&
280 (Z_STRLEN(ZEND_OP1_LITERAL(opline)) != sizeof("this")-1 ||
281 memcmp(Z_STRVAL(ZEND_OP1_LITERAL(opline)), "this", sizeof("this")) != 0)) {
283 int var = opline->result.var;
285 zend_op *op = opline + 1;
319 Z_STRVAL(ZEND_OP1_LITERAL(opline)),
320 Z_STRLEN(ZEND_OP1_LITERAL(opline)));
321 MAKE_NOP(opline);
325 Z_STRVAL(ZEND_OP1_LITERAL(opline)),
326 Z_STRLEN(ZEND_OP1_LITERAL(opline)));
327 MAKE_NOP(opline);
335 opline++;