# eight queens program # generated by minic export function w $chk(w %t0, w %t1) { @l0 %x =l alloc4 4 storew %t0, %x %y =l alloc4 4 storew %t1, %y %i =l alloc4 4 %r =l alloc4 4 storew 0, %i storew 0, %r @l1 %t6 =w loadw %i %t7 =w loadw $glo1 %t5 =w csltw %t6, %t7 jnz %t5, @l2, @l3 @l2 %t10 =w loadw %r %t15 =l loadl $glo3 %t16 =w loadw %x %t17 =l extsw %t16 %t18 =l mul 8, %t17 %t14 =l add %t15, %t18 %t13 =l loadl %t14 %t19 =w loadw %i %t20 =l extsw %t19 %t21 =l mul 4, %t20 %t12 =l add %t13, %t21 %t11 =w loadw %t12 %t9 =w add %t10, %t11 storew %t9, %r %t24 =w loadw %r %t29 =l loadl $glo3 %t30 =w loadw %i %t31 =l extsw %t30 %t32 =l mul 8, %t31 %t28 =l add %t29, %t32 %t27 =l loadl %t28 %t33 =w loadw %y %t34 =l extsw %t33 %t35 =l mul 4, %t34 %t26 =l add %t27, %t35 %t25 =w loadw %t26 %t23 =w add %t24, %t25 storew %t23, %r %t39 =w loadw %x %t40 =w loadw %i %t38 =w add %t39, %t40 %t41 =w loadw $glo1 %t37 =w csltw %t38, %t41 %t44 =w loadw %y %t45 =w loadw %i %t43 =w add %t44, %t45 %t46 =w loadw $glo1 %t42 =w csltw %t43, %t46 %t36 =w and %t37, %t42 jnz %t36, @l4, @l5 @l4 %t49 =w loadw %r %t54 =l loadl $glo3 %t56 =w loadw %x %t57 =w loadw %i %t55 =w add %t56, %t57 %t58 =l extsw %t55 %t59 =l mul 8, %t58 %t53 =l add %t54, %t59 %t52 =l loadl %t53 %t61 =w loadw %y %t62 =w loadw %i %t60 =w add %t61, %t62 %t63 =l extsw %t60 %t64 =l mul 4, %t63 %t51 =l add %t52, %t64 %t50 =w loadw %t51 %t48 =w add %t49, %t50 storew %t48, %r @l5 %t68 =w loadw %x %t69 =w loadw %i %t67 =w add %t68, %t69 %t70 =w loadw $glo1 %t66 =w csltw %t67, %t70 %t74 =w loadw %y %t75 =w loadw %i %t73 =w sub %t74, %t75 %t71 =w cslew 0, %t73 %t65 =w and %t66, %t71 jnz %t65, @l7, @l8 @l7 %t78 =w loadw %r %t83 =l loadl $glo3 %t85 =w loadw %x %t86 =w loadw %i %t84 =w add %t85, %t86 %t87 =l extsw %t84 %t88 =l mul 8, %t87 %t82 =l add %t83, %t88 %t81 =l loadl %t82 %t90 =w loadw %y %t91 =w loadw %i %t89 =w sub %t90, %t91 %t92 =l extsw %t89 %t93 =l mul 4, %t92 %t80 =l add %t81, %t93 %t79 =w loadw %t80 %t77 =w add %t78, %t79 storew %t77, %r @l8 %t98 =w loadw %x %t99 =w loadw %i %t97 =w sub %t98, %t99 %t95 =w cslew 0, %t97 %t102 =w loadw %y %t103 =w loadw %i %t101 =w add %t102, %t103 %t104 =w loadw $glo1 %t100 =w csltw %t101, %t104 %t94 =w and %t95, %t100 jnz %t94, @l10, @l11 @l10 %t107 =w loadw %r %t112 =l loadl $glo3 %t114 =w loadw %x %t115 =w loadw %i %t113 =w sub %t114, %t115 %t116 =l extsw %t113 %t117 =l mul 8, %t116 %t111 =l add %t112, %t117 %t110 =l loadl %t111 %t119 =w loadw %y %t120 =w loadw %i %t118 =w add %t119, %t120 %t121 =l extsw %t118 %t122 =l mul 4, %t121 %t109 =l add %t110, %t122 %t108 =w loadw %t109 %t106 =w add %t107, %t108 storew %t106, %r @l11 %t127 =w loadw %x %t128 =w loadw %i %t126 =w sub %t127, %t128 %t124 =w cslew 0, %t126 %t132 =w loadw %y %t133 =w loadw %i %t131 =w sub %t132, %t133 %t129 =w cslew 0, %t131 %t123 =w and %t124, %t129 jnz %t123, @l13, @l14 @l13 %t136 =w loadw %r %t141 =l loadl $glo3 %t143 =w loadw %x %t144 =w loadw %i %t142 =w sub %t143, %t144 %t145 =l extsw %t142 %t146 =l mul 8, %t145 %t140 =l add %t141, %t146 %t139 =l loadl %t140 %t148 =w loadw %y %t149 =w loadw %i %t147 =w sub %t148, %t149 %t150 =l extsw %t147 %t151 =l mul 4, %t150 %t138 =l add %t139, %t151 %t137 =w loadw %t138 %t135 =w add %t136, %t137 storew %t135, %r @l14 %t153 =w loadw %i %t152 =w add %t153, 1 storew %t152, %i jmp @l1 @l3 %t154 =w loadw %r ret %t154 } export function w $go(w %t0) { @l16 %y =l alloc4 4 storew %t0, %y %x =l alloc4 4 %t2 =w loadw %y %t3 =w loadw $glo1 %t1 =w ceqw %t2, %t3 jnz %t1, @l17, @l18 @l17 %t5 =w loadw $glo2 %t4 =w add %t5, 1 storew %t4, $glo2 ret 0 @l18 storew 0, %x @l20 %t10 =w loadw %x %t11 =w loadw $glo1 %t9 =w csltw %t10, %t11 jnz %t9, @l21, @l22 @l21 %t14 =w loadw %x %t15 =w loadw %y %t13 =w call $chk(w %t14, w %t15) %t12 =w ceqw %t13, 0 jnz %t12, @l23, @l24 @l23 %t21 =l loadl $glo3 %t22 =w loadw %x %t23 =l extsw %t22 %t24 =l mul 8, %t23 %t20 =l add %t21, %t24 %t19 =l loadl %t20 %t25 =w loadw %y %t26 =l extsw %t25 %t27 =l mul 4, %t26 %t18 =l add %t19, %t27 %t28 =w loadw %t18 %t17 =w add %t28, 1 storew %t17, %t18 %t31 =w loadw %y %t30 =w add %t31, 1 %t29 =w call $go(w %t30) %t37 =l loadl $glo3 %t38 =w loadw %x %t39 =l extsw %t38 %t40 =l mul 8, %t39 %t36 =l add %t37, %t40 %t35 =l loadl %t36 %t41 =w loadw %y %t42 =l extsw %t41 %t43 =l mul 4, %t42 %t34 =l add %t35, %t43 %t44 =w loadw %t34 %t33 =w sub %t44, 1 storew %t33, %t34 @l24 %t46 =w loadw %x %t45 =w add %t46, 1 storew %t45, %x jmp @l20 @l22 ret 0 } export function w $main() { @l26 %i =l alloc4 4 storew 8, $glo1 %t4 =w loadw $glo1 %t3 =l call $calloc(w %t4, w 8) storel %t3, $glo3 storew 0, %i @l27 %t9 =w loadw %i %t10 =w loadw $glo1 %t8 =w csltw %t9, %t10 jnz %t8, @l28, @l29 @l28 %t13 =w loadw $glo1 %t12 =l call $calloc(w %t13, w 4) %t16 =l loadl $glo3 %t17 =w loadw %i %t18 =l extsw %t17 %t19 =l mul 8, %t18 %t15 =l add %t16, %t19 storel %t12, %t15 %t21 =w loadw %i %t20 =w add %t21, 1 storew %t20, %i jmp @l27 @l29 %t22 =w call $go(w 0) %t25 =w loadw $glo2 %t24 =w cnew %t25, 92 ret %t24 } data $glo1 = { w 0 } data $glo2 = { w 0 } data $glo3 = { l 0 }