atoi.s 683 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. .file "atoi.c"
  2. #NO_APP
  3. .text
  4. tigcc_compiled.:
  5. #APP
  6. .set _A_LINE,0xA000
  7. #NO_APP
  8. .text
  9. .even
  10. .globl atoi
  11. atoi:
  12. move.l %d3,-(%sp)
  13. clr.w %d2
  14. clr.w %d3
  15. jbra .L2
  16. .even
  17. .L5:
  18. addq.l #1,%a0
  19. .L2:
  20. move.b (%a0),%d0
  21. cmp.b #32,%d0
  22. jbeq .L5
  23. cmp.b #45,%d0
  24. jbeq .L7
  25. cmp.b #-83,%d0
  26. jbne .L6
  27. .L7:
  28. addq.l #1,%a0
  29. moveq.l #-1,%d3
  30. jbra .L10
  31. .even
  32. .L6:
  33. cmp.b #43,%d0
  34. jbne .L10
  35. addq.l #1,%a0
  36. jbra .L10
  37. .even
  38. .L13:
  39. muls.w #10,%d2
  40. add.w %d1,%d2
  41. add.w #-48,%d2
  42. .L10:
  43. clr.w %d1
  44. move.b (%a0)+,%d1
  45. move.w %d1,%d0
  46. add.w #-48,%d0
  47. cmp.w #9,%d0
  48. sls %d0
  49. ext.w %d0
  50. neg.w %d0
  51. jbne .L13
  52. move.w %d2,%d0
  53. neg.w %d0
  54. tst.w %d3
  55. jbne .L15
  56. move.w %d2,%d0
  57. .L15:
  58. move.l (%sp)+,%d3
  59. rts