__avr32_lsl64.S 559 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright (C) 2005-2006 Atmel Corporation
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. /*
  9. * DWtype __avr32_lsl64(DWtype u, word_type b)
  10. */
  11. .text
  12. .global __avr32_lsl64
  13. .type __avr32_lsl64,@function
  14. __avr32_lsl64:
  15. cp.w r12, 0
  16. reteq r12
  17. rsub r9, r12, 32
  18. brle 1f
  19. lsr r8, r10, r9
  20. lsl r10, r10, r12
  21. lsl r11, r11, r12
  22. or r11, r8
  23. retal r12
  24. 1: neg r9
  25. lsl r11, r10, r9
  26. mov r10, 0
  27. retal r12