atol.s 784 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. .file "atol.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 atol
  11. atol:
  12. move.l %d3,-(%sp)
  13. move.l %a0,%a1
  14. clr.w %d3
  15. moveq.l #0,%d2
  16. jbra .L2
  17. .even
  18. .L5:
  19. addq.l #1,%a1
  20. .L2:
  21. move.b (%a1),%d0
  22. cmp.b #32,%d0
  23. jbeq .L5
  24. cmp.b #45,%d0
  25. jbeq .L7
  26. cmp.b #-83,%d0
  27. jbne .L6
  28. .L7:
  29. addq.l #1,%a1
  30. moveq.l #-1,%d3
  31. jbra .L10
  32. .even
  33. .L6:
  34. cmp.b #43,%d0
  35. jbne .L10
  36. addq.l #1,%a1
  37. jbra .L10
  38. .even
  39. .L13:
  40. move.l %d2,%d0
  41. add.l %d0,%d0
  42. lsl.l #3,%d2
  43. move.l %d2,%a0
  44. add.l %d0,%a0
  45. clr.l %d0
  46. move.b %d1,%d0
  47. lea -48(%a0,%d0.l),%a0
  48. move.l %a0,%d2
  49. .L10:
  50. clr.w %d1
  51. move.b (%a1)+,%d1
  52. move.w %d1,%d0
  53. add.w #-48,%d0
  54. cmp.w #9,%d0
  55. sls %d0
  56. ext.w %d0
  57. neg.w %d0
  58. jbne .L13
  59. move.l %d2,%d0
  60. tst.w %d3
  61. jbeq .L14
  62. neg.l %d0
  63. .L14:
  64. move.l (%sp)+,%d3
  65. rts