los.s 440 B

1234567891011121314151617181920212223242526272829303132
  1. #include "em_abs.h"
  2. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  3. .define .los
  4. ! $Id$
  5. .los:
  6. movl (sp)+,r2
  7. cmpl r0,$4
  8. beql I1
  9. pushl $EILLINS
  10. jmp .fat
  11. I1:
  12. movl (sp)+,r0 ! nbytes in r0
  13. movl (sp)+,r1 ! address in r1
  14. cmpl r0,$1
  15. beql I2
  16. cmpl r0,$2
  17. beql I3
  18. addl2 r0,r1
  19. ashl $-2,r0,r0
  20. I4:
  21. movl -(r1),-(sp)
  22. sobgtr r0,I4
  23. jmp (r2)
  24. I2:
  25. cvtbl (r1),-(sp)
  26. jmp (r2)
  27. I3:
  28. cvtwl (r1),-(sp)
  29. jmp (r2)