162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 462306a36Sopenharmony_ci 2004, 2005, 2006 562306a36Sopenharmony_ci Free Software Foundation, Inc. 662306a36Sopenharmony_ci*/ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci!! libgcc routines for the Renesas / SuperH SH CPUs. 962306a36Sopenharmony_ci!! Contributed by Steve Chamberlain. 1062306a36Sopenharmony_ci!! sac@cygnus.com 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci!! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines 1362306a36Sopenharmony_ci!! recoded in assembly by Toshiyasu Morita 1462306a36Sopenharmony_ci!! tm@netcom.com 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and 1762306a36Sopenharmony_ci ELF local label prefixes by J"orn Rennecke 1862306a36Sopenharmony_ci amylaar@cygnus.com */ 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci .global __ashiftrt_r4_0 2162306a36Sopenharmony_ci .global __ashiftrt_r4_1 2262306a36Sopenharmony_ci .global __ashiftrt_r4_2 2362306a36Sopenharmony_ci .global __ashiftrt_r4_3 2462306a36Sopenharmony_ci .global __ashiftrt_r4_4 2562306a36Sopenharmony_ci .global __ashiftrt_r4_5 2662306a36Sopenharmony_ci .global __ashiftrt_r4_6 2762306a36Sopenharmony_ci .global __ashiftrt_r4_7 2862306a36Sopenharmony_ci .global __ashiftrt_r4_8 2962306a36Sopenharmony_ci .global __ashiftrt_r4_9 3062306a36Sopenharmony_ci .global __ashiftrt_r4_10 3162306a36Sopenharmony_ci .global __ashiftrt_r4_11 3262306a36Sopenharmony_ci .global __ashiftrt_r4_12 3362306a36Sopenharmony_ci .global __ashiftrt_r4_13 3462306a36Sopenharmony_ci .global __ashiftrt_r4_14 3562306a36Sopenharmony_ci .global __ashiftrt_r4_15 3662306a36Sopenharmony_ci .global __ashiftrt_r4_16 3762306a36Sopenharmony_ci .global __ashiftrt_r4_17 3862306a36Sopenharmony_ci .global __ashiftrt_r4_18 3962306a36Sopenharmony_ci .global __ashiftrt_r4_19 4062306a36Sopenharmony_ci .global __ashiftrt_r4_20 4162306a36Sopenharmony_ci .global __ashiftrt_r4_21 4262306a36Sopenharmony_ci .global __ashiftrt_r4_22 4362306a36Sopenharmony_ci .global __ashiftrt_r4_23 4462306a36Sopenharmony_ci .global __ashiftrt_r4_24 4562306a36Sopenharmony_ci .global __ashiftrt_r4_25 4662306a36Sopenharmony_ci .global __ashiftrt_r4_26 4762306a36Sopenharmony_ci .global __ashiftrt_r4_27 4862306a36Sopenharmony_ci .global __ashiftrt_r4_28 4962306a36Sopenharmony_ci .global __ashiftrt_r4_29 5062306a36Sopenharmony_ci .global __ashiftrt_r4_30 5162306a36Sopenharmony_ci .global __ashiftrt_r4_31 5262306a36Sopenharmony_ci .global __ashiftrt_r4_32 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci .align 1 5562306a36Sopenharmony_ci__ashiftrt_r4_32: 5662306a36Sopenharmony_ci__ashiftrt_r4_31: 5762306a36Sopenharmony_ci rotcl r4 5862306a36Sopenharmony_ci rts 5962306a36Sopenharmony_ci subc r4,r4 6062306a36Sopenharmony_ci__ashiftrt_r4_30: 6162306a36Sopenharmony_ci shar r4 6262306a36Sopenharmony_ci__ashiftrt_r4_29: 6362306a36Sopenharmony_ci shar r4 6462306a36Sopenharmony_ci__ashiftrt_r4_28: 6562306a36Sopenharmony_ci shar r4 6662306a36Sopenharmony_ci__ashiftrt_r4_27: 6762306a36Sopenharmony_ci shar r4 6862306a36Sopenharmony_ci__ashiftrt_r4_26: 6962306a36Sopenharmony_ci shar r4 7062306a36Sopenharmony_ci__ashiftrt_r4_25: 7162306a36Sopenharmony_ci shar r4 7262306a36Sopenharmony_ci__ashiftrt_r4_24: 7362306a36Sopenharmony_ci shlr16 r4 7462306a36Sopenharmony_ci shlr8 r4 7562306a36Sopenharmony_ci rts 7662306a36Sopenharmony_ci exts.b r4,r4 7762306a36Sopenharmony_ci__ashiftrt_r4_23: 7862306a36Sopenharmony_ci shar r4 7962306a36Sopenharmony_ci__ashiftrt_r4_22: 8062306a36Sopenharmony_ci shar r4 8162306a36Sopenharmony_ci__ashiftrt_r4_21: 8262306a36Sopenharmony_ci shar r4 8362306a36Sopenharmony_ci__ashiftrt_r4_20: 8462306a36Sopenharmony_ci shar r4 8562306a36Sopenharmony_ci__ashiftrt_r4_19: 8662306a36Sopenharmony_ci shar r4 8762306a36Sopenharmony_ci__ashiftrt_r4_18: 8862306a36Sopenharmony_ci shar r4 8962306a36Sopenharmony_ci__ashiftrt_r4_17: 9062306a36Sopenharmony_ci shar r4 9162306a36Sopenharmony_ci__ashiftrt_r4_16: 9262306a36Sopenharmony_ci shlr16 r4 9362306a36Sopenharmony_ci rts 9462306a36Sopenharmony_ci exts.w r4,r4 9562306a36Sopenharmony_ci__ashiftrt_r4_15: 9662306a36Sopenharmony_ci shar r4 9762306a36Sopenharmony_ci__ashiftrt_r4_14: 9862306a36Sopenharmony_ci shar r4 9962306a36Sopenharmony_ci__ashiftrt_r4_13: 10062306a36Sopenharmony_ci shar r4 10162306a36Sopenharmony_ci__ashiftrt_r4_12: 10262306a36Sopenharmony_ci shar r4 10362306a36Sopenharmony_ci__ashiftrt_r4_11: 10462306a36Sopenharmony_ci shar r4 10562306a36Sopenharmony_ci__ashiftrt_r4_10: 10662306a36Sopenharmony_ci shar r4 10762306a36Sopenharmony_ci__ashiftrt_r4_9: 10862306a36Sopenharmony_ci shar r4 10962306a36Sopenharmony_ci__ashiftrt_r4_8: 11062306a36Sopenharmony_ci shar r4 11162306a36Sopenharmony_ci__ashiftrt_r4_7: 11262306a36Sopenharmony_ci shar r4 11362306a36Sopenharmony_ci__ashiftrt_r4_6: 11462306a36Sopenharmony_ci shar r4 11562306a36Sopenharmony_ci__ashiftrt_r4_5: 11662306a36Sopenharmony_ci shar r4 11762306a36Sopenharmony_ci__ashiftrt_r4_4: 11862306a36Sopenharmony_ci shar r4 11962306a36Sopenharmony_ci__ashiftrt_r4_3: 12062306a36Sopenharmony_ci shar r4 12162306a36Sopenharmony_ci__ashiftrt_r4_2: 12262306a36Sopenharmony_ci shar r4 12362306a36Sopenharmony_ci__ashiftrt_r4_1: 12462306a36Sopenharmony_ci rts 12562306a36Sopenharmony_ci shar r4 12662306a36Sopenharmony_ci__ashiftrt_r4_0: 12762306a36Sopenharmony_ci rts 12862306a36Sopenharmony_ci nop 129