| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # 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
- }
|