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