ashiftrt.S 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /* Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
  2. 2004, 2005, 2006
  3. Free Software Foundation, Inc.
  4. This file is free software; you can redistribute it and/or modify it
  5. under the terms of the GNU General Public License as published by the
  6. Free Software Foundation; either version 2, or (at your option) any
  7. later version.
  8. In addition to the permissions in the GNU General Public License, the
  9. Free Software Foundation gives you unlimited permission to link the
  10. compiled version of this file into combinations with other programs,
  11. and to distribute those combinations without any restriction coming
  12. from the use of this file. (The General Public License restrictions
  13. do apply in other respects; for example, they cover modification of
  14. the file, and distribution when not linked into a combine
  15. executable.)
  16. This file is distributed in the hope that it will be useful, but
  17. WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  19. General Public License for more details.
  20. You should have received a copy of the GNU General Public License
  21. along with this program; see the file COPYING. If not, write to
  22. the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  23. Boston, MA 02110-1301, USA. */
  24. !! libgcc routines for the Renesas / SuperH SH CPUs.
  25. !! Contributed by Steve Chamberlain.
  26. !! sac@cygnus.com
  27. !! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines
  28. !! recoded in assembly by Toshiyasu Morita
  29. !! tm@netcom.com
  30. /* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
  31. ELF local label prefixes by J"orn Rennecke
  32. amylaar@cygnus.com */
  33. .global __ashiftrt_r4_0
  34. .global __ashiftrt_r4_1
  35. .global __ashiftrt_r4_2
  36. .global __ashiftrt_r4_3
  37. .global __ashiftrt_r4_4
  38. .global __ashiftrt_r4_5
  39. .global __ashiftrt_r4_6
  40. .global __ashiftrt_r4_7
  41. .global __ashiftrt_r4_8
  42. .global __ashiftrt_r4_9
  43. .global __ashiftrt_r4_10
  44. .global __ashiftrt_r4_11
  45. .global __ashiftrt_r4_12
  46. .global __ashiftrt_r4_13
  47. .global __ashiftrt_r4_14
  48. .global __ashiftrt_r4_15
  49. .global __ashiftrt_r4_16
  50. .global __ashiftrt_r4_17
  51. .global __ashiftrt_r4_18
  52. .global __ashiftrt_r4_19
  53. .global __ashiftrt_r4_20
  54. .global __ashiftrt_r4_21
  55. .global __ashiftrt_r4_22
  56. .global __ashiftrt_r4_23
  57. .global __ashiftrt_r4_24
  58. .global __ashiftrt_r4_25
  59. .global __ashiftrt_r4_26
  60. .global __ashiftrt_r4_27
  61. .global __ashiftrt_r4_28
  62. .global __ashiftrt_r4_29
  63. .global __ashiftrt_r4_30
  64. .global __ashiftrt_r4_31
  65. .global __ashiftrt_r4_32
  66. .align 1
  67. __ashiftrt_r4_32:
  68. __ashiftrt_r4_31:
  69. rotcl r4
  70. rts
  71. subc r4,r4
  72. __ashiftrt_r4_30:
  73. shar r4
  74. __ashiftrt_r4_29:
  75. shar r4
  76. __ashiftrt_r4_28:
  77. shar r4
  78. __ashiftrt_r4_27:
  79. shar r4
  80. __ashiftrt_r4_26:
  81. shar r4
  82. __ashiftrt_r4_25:
  83. shar r4
  84. __ashiftrt_r4_24:
  85. shlr16 r4
  86. shlr8 r4
  87. rts
  88. exts.b r4,r4
  89. __ashiftrt_r4_23:
  90. shar r4
  91. __ashiftrt_r4_22:
  92. shar r4
  93. __ashiftrt_r4_21:
  94. shar r4
  95. __ashiftrt_r4_20:
  96. shar r4
  97. __ashiftrt_r4_19:
  98. shar r4
  99. __ashiftrt_r4_18:
  100. shar r4
  101. __ashiftrt_r4_17:
  102. shar r4
  103. __ashiftrt_r4_16:
  104. shlr16 r4
  105. rts
  106. exts.w r4,r4
  107. __ashiftrt_r4_15:
  108. shar r4
  109. __ashiftrt_r4_14:
  110. shar r4
  111. __ashiftrt_r4_13:
  112. shar r4
  113. __ashiftrt_r4_12:
  114. shar r4
  115. __ashiftrt_r4_11:
  116. shar r4
  117. __ashiftrt_r4_10:
  118. shar r4
  119. __ashiftrt_r4_9:
  120. shar r4
  121. __ashiftrt_r4_8:
  122. shar r4
  123. __ashiftrt_r4_7:
  124. shar r4
  125. __ashiftrt_r4_6:
  126. shar r4
  127. __ashiftrt_r4_5:
  128. shar r4
  129. __ashiftrt_r4_4:
  130. shar r4
  131. __ashiftrt_r4_3:
  132. shar r4
  133. __ashiftrt_r4_2:
  134. shar r4
  135. __ashiftrt_r4_1:
  136. rts
  137. shar r4
  138. __ashiftrt_r4_0:
  139. rts
  140. nop