fputc.s 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. .file "fputc.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 fputc
  11. fputc:
  12. movm.l #0x1c30,-(%sp)
  13. move.w 24(%sp),%d4
  14. move.l 26(%sp),%a3
  15. move.w 10(%a3),%d1
  16. move.w %d1,%d3
  17. lsr.w #6,%d3
  18. eor.w #1,%d3
  19. and.w #1,%d3
  20. move.l 4(%a3),%a2
  21. move.l %a2,%d5
  22. move.w %d1,%d0
  23. and.w #16,%d0
  24. moveq.l #-1,%d2
  25. tst.w %d0
  26. jbne .L1
  27. move.w %d1,%d0
  28. and.w #2,%d0
  29. jbne .L3
  30. or.w #16,%d1
  31. move.w %d1,10(%a3)
  32. jbra .L1
  33. .even
  34. .L3:
  35. move.w (%a2),%d0
  36. add.w #10,%d0
  37. and.l #0xFFFF,%d0
  38. cmp.l 14(%a3),%d0
  39. jbls .L4
  40. move.l 200.w,%a0
  41. move.w 8(%a3),-(%sp)
  42. move.l 636(%a0),%a0
  43. jbsr (%a0)
  44. move.l 200.w,%a0
  45. clr.l %d0
  46. move.w 18(%a3),%d0
  47. add.l 14(%a3),%d0
  48. move.l %d0,14(%a3)
  49. move.l %d0,-(%sp)
  50. move.w 8(%a3),-(%sp)
  51. move.l 628(%a0),%a0
  52. jbsr (%a0)
  53. addq.l #8,%sp
  54. tst.w %d0
  55. jbne .L5
  56. or.w #16,10(%a3)
  57. moveq.l #-1,%d2
  58. jbra .L1
  59. .even
  60. .L5:
  61. move.l 200.w,%a0
  62. move.w 8(%a3),-(%sp)
  63. move.l 612(%a0),%a0
  64. jbsr (%a0)
  65. move.l %a0,4(%a3)
  66. move.l %a0,%a2
  67. move.l %a0,%d0
  68. sub.l %d5,%d0
  69. add.l %d0,(%a3)
  70. addq.l #2,%sp
  71. .L4:
  72. move.w 10(%a3),%d0
  73. and.w #32,%d0
  74. jbeq .L6
  75. addq.w #1,(%a2)
  76. .L6:
  77. cmp.w #10,%d4
  78. jbne .L7
  79. tst.w %d3
  80. jbeq .L7
  81. moveq.l #13,%d4
  82. .L7:
  83. move.l (%a3),%a0
  84. move.b %d4,(%a0)
  85. addq.l #1,(%a3)
  86. cmp.w #13,%d4
  87. jbne .L8
  88. tst.w %d3
  89. jbeq .L8
  90. move.l %a3,-(%sp)
  91. move.w #32,-(%sp)
  92. jbsr fputc
  93. addq.l #6,%sp
  94. .L8:
  95. clr.l %d0
  96. move.w (%a2),%d0
  97. add.l %a2,%d0
  98. move.l (%a3),%a1
  99. tst.w %d3
  100. jbne .L11
  101. addq.l #2,%d0
  102. .L11:
  103. cmp.l %d0,%a1
  104. jbne .L10
  105. or.w #32,10(%a3)
  106. tst.w %d3
  107. jbeq .L10
  108. clr.b (%a1)
  109. move.l (%a3),%a0
  110. move.b #-32,1(%a0)
  111. .L10:
  112. move.w %d4,%d2
  113. .L1:
  114. move.w %d2,%d0
  115. movm.l (%sp)+,#0xc38
  116. rts