QWhile.ssa 564 B

12345678910111213141516171819202122232425262728293031323334
  1. # QBE IR generated by the SimpleQ backend
  2. data $i = { w 0 }
  3. data $s = { w 0 }
  4. data $ExitCode = { w 0 }
  5. export function w $main() {
  6. @start
  7. %t0 =w loadw $i
  8. storew 1, $i
  9. %t1 =w loadw $s
  10. storew 0, $s
  11. @L0
  12. %t2 =w loadw $i
  13. %t3 =w cslew %t2, 10
  14. jnz %t3, @L1, @L2
  15. @L1
  16. %t4 =w loadw $s
  17. %t5 =w loadw $s
  18. %t6 =w loadw $i
  19. %t7 =w add %t5, %t6
  20. storew %t7, $s
  21. %t8 =w loadw $i
  22. %t9 =w loadw $i
  23. %t10 =w add %t9, 1
  24. storew %t10, $i
  25. jmp @L0
  26. @L2
  27. %t11 =w loadw $ExitCode
  28. %t12 =w loadw $s
  29. storew %t12, $ExitCode
  30. %ec =w loadw $ExitCode
  31. ret %ec
  32. }