QFor.ssa 787 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # QBE IR generated by the SimpleQ backend
  2. data $k = { w 0 }
  3. data $s = { w 0 }
  4. data $ExitCode = { w 0 }
  5. export function w $main() {
  6. @start
  7. %t0 =w loadw $s
  8. storew 0, $s
  9. storew 1, $k
  10. jmp @L1
  11. @L0
  12. %t1 =w loadw $s
  13. %t2 =w loadw $s
  14. %t3 =w loadw $k
  15. %t4 =w add %t2, %t3
  16. storew %t4, $s
  17. %t5 =w loadw $k
  18. %t6 =w add %t5, 1
  19. storew %t6, $k
  20. @L1
  21. %t7 =w loadw $k
  22. %t8 =w cslew %t7, 10
  23. jnz %t8, @L0, @L2
  24. @L2
  25. storew 10, $k
  26. jmp @L4
  27. @L3
  28. %t9 =w loadw $s
  29. %t10 =w loadw $s
  30. %t11 =w loadw $k
  31. %t12 =w add %t10, %t11
  32. storew %t12, $s
  33. %t13 =w loadw $k
  34. %t14 =w add %t13, -2
  35. storew %t14, $k
  36. @L4
  37. %t15 =w loadw $k
  38. %t16 =w csgew %t15, 1
  39. jnz %t16, @L3, @L5
  40. @L5
  41. %t17 =w loadw $ExitCode
  42. %t18 =w loadw $s
  43. storew %t18, $ExitCode
  44. %ec =w loadw $ExitCode
  45. ret %ec
  46. }