Top level CFG BL 0:[(0,2) P:[] S:[]] 0 st 0,[$a0] 1 call queens 2 return exits: [0] Iterations = 1 0 { } Proc print CFG BL 0:[(0,1) P:[] S:[2,1]] 0 cmp 0,0 1 bge L0 BL 1:[(2,2) P:[0] S:[2]] 2 call PCAT$bounds_error BL 2:[(3,8) P:[0,1] S:[4,3]] 3 L0: 4 ld [x],%t1 5 sub %t1,1,%t2 6 ld [%t2],%t2 7 cmp 0,%t2 8 bl L1 BL 3:[(9,9) P:[2] S:[4]] 9 call PCAT$bounds_error BL 4:[(10,16) P:[2,3] S:[6,5]] 10 L1: 11 add %t1,0,%t1 12 ld [%t1],%t0 13 st %t0,[$a0] 14 call PCAT$write_int 15 cmp 1,0 16 bge L2 BL 5:[(17,17) P:[4] S:[6]] 17 call PCAT$bounds_error BL 6:[(18,23) P:[4,5] S:[8,7]] 18 L2: 19 ld [x],%t4 20 sub %t4,1,%t5 21 ld [%t5],%t5 22 cmp 1,%t5 23 bl L3 BL 7:[(24,24) P:[6] S:[8]] 24 call PCAT$bounds_error BL 8:[(25,31) P:[6,7] S:[10,9]] 25 L3: 26 add %t4,1,%t4 27 ld [%t4],%t3 28 st %t3,[$a0] 29 call PCAT$write_int 30 cmp 2,0 31 bge L4 BL 9:[(32,32) P:[8] S:[10]] 32 call PCAT$bounds_error BL 10:[(33,38) P:[8,9] S:[12,11]] 33 L4: 34 ld [x],%t7 35 sub %t7,1,%t8 36 ld [%t8],%t8 37 cmp 2,%t8 38 bl L5 BL 11:[(39,39) P:[10] S:[12]] 39 call PCAT$bounds_error BL 12:[(40,46) P:[10,11] S:[14,13]] 40 L5: 41 add %t7,2,%t7 42 ld [%t7],%t6 43 st %t6,[$a0] 44 call PCAT$write_int 45 cmp 3,0 46 bge L6 BL 13:[(47,47) P:[12] S:[14]] 47 call PCAT$bounds_error BL 14:[(48,53) P:[12,13] S:[16,15]] 48 L6: 49 ld [x],%t10 50 sub %t10,1,%t11 51 ld [%t11],%t11 52 cmp 3,%t11 53 bl L7 BL 15:[(54,54) P:[14] S:[16]] 54 call PCAT$bounds_error BL 16:[(55,61) P:[14,15] S:[18,17]] 55 L7: 56 add %t10,3,%t10 57 ld [%t10],%t9 58 st %t9,[$a0] 59 call PCAT$write_int 60 cmp 4,0 61 bge L8 BL 17:[(62,62) P:[16] S:[18]] 62 call PCAT$bounds_error BL 18:[(63,68) P:[16,17] S:[20,19]] 63 L8: 64 ld [x],%t13 65 sub %t13,1,%t14 66 ld [%t14],%t14 67 cmp 4,%t14 68 bl L9 BL 19:[(69,69) P:[18] S:[20]] 69 call PCAT$bounds_error BL 20:[(70,76) P:[18,19] S:[22,21]] 70 L9: 71 add %t13,4,%t13 72 ld [%t13],%t12 73 st %t12,[$a0] 74 call PCAT$write_int 75 cmp 5,0 76 bge L10 BL 21:[(77,77) P:[20] S:[22]] 77 call PCAT$bounds_error BL 22:[(78,83) P:[20,21] S:[24,23]] 78 L10: 79 ld [x],%t16 80 sub %t16,1,%t17 81 ld [%t17],%t17 82 cmp 5,%t17 83 bl L11 BL 23:[(84,84) P:[22] S:[24]] 84 call PCAT$bounds_error BL 24:[(85,91) P:[22,23] S:[26,25]] 85 L11: 86 add %t16,5,%t16 87 ld [%t16],%t15 88 st %t15,[$a0] 89 call PCAT$write_int 90 cmp 6,0 91 bge L12 BL 25:[(92,92) P:[24] S:[26]] 92 call PCAT$bounds_error BL 26:[(93,98) P:[24,25] S:[28,27]] 93 L12: 94 ld [x],%t19 95 sub %t19,1,%t20 96 ld [%t20],%t20 97 cmp 6,%t20 98 bl L13 BL 27:[(99,99) P:[26] S:[28]] 99 call PCAT$bounds_error BL 28:[(100,106) P:[26,27] S:[30,29]] 100 L13: 101 add %t19,6,%t19 102 ld [%t19],%t18 103 st %t18,[$a0] 104 call PCAT$write_int 105 cmp 7,0 106 bge L14 BL 29:[(107,107) P:[28] S:[30]] 107 call PCAT$bounds_error BL 30:[(108,113) P:[28,29] S:[32,31]] 108 L14: 109 ld [x],%t22 110 sub %t22,1,%t23 111 ld [%t23],%t23 112 cmp 7,%t23 113 bl L15 BL 31:[(114,114) P:[30] S:[32]] 114 call PCAT$bounds_error BL 32:[(115,121) P:[30,31] S:[]] 115 L15: 116 add %t22,7,%t22 117 ld [%t22],%t21 118 st %t21,[$a0] 119 call PCAT$write_int 120 call PCAT$write_newline 121 return exits: [32] Iterations = 3 0 { x } 1 { x } 2 { %t1 x } 3 { %t1 x } 4 { x } 5 { x } 6 { %t4 x } 7 { %t4 x } 8 { x } 9 { x } 10 { %t7 x } 11 { %t7 x } 12 { x } 13 { x } 14 { %t10 x } 15 { %t10 x } 16 { x } 17 { x } 18 { %t13 x } 19 { %t13 x } 20 { x } 21 { x } 22 { %t16 x } 23 { %t16 x } 24 { x } 25 { x } 26 { %t19 x } 27 { %t19 x } 28 { x } 29 { x } 30 { %t22 } 31 { %t22 } 32 { } Proc queens CFG BL 0:[(0,3) P:[54] S:[2,1]] 0 L0: 1 ld [r],%t0 2 cmp %t0,8 3 bl L1 BL 1:[(4,4) P:[0] S:[55]] 4 ba L2 BL 2:[(5,8) P:[0] S:[4,3]] 5 L1: 6 ld [r],%t2 7 cmp %t2,0 8 bge L8 BL 3:[(9,9) P:[2] S:[4]] 9 call PCAT$bounds_error BL 4:[(10,15) P:[2,3] S:[6,5]] 10 L8: 11 ld [rows],%t3 12 sub %t3,1,%t4 13 ld [%t4],%t4 14 cmp %t2,%t4 15 bl L9 BL 5:[(16,16) P:[4] S:[6]] 16 call PCAT$bounds_error BL 6:[(17,21) P:[4,5] S:[53,7]] 17 L9: 18 add %t3,%t2,%t3 19 ld [%t3],%t1 20 cmp %t1,0 21 be L4 BL 7:[(22,22) P:[6] S:[8]] 22 ba L7 BL 8:[(23,29) P:[7] S:[10,9]] 23 L7: 24 ld [r],%t6 25 ld [c],%t7 26 sub %t6,%t7,%t8 27 add %t8,7,%t9 28 cmp %t9,0 29 bge L10 BL 9:[(30,30) P:[8] S:[10]] 30 call PCAT$bounds_error BL 10:[(31,36) P:[8,9] S:[12,11]] 31 L10: 32 ld [up],%t10 33 sub %t10,1,%t11 34 ld [%t11],%t11 35 cmp %t9,%t11 36 bl L11 BL 11:[(37,37) P:[10] S:[12]] 37 call PCAT$bounds_error BL 12:[(38,42) P:[10,11] S:[53,13]] 38 L11: 39 add %t10,%t9,%t10 40 ld [%t10],%t5 41 cmp %t5,0 42 be L4 BL 13:[(43,43) P:[12] S:[14]] 43 ba L6 BL 14:[(44,49) P:[13] S:[16,15]] 44 L6: 45 ld [r],%t13 46 ld [c],%t14 47 add %t13,%t14,%t15 48 cmp %t15,0 49 bge L12 BL 15:[(50,50) P:[14] S:[16]] 50 call PCAT$bounds_error BL 16:[(51,56) P:[14,15] S:[18,17]] 51 L12: 52 ld [down],%t16 53 sub %t16,1,%t17 54 ld [%t17],%t17 55 cmp %t15,%t17 56 bl L13 BL 17:[(57,57) P:[16] S:[18]] 57 call PCAT$bounds_error BL 18:[(58,62) P:[16,17] S:[53,19]] 58 L13: 59 add %t16,%t15,%t16 60 ld [%t16],%t12 61 cmp %t12,0 62 be L4 BL 19:[(63,63) P:[18] S:[20]] 63 ba L3 BL 20:[(64,67) P:[19] S:[22,21]] 64 L3: 65 ld [r],%t18 66 cmp %t18,0 67 bge L14 BL 21:[(68,68) P:[20] S:[22]] 68 call PCAT$bounds_error BL 22:[(69,74) P:[20,21] S:[24,23]] 69 L14: 70 ld [rows],%t19 71 sub %t19,1,%t20 72 ld [%t20],%t20 73 cmp %t18,%t20 74 bl L15 BL 23:[(75,75) P:[22] S:[24]] 75 call PCAT$bounds_error BL 24:[(76,84) P:[22,23] S:[26,25]] 76 L15: 77 add %t19,%t18,%t19 78 st 0,[%t19] 79 ld [r],%t21 80 ld [c],%t22 81 sub %t21,%t22,%t23 82 add %t23,7,%t24 83 cmp %t24,0 84 bge L16 BL 25:[(85,85) P:[24] S:[26]] 85 call PCAT$bounds_error BL 26:[(86,91) P:[24,25] S:[28,27]] 86 L16: 87 ld [up],%t25 88 sub %t25,1,%t26 89 ld [%t26],%t26 90 cmp %t24,%t26 91 bl L17 BL 27:[(92,92) P:[26] S:[28]] 92 call PCAT$bounds_error BL 28:[(93,100) P:[26,27] S:[30,29]] 93 L17: 94 add %t25,%t24,%t25 95 st 0,[%t25] 96 ld [r],%t27 97 ld [c],%t28 98 add %t27,%t28,%t29 99 cmp %t29,0 100 bge L18 BL 29:[(101,101) P:[28] S:[30]] 101 call PCAT$bounds_error BL 30:[(102,107) P:[28,29] S:[32,31]] 102 L18: 103 ld [down],%t30 104 sub %t30,1,%t31 105 ld [%t31],%t31 106 cmp %t29,%t31 107 bl L19 BL 31:[(108,108) P:[30] S:[32]] 108 call PCAT$bounds_error BL 32:[(109,114) P:[30,31] S:[34,33]] 109 L19: 110 add %t30,%t29,%t30 111 st 0,[%t30] 112 ld [c],%t32 113 cmp %t32,0 114 bge L20 BL 33:[(115,115) P:[32] S:[34]] 115 call PCAT$bounds_error BL 34:[(116,121) P:[32,33] S:[36,35]] 116 L20: 117 ld [x],%t33 118 sub %t33,1,%t34 119 ld [%t34],%t34 120 cmp %t32,%t34 121 bl L21 BL 35:[(122,122) P:[34] S:[36]] 122 call PCAT$bounds_error BL 36:[(123,129) P:[34,35] S:[38,37]] 123 L21: 124 add %t33,%t32,%t33 125 ld [r],%t35 126 st %t35,[%t33] 127 ld [c],%t36 128 cmp %t36,7 129 be L22 BL 37:[(130,130) P:[36] S:[39]] 130 ba L23 BL 38:[(131,133) P:[36] S:[40]] 131 L22: 132 call print 133 ba L24 BL 39:[(134,138) P:[37] S:[40]] 134 L23: 135 ld [c],%t37 136 add %t37,1,%t38 137 st %t38,[$a0] 138 call queens BL 40:[(139,142) P:[38,39] S:[42,41]] 139 L24: 140 ld [r],%t39 141 cmp %t39,0 142 bge L25 BL 41:[(143,143) P:[40] S:[42]] 143 call PCAT$bounds_error BL 42:[(144,149) P:[40,41] S:[44,43]] 144 L25: 145 ld [rows],%t40 146 sub %t40,1,%t41 147 ld [%t41],%t41 148 cmp %t39,%t41 149 bl L26 BL 43:[(150,150) P:[42] S:[44]] 150 call PCAT$bounds_error BL 44:[(151,159) P:[42,43] S:[46,45]] 151 L26: 152 add %t40,%t39,%t40 153 st 1,[%t40] 154 ld [r],%t42 155 ld [c],%t43 156 sub %t42,%t43,%t44 157 add %t44,7,%t45 158 cmp %t45,0 159 bge L27 BL 45:[(160,160) P:[44] S:[46]] 160 call PCAT$bounds_error BL 46:[(161,166) P:[44,45] S:[48,47]] 161 L27: 162 ld [up],%t46 163 sub %t46,1,%t47 164 ld [%t47],%t47 165 cmp %t45,%t47 166 bl L28 BL 47:[(167,167) P:[46] S:[48]] 167 call PCAT$bounds_error BL 48:[(168,175) P:[46,47] S:[50,49]] 168 L28: 169 add %t46,%t45,%t46 170 st 1,[%t46] 171 ld [r],%t48 172 ld [c],%t49 173 add %t48,%t49,%t50 174 cmp %t50,0 175 bge L29 BL 49:[(176,176) P:[48] S:[50]] 176 call PCAT$bounds_error BL 50:[(177,182) P:[48,49] S:[52,51]] 177 L29: 178 ld [down],%t51 179 sub %t51,1,%t52 180 ld [%t52],%t52 181 cmp %t50,%t52 182 bl L30 BL 51:[(183,183) P:[50] S:[52]] 183 call PCAT$bounds_error BL 52:[(184,187) P:[50,51] S:[54]] 184 L30: 185 add %t51,%t50,%t51 186 st 1,[%t51] 187 ba L5 BL 53:[(188,188) P:[6,12,18] S:[54]] 188 L4: BL 54:[(189,193) P:[52,53] S:[0]] 189 L5: 190 ld [r],%t53 191 add %t53,1,%t54 192 st %t54,[r] 193 ba L0 BL 55:[(194,195) P:[1] S:[]] 194 L2: 195 return exits: [55] Iterations = 31 0 { rows r c up x down } 1 { } 2 { %t2 rows r c up x down } 3 { %t2 rows r c up x down } 4 { %t2 rows r c up %t3 x down } 5 { %t2 rows r c up %t3 x down } 6 { rows r c up x down } 7 { rows r c up x down } 8 { rows %t9 r c up x down } 9 { rows %t9 r c up x down } 10 { rows %t9 r c up %t10 x down } 11 { rows %t9 r c up %t10 x down } 12 { rows r c up x down } 13 { rows r c up x down } 14 { %t15 rows r c up x down } 15 { %t15 rows r c up x down } 16 { %t15 rows r c up %t16 x down } 17 { %t15 rows r c up %t16 x down } 18 { rows r c up x down } 19 { rows r c up x down } 20 { rows r c up %t18 x down } 21 { rows r c up %t18 x down } 22 { rows %t19 r c up %t18 x down } 23 { rows %t19 r c up %t18 x down } 24 { rows r c up %t24 x down } 25 { rows r c up %t24 x down } 26 { rows r c up %t24 %t25 x down } 27 { rows r c up %t24 %t25 x down } 28 { rows r c up %t29 x down } 29 { rows r c up %t29 x down } 30 { rows %t30 r c up %t29 x down } 31 { rows %t30 r c up %t29 x down } 32 { %t32 rows r c up x down } 33 { %t32 rows r c up x down } 34 { %t32 rows r c %t33 up x down } 35 { %t32 rows r c %t33 up x down } 36 { rows r c up x down } 37 { rows r c up x down } 38 { rows r c up x down } 39 { rows r c up x down } 40 { rows r c up %t39 x down } 41 { rows r c up %t39 x down } 42 { rows r %t40 c up %t39 x down } 43 { rows r %t40 c up %t39 x down } 44 { %t45 rows r c up x down } 45 { %t45 rows r c up x down } 46 { %t45 rows r c up %t46 x down } 47 { %t45 rows r c up %t46 x down } 48 { rows r c up %t50 x down } 49 { rows r c up %t50 x down } 50 { rows %t51 r c up %t50 x down } 51 { rows %t51 r c up %t50 x down } 52 { rows r c up x down } 53 { rows r c up x down } 54 { rows r c up x down } 55 { }