sprite32.s 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. .file "sprite32.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 Sprite32
  11. Sprite32:
  12. movm.l #0x1e20,-(%sp)
  13. move.w %d2,%d5
  14. move.l %a0,%a2
  15. move.w %d3,%d6
  16. muls.w #30,%d1
  17. lea (%a1,%d1.w),%a0
  18. move.w %d0,%d1
  19. asr.w #3,%d1
  20. and.l #65534,%d1
  21. add.l %d1,%a0
  22. move.w %d0,%d4
  23. and.w #15,%d4
  24. moveq.l #32,%d0
  25. sub.w %d4,%d0
  26. move.w %d0,%a1
  27. jbra .L2
  28. .even
  29. .L10:
  30. move.l (%a2)+,%d1
  31. cmp.w #2,%d6
  32. jbne .L6
  33. not.l %d1
  34. moveq.l #15,%d0
  35. and.l %d4,%d0
  36. move.l %d1,%d2
  37. lsr.l %d0,%d2
  38. move.l %d2,%d0
  39. not.l %d0
  40. and.l %d0,(%a0)
  41. clr.l %d0
  42. move.w %a1,%d0
  43. lsl.l %d0,%d1
  44. not.l %d1
  45. and.l %d1,4(%a0)
  46. jbra .L4
  47. .even
  48. .L6:
  49. moveq.l #15,%d0
  50. and.l %d4,%d0
  51. move.l %d1,%d2
  52. lsr.l %d0,%d2
  53. clr.l %d0
  54. move.w %a1,%d0
  55. move.l %d1,%d3
  56. lsl.l %d0,%d3
  57. move.l (%a0),%d1
  58. move.l 4(%a0),%d0
  59. tst.w %d6
  60. jbne .L8
  61. eor.l %d2,%d1
  62. move.l %d1,(%a0)
  63. eor.l %d3,%d0
  64. jbra .L11
  65. .even
  66. .L8:
  67. or.l %d2,%d1
  68. move.l %d1,(%a0)
  69. or.l %d3,%d0
  70. .L11:
  71. move.l %d0,4(%a0)
  72. .L4:
  73. lea (30,%a0),%a0
  74. .L2:
  75. dbra %d5,.L10
  76. movm.l (%sp)+,#0x478
  77. rts