cuu.s 353 B

12345678910111213141516171819202122232425
  1. .define .ciu, .cui, .cuu
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. ! only converts between sizes of multiples of four
  8. .ciu:
  9. .cui:
  10. .cuu:
  11. move.l (sp)+, a0 ! return address
  12. move.l (sp)+, d0 ! destination size
  13. sub.l (sp)+, d0
  14. bgt 1f
  15. sub.l d0, sp
  16. jmp (a0)
  17. 1:
  18. asr.l #2, d0
  19. sub.l #1, d0
  20. 2:
  21. clr.l -(sp)
  22. dbf d0, 2b
  23. jmp (a0)
  24. .align 2