1/* $NetBSD: ashiftrt.S,v 1.6 2006/05/22 20:56:44 uwe Exp $ */ 2 3/*- 4 * Copyright (C) 1999 Tsubai Masanari. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29#include <machine/asm.h> 30 31 32#ifdef __ELF__ 33 .hidden __ashiftrt_r4_0 34 .hidden __ashiftrt_r4_1 35 .hidden __ashiftrt_r4_2 36 .hidden __ashiftrt_r4_3 37 .hidden __ashiftrt_r4_4 38 .hidden __ashiftrt_r4_5 39 .hidden __ashiftrt_r4_6 40 .hidden __ashiftrt_r4_7 41 .hidden __ashiftrt_r4_8 42 .hidden __ashiftrt_r4_9 43 .hidden __ashiftrt_r4_10 44 .hidden __ashiftrt_r4_11 45 .hidden __ashiftrt_r4_12 46 .hidden __ashiftrt_r4_13 47 .hidden __ashiftrt_r4_14 48 .hidden __ashiftrt_r4_15 49 .hidden __ashiftrt_r4_16 50 .hidden __ashiftrt_r4_17 51 .hidden __ashiftrt_r4_18 52 .hidden __ashiftrt_r4_19 53 .hidden __ashiftrt_r4_20 54 .hidden __ashiftrt_r4_21 55 .hidden __ashiftrt_r4_22 56 .hidden __ashiftrt_r4_23 57 .hidden __ashiftrt_r4_24 58 .hidden __ashiftrt_r4_25 59 .hidden __ashiftrt_r4_26 60 .hidden __ashiftrt_r4_27 61 .hidden __ashiftrt_r4_28 62 .hidden __ashiftrt_r4_29 63 .hidden __ashiftrt_r4_30 64 .hidden __ashiftrt_r4_31 65#endif /* __ELF__ */ 66 67 68NENTRY(__ashiftrt_r4_31) 69 shll r4 70 rts 71 subc r4, r4 72 73ALTENTRY(__ashiftrt_r4_30) 74 shar r4 75 76ALTENTRY(__ashiftrt_r4_29) 77 shar r4 78 79ALTENTRY(__ashiftrt_r4_28) 80 shar r4 81 82ALTENTRY(__ashiftrt_r4_27) 83 shar r4 84 85ALTENTRY(__ashiftrt_r4_26) 86 shar r4 87 88ALTENTRY(__ashiftrt_r4_25) 89 shar r4 90 91ALTENTRY(__ashiftrt_r4_24) 92 shlr16 r4 93 shlr8 r4 94 rts 95 exts.b r4, r4 96 97ALTENTRY(__ashiftrt_r4_23) 98 shar r4 99 100ALTENTRY(__ashiftrt_r4_22) 101 shar r4 102 103ALTENTRY(__ashiftrt_r4_21) 104 shar r4 105 106ALTENTRY(__ashiftrt_r4_20) 107 shar r4 108 109ALTENTRY(__ashiftrt_r4_19) 110 shar r4 111 112ALTENTRY(__ashiftrt_r4_18) 113 shar r4 114 115ALTENTRY(__ashiftrt_r4_17) 116 shar r4 117 118ALTENTRY(__ashiftrt_r4_16) 119 shlr16 r4 120 rts 121 exts.w r4, r4 122 123ALTENTRY(__ashiftrt_r4_15) 124 swap.w r4, r4 125 cmp/pz r4 126 bf/s 1f 127 exts.w r4, r4 128 rts 129 shll r4 1301: 131 sett 132 rts 133 rotcl r4 134 135ALTENTRY(__ashiftrt_r4_14) 136 shar r4 137 138ALTENTRY(__ashiftrt_r4_13) 139 shar r4 140 141ALTENTRY(__ashiftrt_r4_12) 142 shar r4 143 144ALTENTRY(__ashiftrt_r4_11) 145 shar r4 146 147ALTENTRY(__ashiftrt_r4_10) 148 shar r4 149 150ALTENTRY(__ashiftrt_r4_9) 151 shar r4 152 153ALTENTRY(__ashiftrt_r4_8) 154 shar r4 155 156ALTENTRY(__ashiftrt_r4_7) 157 shar r4 158 159ALTENTRY(__ashiftrt_r4_6) 160 shar r4 161 162ALTENTRY(__ashiftrt_r4_5) 163 shar r4 164 165ALTENTRY(__ashiftrt_r4_4) 166 shar r4 167 168ALTENTRY(__ashiftrt_r4_3) 169 shar r4 170 171ALTENTRY(__ashiftrt_r4_2) 172 shar r4 173 174ALTENTRY(__ashiftrt_r4_1) 175 rts 176 shar r4 177 178ALTENTRY(__ashiftrt_r4_0) 179 rts 180 nop 181