ashiftrt.S 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /* SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
  2. Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
  3. 2004, 2005, 2006
  4. Free Software Foundation, Inc.
  5. */
  6. !! libgcc routines for the Renesas / SuperH SH CPUs.
  7. !! Contributed by Steve Chamberlain.
  8. !! sac@cygnus.com
  9. !! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines
  10. !! recoded in assembly by Toshiyasu Morita
  11. !! tm@netcom.com
  12. /* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
  13. ELF local label prefixes by J"orn Rennecke
  14. amylaar@cygnus.com */
  15. .global __ashiftrt_r4_0
  16. .global __ashiftrt_r4_1
  17. .global __ashiftrt_r4_2
  18. .global __ashiftrt_r4_3
  19. .global __ashiftrt_r4_4
  20. .global __ashiftrt_r4_5
  21. .global __ashiftrt_r4_6
  22. .global __ashiftrt_r4_7
  23. .global __ashiftrt_r4_8
  24. .global __ashiftrt_r4_9
  25. .global __ashiftrt_r4_10
  26. .global __ashiftrt_r4_11
  27. .global __ashiftrt_r4_12
  28. .global __ashiftrt_r4_13
  29. .global __ashiftrt_r4_14
  30. .global __ashiftrt_r4_15
  31. .global __ashiftrt_r4_16
  32. .global __ashiftrt_r4_17
  33. .global __ashiftrt_r4_18
  34. .global __ashiftrt_r4_19
  35. .global __ashiftrt_r4_20
  36. .global __ashiftrt_r4_21
  37. .global __ashiftrt_r4_22
  38. .global __ashiftrt_r4_23
  39. .global __ashiftrt_r4_24
  40. .global __ashiftrt_r4_25
  41. .global __ashiftrt_r4_26
  42. .global __ashiftrt_r4_27
  43. .global __ashiftrt_r4_28
  44. .global __ashiftrt_r4_29
  45. .global __ashiftrt_r4_30
  46. .global __ashiftrt_r4_31
  47. .global __ashiftrt_r4_32
  48. .align 1
  49. __ashiftrt_r4_32:
  50. __ashiftrt_r4_31:
  51. rotcl r4
  52. rts
  53. subc r4,r4
  54. __ashiftrt_r4_30:
  55. shar r4
  56. __ashiftrt_r4_29:
  57. shar r4
  58. __ashiftrt_r4_28:
  59. shar r4
  60. __ashiftrt_r4_27:
  61. shar r4
  62. __ashiftrt_r4_26:
  63. shar r4
  64. __ashiftrt_r4_25:
  65. shar r4
  66. __ashiftrt_r4_24:
  67. shlr16 r4
  68. shlr8 r4
  69. rts
  70. exts.b r4,r4
  71. __ashiftrt_r4_23:
  72. shar r4
  73. __ashiftrt_r4_22:
  74. shar r4
  75. __ashiftrt_r4_21:
  76. shar r4
  77. __ashiftrt_r4_20:
  78. shar r4
  79. __ashiftrt_r4_19:
  80. shar r4
  81. __ashiftrt_r4_18:
  82. shar r4
  83. __ashiftrt_r4_17:
  84. shar r4
  85. __ashiftrt_r4_16:
  86. shlr16 r4
  87. rts
  88. exts.w r4,r4
  89. __ashiftrt_r4_15:
  90. shar r4
  91. __ashiftrt_r4_14:
  92. shar r4
  93. __ashiftrt_r4_13:
  94. shar r4
  95. __ashiftrt_r4_12:
  96. shar r4
  97. __ashiftrt_r4_11:
  98. shar r4
  99. __ashiftrt_r4_10:
  100. shar r4
  101. __ashiftrt_r4_9:
  102. shar r4
  103. __ashiftrt_r4_8:
  104. shar r4
  105. __ashiftrt_r4_7:
  106. shar r4
  107. __ashiftrt_r4_6:
  108. shar r4
  109. __ashiftrt_r4_5:
  110. shar r4
  111. __ashiftrt_r4_4:
  112. shar r4
  113. __ashiftrt_r4_3:
  114. shar r4
  115. __ashiftrt_r4_2:
  116. shar r4
  117. __ashiftrt_r4_1:
  118. rts
  119. shar r4
  120. __ashiftrt_r4_0:
  121. rts
  122. nop