@@ -603,10 +603,10 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
603603 } else {
604604 uint32_t op1_flags = ZEND_VM_OP1_FLAGS (flags );
605605 if (ZEND_VM_OP_JMP_ADDR == (op1_flags & ZEND_VM_OP_MASK )) {
606- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
607- fprintf (stderr , " %04u" , (uint32_t )(OP_JMP_ADDR (opline , opline -> op1 ) - op_array -> opcodes ));
608- } else if (b ) {
606+ if (b ) {
609607 fprintf (stderr , " BB%d" , b -> successors [n ++ ]);
608+ } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
609+ fprintf (stderr , " %04u" , (uint32_t )(OP_JMP_ADDR (opline , opline -> op1 ) - op_array -> opcodes ));
610610 } else {
611611 fprintf (stderr , " L%u" , (uint32_t )(OP_JMP_ADDR (opline , opline -> op1 ) - op_array -> opcodes ));
612612 }
@@ -628,10 +628,10 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
628628 } else {
629629 fprintf (stderr , " " ZEND_LONG_FMT ":" , num_key );
630630 }
631- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
632- fprintf (stderr , " %04u," , (uint32_t )ZEND_OFFSET_TO_OPLINE_NUM (op_array , opline , Z_LVAL_P (zv )));
633- } else if (b ) {
631+ if (b ) {
634632 fprintf (stderr , " BB%d," , b -> successors [n ++ ]);
633+ } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
634+ fprintf (stderr , " %04u," , (uint32_t )ZEND_OFFSET_TO_OPLINE_NUM (op_array , opline , Z_LVAL_P (zv )));
635635 } else {
636636 fprintf (stderr , " L%u," , (uint32_t )ZEND_OFFSET_TO_OPLINE_NUM (op_array , opline , Z_LVAL_P (zv )));
637637 }
@@ -665,10 +665,10 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
665665 uint32_t op2_flags = ZEND_VM_OP2_FLAGS (flags );
666666 if (ZEND_VM_OP_JMP_ADDR == (op2_flags & ZEND_VM_OP_MASK )) {
667667 if (opline -> opcode != ZEND_CATCH || !(opline -> extended_value & ZEND_LAST_CATCH )) {
668- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
669- fprintf (stderr , " %04u" , (uint32_t )(OP_JMP_ADDR (opline , opline -> op2 ) - op_array -> opcodes ));
670- } else if (b ) {
668+ if (b ) {
671669 fprintf (stderr , " BB%d" , b -> successors [n ++ ]);
670+ } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
671+ fprintf (stderr , " %04u" , (uint32_t )(OP_JMP_ADDR (opline , opline -> op2 ) - op_array -> opcodes ));
672672 } else {
673673 fprintf (stderr , " L%u" , (uint32_t )(OP_JMP_ADDR (opline , opline -> op2 ) - op_array -> opcodes ));
674674 }
@@ -679,10 +679,10 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
679679 }
680680
681681 if (ZEND_VM_EXT_JMP_ADDR == (flags & ZEND_VM_EXT_MASK )) {
682- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
683- fprintf (stderr , " %04u" , (uint32_t )ZEND_OFFSET_TO_OPLINE_NUM (op_array , opline , opline -> extended_value ));
684- } else if (b ) {
682+ if (b ) {
685683 fprintf (stderr , " BB%d" , b -> successors [n ++ ]);
684+ } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
685+ fprintf (stderr , " %04u" , (uint32_t )ZEND_OFFSET_TO_OPLINE_NUM (op_array , opline , opline -> extended_value ));
686686 } else {
687687 fprintf (stderr , " L%u" , (uint32_t )ZEND_OFFSET_TO_OPLINE_NUM (op_array , opline , opline -> extended_value ));
688688 }
@@ -725,11 +725,14 @@ static void zend_dump_op_line(const zend_op_array *op_array, const zend_basic_bl
725725 zend_ssa_op * ssa_op = NULL ;
726726
727727 if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
728- len = fprintf (stderr , "%04u:" , (uint32_t )(opline - op_array -> opcodes ));
728+ len = fprintf (stderr , "%04u" , (uint32_t )(opline - op_array -> opcodes ));
729+ fprintf (stderr , "%*c" , 5 - len , ' ' );
729730 } else if (!b ) {
730731 len = fprintf (stderr , "L%u (%u):" , (uint32_t )(opline - op_array -> opcodes ), opline -> lineno );
732+ fprintf (stderr , "%*c" , 12 - len , ' ' );
733+ } else {
734+ fprintf (stderr , "%*c" , 12 - len , ' ' );
731735 }
732- fprintf (stderr , "%*c" , 12 - len , ' ' );
733736
734737 if (dump_flags & ZEND_DUMP_SSA ) {
735738 ssa = (const zend_ssa * )data ;
@@ -747,6 +750,9 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
747750 zend_basic_block * b = cfg -> blocks + n ;
748751
749752 fprintf (stderr , "BB%d:" , n );
753+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
754+ fprintf (stderr , "\n ;" );
755+ }
750756 if (b -> flags & ZEND_BB_START ) {
751757 fprintf (stderr , " start" );
752758 }
@@ -800,6 +806,9 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
800806 int * p = cfg -> predecessors + b -> predecessor_offset ;
801807 int * end = p + b -> predecessors_count ;
802808
809+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
810+ fprintf (stderr , " " );
811+ }
803812 fprintf (stderr , " ; from=(BB%d" , * p );
804813 for (p ++ ; p < end ; p ++ ) {
805814 fprintf (stderr , ", BB%d" , * p );
@@ -809,6 +818,9 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
809818
810819 if (b -> successors_count > 0 ) {
811820 int s ;
821+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
822+ fprintf (stderr , " " );
823+ }
812824 fprintf (stderr , " ; to=(BB%d" , b -> successors [0 ]);
813825 for (s = 1 ; s < b -> successors_count ; s ++ ) {
814826 fprintf (stderr , ", BB%d" , b -> successors [s ]);
@@ -817,16 +829,28 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
817829 }
818830
819831 if (b -> idom >= 0 ) {
832+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
833+ fprintf (stderr , " " );
834+ }
820835 fprintf (stderr , " ; idom=BB%d\n" , b -> idom );
821836 }
822837 if (b -> level >= 0 ) {
838+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
839+ fprintf (stderr , " " );
840+ }
823841 fprintf (stderr , " ; level=%d\n" , b -> level );
824842 }
825843 if (b -> loop_header >= 0 ) {
844+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
845+ fprintf (stderr , " " );
846+ }
826847 fprintf (stderr , " ; loop_header=%d\n" , b -> loop_header );
827848 }
828849 if (b -> children >= 0 ) {
829850 int j = b -> children ;
851+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
852+ fprintf (stderr , " " );
853+ }
830854 fprintf (stderr , " ; children=(BB%d" , j );
831855 j = cfg -> blocks [j ].next_child ;
832856 while (j >= 0 ) {
@@ -846,7 +870,11 @@ static void zend_dump_block_header(const zend_cfg *cfg, const zend_op_array *op_
846870 do {
847871 int j ;
848872
849- fprintf (stderr , " " );
873+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
874+ fprintf (stderr , " " );
875+ } else {
876+ fprintf (stderr , " " );
877+ }
850878 zend_dump_ssa_var (op_array , ssa , p -> ssa_var , 0 , p -> var , dump_flags );
851879 if (p -> pi < 0 ) {
852880 fprintf (stderr , " = Phi(" );
@@ -917,7 +945,11 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
917945
918946 fprintf (stderr , "\n" );
919947 zend_dump_op_array_name (op_array );
920- fprintf (stderr , ": ; (lines=%d, args=%d" ,
948+ fprintf (stderr , ":" );
949+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
950+ fprintf (stderr , "\n " );
951+ }
952+ fprintf (stderr , " ; (lines=%d, args=%d" ,
921953 op_array -> last ,
922954 op_array -> num_args );
923955 if (func_info && func_info -> num_args >= 0 ) {
@@ -976,14 +1008,23 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
9761008 }
9771009 fprintf (stderr , ")\n" );
9781010 if (msg ) {
1011+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
1012+ fprintf (stderr , " " );
1013+ }
9791014 fprintf (stderr , " ; (%s)\n" , msg );
9801015 }
1016+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
1017+ fprintf (stderr , " " );
1018+ }
9811019 fprintf (stderr , " ; %s:%u-%u\n" , op_array -> filename -> val , op_array -> line_start , op_array -> line_end );
9821020
9831021 if (func_info && func_info -> num_args > 0 ) {
9841022 uint32_t j ;
9851023
9861024 for (j = 0 ; j < MIN (op_array -> num_args , func_info -> num_args ); j ++ ) {
1025+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
1026+ fprintf (stderr , " " );
1027+ }
9871028 fprintf (stderr , " ; arg %d " , j );
9881029 zend_dump_type_info (func_info -> arg_info [j ].info .type , func_info -> arg_info [j ].info .ce , func_info -> arg_info [j ].info .is_instanceof , dump_flags );
9891030 zend_dump_range (& func_info -> arg_info [j ].info .range );
@@ -992,6 +1033,9 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
9921033 }
9931034
9941035 if (func_info ) {
1036+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
1037+ fprintf (stderr , " " );
1038+ }
9951039 fprintf (stderr , " ; return " );
9961040 zend_dump_type_info (func_info -> return_info .type , func_info -> return_info .ce , func_info -> return_info .is_instanceof , dump_flags );
9971041 zend_dump_range (& func_info -> return_info .range );
@@ -1000,6 +1044,9 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
10001044
10011045 if (ssa && ssa -> var_info ) {
10021046 for (i = 0 ; i < op_array -> last_var ; i ++ ) {
1047+ if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES ) {
1048+ fprintf (stderr , " " );
1049+ }
10031050 fprintf (stderr , " ; " );
10041051 zend_dump_ssa_var (op_array , ssa , i , IS_CV , i , dump_flags );
10051052 fprintf (stderr , "\n" );
0 commit comments