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()
549 …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
553 TRACE_START(ZEND_JIT_TRACE_START, event, op_array, opline); in zend_jit_trace_subtrace()
599 const zend_op *save_opline = opline;
627 opline = EX(opline) = op;
631 const zend_op *opline = EX(opline); local
635 orig_opline = opline;
646 TRACE_START(ZEND_JIT_TRACE_START, start, op_array, opline);
648 if (UNEXPECTED(opline->opcode == ZEND_HANDLE_EXCEPTION)) {
650 TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_EXCEPTION, opline);
653 opline = save_opline;
658 trace_flags = ZEND_OP_TRACE_INFO(opline, offset)->trace_flags;
660 TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_NOT_SUPPORTED, opline);
663 opline = save_opline;
671 TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_BAD_FUNC, opline);
674 opline = save_opline;
684 if ((opline->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV))
685 && opline->opcode != ZEND_ROPE_ADD
686 && opline->opcode != ZEND_ROPE_END
687 && opline->opcode != ZEND_NEW
688 && opline->opcode != ZEND_FETCH_CLASS_CONSTANT
689 && opline->opcode != ZEND_INIT_STATIC_METHOD_CALL) {
690 zval *zv = EX_VAR(opline->op1.var);
712 } else if (opline->op1_type == IS_UNUSED && (op_array->fn_flags & ZEND_ACC_CLOSURE)) {
713 uint32_t op1_flags = ZEND_VM_OP1_FLAGS(zend_get_opcode_flags(opline->opcode));
719 if (opline->op2_type & (IS_TMP_VAR|IS_VAR|IS_CV)
720 && opline->opcode != ZEND_INSTANCEOF
721 && opline->opcode != ZEND_UNSET_STATIC_PROP
722 && opline->opcode != ZEND_ISSET_ISEMPTY_STATIC_PROP
723 && opline->opcode != ZEND_ASSIGN_STATIC_PROP
724 && opline->opcode != ZEND_ASSIGN_STATIC_PROP_REF
725 && opline->opcode != ZEND_ASSIGN_STATIC_PROP_OP
726 && opline->opcode != ZEND_PRE_INC_STATIC_PROP
727 && opline->opcode != ZEND_POST_INC_STATIC_PROP
728 && opline->opcode != ZEND_PRE_DEC_STATIC_PROP
729 && opline->opcode != ZEND_POST_DEC_STATIC_PROP
730 && opline->opcode != ZEND_FETCH_STATIC_PROP_R
731 && opline->opcode != ZEND_FETCH_STATIC_PROP_W
732 && opline->opcode != ZEND_FETCH_STATIC_PROP_RW
733 && opline->opcode != ZEND_FETCH_STATIC_PROP_IS
734 && opline->opcode != ZEND_FETCH_STATIC_PROP_FUNC_ARG
735 && opline->opcode != ZEND_FETCH_STATIC_PROP_UNSET
736 && (opline->op2_type == IS_CV
737 || (opline->opcode != ZEND_FE_FETCH_R
738 && opline->opcode != ZEND_FE_FETCH_RW))) {
739 zval *zv = EX_VAR(opline->op2.var);
758 if (opline->opcode == ZEND_ASSIGN_DIM ||
759 opline->opcode == ZEND_ASSIGN_OBJ ||
760 opline->opcode == ZEND_ASSIGN_STATIC_PROP ||
761 opline->opcode == ZEND_ASSIGN_DIM_OP ||
762 opline->opcode == ZEND_ASSIGN_OBJ_OP ||
763 opline->opcode == ZEND_ASSIGN_STATIC_PROP_OP ||
764 opline->opcode == ZEND_ASSIGN_OBJ_REF ||
765 opline->opcode == ZEND_ASSIGN_STATIC_PROP_REF) {
766 if ((opline+1)->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV)) {
767 zval *zv = EX_VAR((opline+1)->op1.var);
785 TRACE_RECORD_VM(ZEND_JIT_TRACE_VM, opline, op1_type, op2_type, op3_type);
795 switch (opline->opcode) {
808 if (opline->op1_type == IS_CONST) {
809 zval *arr = RT_CONSTANT(opline, opline->op1);
813 && opline->op2_type != IS_UNDEF) {
817 if (opline->op2_type == IS_CONST) {
818 dim = RT_CONSTANT(opline, opline->op2);
820 dim = EX_VAR(opline->op2.var);
824 if (opline->op1_type == IS_CONST) {
825 arr = RT_CONSTANT(opline, opline->op1);
827 arr = EX_VAR(opline->op1.var);
849 if (opline->op2_type == IS_CONST) {
851 void **cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF);
873 if (opline->op1_type != IS_CONST
874 && opline->op2_type == IS_CONST
875 && Z_TYPE_P(RT_CONSTANT(opline, opline->op2)) == IS_STRING
876 && Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))[0] != '\0') {
878 zend_string *prop_name = Z_STR_P(RT_CONSTANT(opline, opline->op2));
881 if (opline->op1_type == IS_UNUSED) {
884 obj = EX_VAR(opline->op1.var);
904 if (opline->opcode == ZEND_DO_FCALL
905 || opline->opcode == ZEND_DO_ICALL
906 || opline->opcode == ZEND_DO_UCALL
907 || opline->opcode == ZEND_DO_FCALL_BY_NAME) {
926 } else if (opline->opcode == ZEND_INCLUDE_OR_EVAL
927 || opline->opcode == ZEND_CALLABLE_CONVERT) {
933 handler = (zend_vm_opcode_handler_t)ZEND_OP_TRACE_INFO(opline, offset)->call_handler;
936 if (UNEXPECTED(opline == zend_jit_halt_op)) {
938 opline = NULL;
948 opline = NULL;
956 opline = EX(opline);
1016 if (opline == orig_opline) {
1045 if (opline == orig_opline) {
1137 opline = EX(opline);
1147 && zend_jit_may_be_polymorphic_call(opline - 1)) {
1152 && trace_buffer[1].opline == opline - 1) {
1165 opline = EX(opline);
1168 if (UNEXPECTED(opline->opcode == ZEND_HANDLE_EXCEPTION)) {
1174 trace_flags = ZEND_OP_TRACE_INFO(opline, offset)->trace_flags;
1198 link_to_enter_opline = opline;
1211 if (opline == orig_opline && level + ret_level == 0) {
1221 bad_stop = zend_jit_trace_bad_stop_event(opline,
1234 if (opline == last_loop_opline
1237 last_loop, idx, ZEND_JIT_TRACE_START_LOOP, op_array, opline);
1244 last_loop_opline = opline;
1252 TRACE_RECORD(ZEND_JIT_TRACE_VM, 0, opline);
1259 end_opline = opline;
1293 EX(opline) = opline;
1299 opline = save_opline;