Lines Matching refs:opline

38 register const zend_op* volatile opline __asm__("%r15");
41 register const zend_op* volatile opline __asm__("%edi");
44 register const zend_op* volatile opline __asm__("x28");
72 const zend_op *old_opline = EX(opline); in zend_jit_leave_nested_func_helper()
81 EX(opline)++; in zend_jit_leave_nested_func_helper()
83 opline = EX(opline); in zend_jit_leave_nested_func_helper()
106 opline = zend_jit_halt_op; in zend_jit_leave_top_func_helper()
136 opline += first_extra_arg; in zend_jit_copy_extra_args_helper()
138 EX(opline) += first_extra_arg; in zend_jit_copy_extra_args_helper()
171 zend_execute_data *call = (zend_execute_data *) opline; in zend_jit_deprecated_helper()
180 const zend_op *opline = EG(opline_before_exception); in zend_jit_deprecated_helper() local
181 if (opline && RETURN_VALUE_USED(opline)) { in zend_jit_deprecated_helper()
182 ZVAL_UNDEF(EX_VAR(opline->result.var)); in zend_jit_deprecated_helper()
199 const zend_op *opline = EX(opline); in zend_jit_undefined_long_key() local
200 zval *result = EX_VAR(opline->result.var); in zend_jit_undefined_long_key()
203 if (opline->op2_type == IS_CONST) { in zend_jit_undefined_long_key()
204 dim = RT_CONSTANT(opline, opline->op2); in zend_jit_undefined_long_key()
206 dim = EX_VAR(opline->op2.var); in zend_jit_undefined_long_key()
215 const zend_op *opline = EX(opline); in zend_jit_undefined_long_key_ex() local
216 zval *result = EX_VAR(opline->result.var); in zend_jit_undefined_long_key_ex()
224 const zend_op *opline = EX(opline); in zend_jit_undefined_string_key() local
225 zval *result = EX_VAR(opline->result.var); in zend_jit_undefined_string_key()
229 if (opline->op2_type == IS_CONST) { in zend_jit_undefined_string_key()
230 dim = RT_CONSTANT(opline, opline->op2); in zend_jit_undefined_string_key()
232 dim = EX_VAR(opline->op2.var); in zend_jit_undefined_string_key()
258 const zend_op *opline = EX(opline); in zend_jit_func_counter_helper() local
265 zend_jit_hot_func(execute_data, opline); in zend_jit_func_counter_helper()
268 …zend_vm_opcode_handler_t handler = (zend_vm_opcode_handler_t)jit_extension->orig_handlers[opline -… in zend_jit_func_counter_helper()
278 const zend_op *opline = EX(opline); in zend_jit_loop_counter_helper() local
285 zend_jit_hot_func(execute_data, opline); in zend_jit_loop_counter_helper()
288 …zend_vm_opcode_handler_t handler = (zend_vm_opcode_handler_t)jit_extension->orig_handlers[opline -… in zend_jit_loop_counter_helper()
299 const zend_op *opline = EX(opline); in _zend_quick_get_constant() local
317 … zend_throw_error(NULL, "Undefined constant \"%s\"", Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); in _zend_quick_get_constant()
318 ZVAL_UNDEF(EX_VAR(opline->result.var)); in _zend_quick_get_constant()
320 …CACHE_PTR(opline->extended_value, ENCODE_SPECIAL_CACHE_NUM(zend_hash_num_elements(EG(zend_constant… in _zend_quick_get_constant()
334 CACHE_PTR(opline->extended_value, c); in _zend_quick_get_constant()
354 const zend_op *opline = EX(opline); in zend_jit_trace_counter_helper() local
357 *(ZEND_OP_TRACE_INFO(opline, offset)->counter) -= cost; in zend_jit_trace_counter_helper()
359 if (UNEXPECTED(*(ZEND_OP_TRACE_INFO(opline, offset)->counter) <= 0)) { in zend_jit_trace_counter_helper()
360 *(ZEND_OP_TRACE_INFO(opline, offset)->counter) = ZEND_JIT_COUNTER_INIT; in zend_jit_trace_counter_helper()
361 if (UNEXPECTED(zend_jit_trace_hot_root(execute_data, opline) < 0)) { in zend_jit_trace_counter_helper()
363 opline = NULL; in zend_jit_trace_counter_helper()
371 opline = execute_data ? EX(opline) : NULL; in zend_jit_trace_counter_helper()
377 …zend_vm_opcode_handler_t handler = (zend_vm_opcode_handler_t)ZEND_OP_TRACE_INFO(opline, offset)->o… in zend_jit_trace_counter_helper()
463 if (&ex->func->op_array == orig_op_array && ex->opline + 1 == orig_opline) { in zend_jit_trace_has_recursive_ret()
472 static uint8_t zend_jit_trace_bad_stop_event(const zend_op *opline, int count) in zend_jit_trace_bad_stop_event() argument
483 if (cache_opline[i] == opline) { in zend_jit_trace_bad_stop_event()
553 …ce_buffer, int start, int end, uint8_t event, const zend_op_array *op_array, const zend_op *opline) in zend_jit_trace_subtrace() argument
557 TRACE_START(ZEND_JIT_TRACE_START, event, op_array, opline); in zend_jit_trace_subtrace()
603 const zend_op *save_opline = opline;
631 opline = EX(opline) = op;
635 const zend_op *opline = EX(opline); local
639 orig_opline = opline;
650 TRACE_START(ZEND_JIT_TRACE_START, start, op_array, opline);
652 if (UNEXPECTED(opline->opcode == ZEND_HANDLE_EXCEPTION)) {
654 TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_EXCEPTION, opline);
657 opline = save_opline;
662 trace_flags = ZEND_OP_TRACE_INFO(opline, offset)->trace_flags;
664 TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_NOT_SUPPORTED, opline);
667 opline = save_opline;
675 TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_BAD_FUNC, opline);
678 opline = save_opline;
688 if ((opline->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV))
689 && opline->opcode != ZEND_ROPE_ADD
690 && opline->opcode != ZEND_ROPE_END
691 && opline->opcode != ZEND_NEW
692 && opline->opcode != ZEND_FETCH_CLASS_CONSTANT
693 && opline->opcode != ZEND_INIT_STATIC_METHOD_CALL) {
694 zval *zv = EX_VAR(opline->op1.var);
716 } else if (opline->op1_type == IS_UNUSED && (op_array->fn_flags & ZEND_ACC_CLOSURE)) {
717 uint32_t op1_flags = ZEND_VM_OP1_FLAGS(zend_get_opcode_flags(opline->opcode));
723 if (opline->op2_type & (IS_TMP_VAR|IS_VAR|IS_CV)
724 && opline->opcode != ZEND_INSTANCEOF
725 && opline->opcode != ZEND_UNSET_STATIC_PROP
726 && opline->opcode != ZEND_ISSET_ISEMPTY_STATIC_PROP
727 && opline->opcode != ZEND_ASSIGN_STATIC_PROP
728 && opline->opcode != ZEND_ASSIGN_STATIC_PROP_REF
729 && opline->opcode != ZEND_ASSIGN_STATIC_PROP_OP
730 && opline->opcode != ZEND_PRE_INC_STATIC_PROP
731 && opline->opcode != ZEND_POST_INC_STATIC_PROP
732 && opline->opcode != ZEND_PRE_DEC_STATIC_PROP
733 && opline->opcode != ZEND_POST_DEC_STATIC_PROP
734 && opline->opcode != ZEND_FETCH_STATIC_PROP_R
735 && opline->opcode != ZEND_FETCH_STATIC_PROP_W
736 && opline->opcode != ZEND_FETCH_STATIC_PROP_RW
737 && opline->opcode != ZEND_FETCH_STATIC_PROP_IS
738 && opline->opcode != ZEND_FETCH_STATIC_PROP_FUNC_ARG
739 && opline->opcode != ZEND_FETCH_STATIC_PROP_UNSET
740 && (opline->op2_type == IS_CV
741 || (opline->opcode != ZEND_FE_FETCH_R
742 && opline->opcode != ZEND_FE_FETCH_RW))) {
743 zval *zv = EX_VAR(opline->op2.var);
762 if (opline->opcode == ZEND_ASSIGN_DIM ||
763 opline->opcode == ZEND_ASSIGN_OBJ ||
764 opline->opcode == ZEND_ASSIGN_STATIC_PROP ||
765 opline->opcode == ZEND_ASSIGN_DIM_OP ||
766 opline->opcode == ZEND_ASSIGN_OBJ_OP ||
767 opline->opcode == ZEND_ASSIGN_STATIC_PROP_OP ||
768 opline->opcode == ZEND_ASSIGN_OBJ_REF ||
769 opline->opcode == ZEND_ASSIGN_STATIC_PROP_REF) {
770 if ((opline+1)->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV)) {
771 zval *zv = EX_VAR((opline+1)->op1.var);
789 TRACE_RECORD_VM(ZEND_JIT_TRACE_VM, opline, op1_type, op2_type, op3_type);
799 switch (opline->opcode) {
812 if (opline->op1_type == IS_CONST) {
813 zval *arr = RT_CONSTANT(opline, opline->op1);
817 && opline->op2_type != IS_UNDEF) {
821 if (opline->op2_type == IS_CONST) {
822 dim = RT_CONSTANT(opline, opline->op2);
824 dim = EX_VAR(opline->op2.var);
828 if (opline->op1_type == IS_CONST) {
829 arr = RT_CONSTANT(opline, opline->op1);
831 arr = EX_VAR(opline->op1.var);
853 if (opline->op2_type == IS_CONST) {
855 void **cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF);
877 if (opline->op1_type != IS_CONST
878 && opline->op2_type == IS_CONST
879 && Z_TYPE_P(RT_CONSTANT(opline, opline->op2)) == IS_STRING
880 && Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))[0] != '\0') {
882 zend_string *prop_name = Z_STR_P(RT_CONSTANT(opline, opline->op2));
885 if (opline->op1_type == IS_UNUSED) {
888 obj = EX_VAR(opline->op1.var);
908 if (opline->opcode == ZEND_DO_FCALL
909 || opline->opcode == ZEND_DO_ICALL
910 || opline->opcode == ZEND_DO_UCALL
911 || opline->opcode == ZEND_DO_FCALL_BY_NAME) {
923 } else if (opline->opcode == ZEND_INCLUDE_OR_EVAL
924 || opline->opcode == ZEND_CALLABLE_CONVERT) {
930 handler = (zend_vm_opcode_handler_t)ZEND_OP_TRACE_INFO(opline, offset)->call_handler;
933 if (UNEXPECTED(opline == zend_jit_halt_op)) {
935 opline = NULL;
945 opline = NULL;
953 opline = EX(opline);
1002 if (opline == orig_opline) {
1031 if (opline == orig_opline) {
1139 opline = EX(opline);
1143 && zend_jit_may_be_polymorphic_call(opline - 1)) {
1147 && trace_buffer[1].opline == opline - 1) {
1159 opline = EX(opline);
1162 if (UNEXPECTED(opline->opcode == ZEND_HANDLE_EXCEPTION)) {
1168 trace_flags = ZEND_OP_TRACE_INFO(opline, offset)->trace_flags;
1192 link_to_enter_opline = opline;
1205 if (opline == orig_opline && level + ret_level == 0) {
1215 bad_stop = zend_jit_trace_bad_stop_event(opline,
1228 if (opline == last_loop_opline
1231 last_loop, idx, ZEND_JIT_TRACE_START_LOOP, op_array, opline);
1238 last_loop_opline = opline;
1246 TRACE_RECORD(ZEND_JIT_TRACE_VM, 0, opline);
1253 end_opline = opline;
1287 EX(opline) = opline;
1293 opline = save_opline;