123456789101112131415161718192021222324252627 |
- .define .cii
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- .cii:
- move.l (sp)+, a0 ! return address
- move.l (sp)+, d0 ! destination size
- sub.l (sp)+, d0 ! destination - source size
- bgt 1f
- sub.l d0, sp ! pop extra bytes
- jmp (a0)
- 1:
- clr.l d1
- tst.l (sp)
- bne 4f
- not.l d1 ! d1 contains sign of source
- 4:
- asr.l #2, d0
- sub.l #1, d0
- 2:
- move.l d1, -(sp)
- dbf d0, 2b
- jmp (a0)
- .align 2
|