@@ -613,20 +613,36 @@ static int zend_jit_trace_subtrace(zend_jit_trace_rec *trace_buffer, int start,
613613 * Trace Linking Rules
614614 * ===================
615615 *
616- * flags
617- * +----------+----------+----------++----------+----------+----------+
618- * | || JIT |
619- * +----------+----------+----------++----------+----------+----------+
620- * start | LOOP | ENTER | RETURN || LOOP | ENTER | RETURN |
621- * +========+==========+==========+==========++==========+==========+==========+
622- * | LOOP | loop | | loop-ret || COMPILED | LINK | LINK |
623- * +--------+----------+----------+----------++----------+----------+----------+
624- * | ENTER |INNER_LOOP| rec-call | return || LINK | LINK | LINK |
625- * +--------+----------+----------+----------++----------+----------+----------+
626- * | RETURN |INNER_LOOP| | rec-ret || LINK | | LINK |
627- * +--------+----------+----------+----------++----------+----------+----------+
628- * | SIDE | unroll | | side-ret || LINK | LINK | LINK |
629- * +--------+----------+----------+----------++----------+----------+----------+
616+ * opline trace flags
617+ * +----------+----------+----------+
618+ * | LOOP | ENTER | RETURN |
619+ * +========+==========+==========+==========+
620+ * | LOOP | loop | | loop-ret |
621+ * +--------+----------+----------+----------+
622+ * | ENTER |INNER_LOOP| rec-call | return |
623+ * start +--------+----------+----------+----------+
624+ * flags | RETURN |INNER_LOOP| | rec-ret |
625+ * +--------+----------+----------+----------+
626+ * | SIDE | unroll | | side-ret |
627+ * +--------+----------+----------+----------+
628+ *
629+ *
630+ * opline trace flags
631+ * +----------+----------+----------+
632+ * | JITED |
633+ * +----------+----------+----------+
634+ * | LOOP | ENTER | RETURN |
635+ * +========+==========+==========+==========+
636+ * | LOOP | COMPILED | LINK | LINK |
637+ * +--------+----------+----------+----------+
638+ * | ENTER | LINK | LINK | LINK |
639+ * start +--------+----------+----------+----------+
640+ * flags | RETURN | LINK | | LINK |
641+ * +--------+----------+----------+----------+
642+ * | SIDE | LINK | LINK | LINK |
643+ * +--------+----------+----------+----------+
644+ *
645+ *
630646 *
631647 * loop: LOOP if "cycle" and level == 0, otherwise INNER_LOOP
632648 * INNER_LOOP: abort recording and start new one (wait for loop)
@@ -637,7 +653,7 @@ static int zend_jit_trace_subtrace(zend_jit_trace_rec *trace_buffer, int start,
637653 * return: RETURN if level == 0
638654 * rec_ret: RECURSIVE_RET if "cycle" and ret_level > N, otherwise continue
639655 * side_ret: RETURN if level == 0 && ret_level == ret_depth, otherwise continue
640- *
656+ * LINK: stop recording. End of new trace jumps to the other one.
641657 */
642658
643659zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute (zend_execute_data * ex ,
0 commit comments