# QBE IR generated by the SimpleQ backend data $Limit = { w 20 } data $k = { w 0 } data $n = { w 0 } data $s = { w 0 } data $ExitCode = { w 0 } export function w $main() { @start %t0 =w loadw $n storew 0, $n %t1 =w loadw $s storew 0, $s storew 1, $k jmp @L1 @L0 %t2 =w loadw $s %t3 =w loadw $s %t4 =w loadw $k %t5 =w add %t3, %t4 storew %t5, $s %t6 =w loadw $k %t7 =w add %t6, 1 storew %t7, $k @L1 %t8 =w loadw $k %t9 =w cslew %t8, 10 jnz %t9, @L0, @L2 @L2 %t10 =w loadw $n %t11 =w loadw $s %t12 =w loadw $Limit %t13 =w rem %t11, %t12 storew %t13, $n @L3 %t14 =w loadw $n %t15 =w csltw %t14, 0 jnz %t15, @L4, @L5 @L4 %t16 =w loadw $n %t17 =w loadw $n %t18 =w add %t17, 1 storew %t18, $n jmp @L3 @L5 @L6 %t19 =w loadw $n %t20 =w loadw $n %t21 =w add %t20, 1 storew %t21, $n %t22 =w loadw $n %t23 =w csgew %t22, 17 jnz %t23, @L7, @L6 @L7 @L8 %t24 =w loadw $n %t25 =w csgtw %t24, 100 jnz %t25, @L10, @L11 @L10 jmp @L9 @L11 @L12 %t26 =w loadw $n %t27 =w loadw $n %t28 =w add %t27, 1 storew %t28, $n %t29 =w loadw $n %t30 =w csgew %t29, 19 jnz %t30, @L13, @L14 @L13 jmp @L9 @L14 @L15 jmp @L8 @L9 %t31 =w loadw $n %t32 =w ceqw %t31, 19 jnz %t32, @L17, @L19 @L19 jmp @L18 @L17 %t33 =w loadw $ExitCode %t34 =w loadw $s %t35 =w loadw $n %t36 =w add %t34, %t35 storew %t36, $ExitCode jmp @L16 @L18 %t37 =w loadw $ExitCode storew 0, $ExitCode @L16 %ec =w loadw $ExitCode ret %ec }