fseek.s 946 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. .file "fseek.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 fseek
  11. fseek:
  12. movm.l #0x1820,-(%sp)
  13. move.l %d0,%d3
  14. move.w %d1,%d4
  15. move.w 10(%a0),%d1
  16. move.w %d1,%d2
  17. and.w #64,%d2
  18. move.l 4(%a0),%a1
  19. lea (2,%a1),%a2
  20. jbne .L3
  21. lea (5,%a1),%a2
  22. .L3:
  23. clr.l %d0
  24. move.w (%a1),%d0
  25. add.l %d0,%a1
  26. tst.w %d2
  27. jbeq .L4
  28. addq.l #2,%a1
  29. .L4:
  30. move.l %a2,%d2
  31. add.l %d3,%d2
  32. tst.w %d4
  33. jbeq .L6
  34. move.l %a1,%d2
  35. add.l %d3,%d2
  36. cmp.w #1,%d4
  37. jbne .L6
  38. move.l (%a0),%d2
  39. add.l %d3,%d2
  40. .L6:
  41. move.w %d1,%d0
  42. and.w #16,%d0
  43. moveq.l #-1,%d3
  44. tst.w %d0
  45. jbne .L1
  46. cmp.l %d2,%a2
  47. jbhi .L11
  48. cmp.l %d2,%a1
  49. jbcs .L11
  50. cmp.w #2,%d4
  51. jbls .L10
  52. .L11:
  53. or.w #16,%d1
  54. move.w %d1,10(%a0)
  55. moveq.l #-1,%d3
  56. jbra .L1
  57. .even
  58. .L10:
  59. move.l %d2,(%a0)
  60. clr.w 12(%a0)
  61. cmp.l %d2,%a1
  62. jbne .L12
  63. or.w #32,%d1
  64. jbra .L14
  65. .even
  66. .L12:
  67. and.w #-33,%d1
  68. .L14:
  69. move.w %d1,10(%a0)
  70. clr.w %d3
  71. .L1:
  72. move.w %d3,%d0
  73. movm.l (%sp)+,#0x418
  74. rts