fgets.s 647 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. .file "fgets.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 fgets
  11. fgets:
  12. movm.l #0x1830,-(%sp)
  13. move.l %a0,%d4
  14. move.w %d0,%d3
  15. move.l %a1,%a3
  16. moveq.l #-1,%d1
  17. move.l %a0,%a2
  18. jbra .L2
  19. .even
  20. .L8:
  21. cmp.w #13,%d1
  22. jbne .L6
  23. move.w 10(%a3),%d0
  24. and.w #64,%d0
  25. jbne .L6
  26. moveq.l #10,%d1
  27. .L6:
  28. move.b %d1,(%a2)+
  29. cmp.b #10,%d1
  30. jbeq .L3
  31. .L2:
  32. subq.w #1,%d3
  33. tst.w %d3
  34. jble .L3
  35. move.l %a3,%a0
  36. jbsr fgetc
  37. move.w %d0,%d1
  38. cmp.w #-1,%d0
  39. jbne .L8
  40. .L3:
  41. clr.b (%a2)
  42. cmp.w #-1,%d1
  43. jbne .L11
  44. moveq.l #0,%d0
  45. cmp.l %a2,%d4
  46. jbeq .L10
  47. .L11:
  48. move.l %d4,%d0
  49. .L10:
  50. move.l %d0,%a0
  51. movm.l (%sp)+,#0xc18
  52. rts