root/arch/sparc/lib/Memcpy_utils.S

/* [<][>][^][v][top][bottom][index][help] */
   1 #ifndef __ASM_MEMCPY_UTILS
   2 #define __ASM_MEMCPY_UTILS
   3 
   4 #include <linux/linkage.h>
   5 #include <asm/asi.h>
   6 #include <asm/visasm.h>
   7 
   8 ENTRY(__restore_asi_fp)
   9         VISExitHalf
  10         retl
  11          wr     %g0, ASI_AIUS, %asi
  12 ENDPROC(__restore_asi_fp)
  13 
  14 ENTRY(__restore_asi)
  15         retl
  16          wr     %g0, ASI_AIUS, %asi
  17 ENDPROC(__restore_asi)
  18 
  19 ENTRY(memcpy_retl_o2)
  20         ba,pt   %xcc, __restore_asi
  21          mov    %o2, %o0
  22 ENDPROC(memcpy_retl_o2)
  23 ENTRY(memcpy_retl_o2_plus_1)
  24         ba,pt   %xcc, __restore_asi
  25          add    %o2, 1, %o0
  26 ENDPROC(memcpy_retl_o2_plus_1)
  27 ENTRY(memcpy_retl_o2_plus_3)
  28         ba,pt   %xcc, __restore_asi
  29          add    %o2, 3, %o0
  30 ENDPROC(memcpy_retl_o2_plus_3)
  31 ENTRY(memcpy_retl_o2_plus_4)
  32         ba,pt   %xcc, __restore_asi
  33          add    %o2, 4, %o0
  34 ENDPROC(memcpy_retl_o2_plus_4)
  35 ENTRY(memcpy_retl_o2_plus_5)
  36         ba,pt   %xcc, __restore_asi
  37          add    %o2, 5, %o0
  38 ENDPROC(memcpy_retl_o2_plus_5)
  39 ENTRY(memcpy_retl_o2_plus_6)
  40         ba,pt   %xcc, __restore_asi
  41          add    %o2, 6, %o0
  42 ENDPROC(memcpy_retl_o2_plus_6)
  43 ENTRY(memcpy_retl_o2_plus_7)
  44         ba,pt   %xcc, __restore_asi
  45          add    %o2, 7, %o0
  46 ENDPROC(memcpy_retl_o2_plus_7)
  47 ENTRY(memcpy_retl_o2_plus_8)
  48         ba,pt   %xcc, __restore_asi
  49          add    %o2, 8, %o0
  50 ENDPROC(memcpy_retl_o2_plus_8)
  51 ENTRY(memcpy_retl_o2_plus_15)
  52         ba,pt   %xcc, __restore_asi
  53          add    %o2, 15, %o0
  54 ENDPROC(memcpy_retl_o2_plus_15)
  55 ENTRY(memcpy_retl_o2_plus_15_8)
  56          add    %o2, 15, %o2
  57         ba,pt   %xcc, __restore_asi
  58          add    %o2, 8, %o0
  59 ENDPROC(memcpy_retl_o2_plus_15_8)
  60 ENTRY(memcpy_retl_o2_plus_16)
  61         ba,pt   %xcc, __restore_asi
  62          add    %o2, 16, %o0
  63 ENDPROC(memcpy_retl_o2_plus_16)
  64 ENTRY(memcpy_retl_o2_plus_24)
  65         ba,pt   %xcc, __restore_asi
  66          add    %o2, 24, %o0
  67 ENDPROC(memcpy_retl_o2_plus_24)
  68 ENTRY(memcpy_retl_o2_plus_31)
  69         ba,pt   %xcc, __restore_asi
  70          add    %o2, 31, %o0
  71 ENDPROC(memcpy_retl_o2_plus_31)
  72 ENTRY(memcpy_retl_o2_plus_32)
  73         ba,pt   %xcc, __restore_asi
  74          add    %o2, 32, %o0
  75 ENDPROC(memcpy_retl_o2_plus_32)
  76 ENTRY(memcpy_retl_o2_plus_31_32)
  77         add     %o2, 31, %o2
  78         ba,pt   %xcc, __restore_asi
  79          add    %o2, 32, %o0
  80 ENDPROC(memcpy_retl_o2_plus_31_32)
  81 ENTRY(memcpy_retl_o2_plus_31_24)
  82         add     %o2, 31, %o2
  83         ba,pt   %xcc, __restore_asi
  84          add    %o2, 24, %o0
  85 ENDPROC(memcpy_retl_o2_plus_31_24)
  86 ENTRY(memcpy_retl_o2_plus_31_16)
  87         add     %o2, 31, %o2
  88         ba,pt   %xcc, __restore_asi
  89          add    %o2, 16, %o0
  90 ENDPROC(memcpy_retl_o2_plus_31_16)
  91 ENTRY(memcpy_retl_o2_plus_31_8)
  92         add     %o2, 31, %o2
  93         ba,pt   %xcc, __restore_asi
  94          add    %o2, 8, %o0
  95 ENDPROC(memcpy_retl_o2_plus_31_8)
  96 ENTRY(memcpy_retl_o2_plus_63)
  97         ba,pt   %xcc, __restore_asi
  98          add    %o2, 63, %o0
  99 ENDPROC(memcpy_retl_o2_plus_63)
 100 ENTRY(memcpy_retl_o2_plus_63_64)
 101          add    %o2, 63, %o2
 102         ba,pt   %xcc, __restore_asi
 103          add    %o2, 64, %o0
 104 ENDPROC(memcpy_retl_o2_plus_63_64)
 105 ENTRY(memcpy_retl_o2_plus_63_56)
 106          add    %o2, 63, %o2
 107         ba,pt   %xcc, __restore_asi
 108          add    %o2, 56, %o0
 109 ENDPROC(memcpy_retl_o2_plus_63_56)
 110 ENTRY(memcpy_retl_o2_plus_63_48)
 111          add    %o2, 63, %o2
 112         ba,pt   %xcc, __restore_asi
 113          add    %o2, 48, %o0
 114 ENDPROC(memcpy_retl_o2_plus_63_48)
 115 ENTRY(memcpy_retl_o2_plus_63_40)
 116          add    %o2, 63, %o2
 117         ba,pt   %xcc, __restore_asi
 118          add    %o2, 40, %o0
 119 ENDPROC(memcpy_retl_o2_plus_63_40)
 120 ENTRY(memcpy_retl_o2_plus_63_32)
 121          add    %o2, 63, %o2
 122         ba,pt   %xcc, __restore_asi
 123          add    %o2, 32, %o0
 124 ENDPROC(memcpy_retl_o2_plus_63_32)
 125 ENTRY(memcpy_retl_o2_plus_63_24)
 126          add    %o2, 63, %o2
 127         ba,pt   %xcc, __restore_asi
 128          add    %o2, 24, %o0
 129 ENDPROC(memcpy_retl_o2_plus_63_24)
 130 ENTRY(memcpy_retl_o2_plus_63_16)
 131          add    %o2, 63, %o2
 132         ba,pt   %xcc, __restore_asi
 133          add    %o2, 16, %o0
 134 ENDPROC(memcpy_retl_o2_plus_63_16)
 135 ENTRY(memcpy_retl_o2_plus_63_8)
 136          add    %o2, 63, %o2
 137         ba,pt   %xcc, __restore_asi
 138          add    %o2, 8, %o0
 139 ENDPROC(memcpy_retl_o2_plus_63_8)
 140 ENTRY(memcpy_retl_o2_plus_o5)
 141         ba,pt   %xcc, __restore_asi
 142          add    %o2, %o5, %o0
 143 ENDPROC(memcpy_retl_o2_plus_o5)
 144 ENTRY(memcpy_retl_o2_plus_o5_plus_1)
 145         add     %o5, 1, %o5
 146         ba,pt   %xcc, __restore_asi
 147          add    %o2, %o5, %o0
 148 ENDPROC(memcpy_retl_o2_plus_o5_plus_1)
 149 ENTRY(memcpy_retl_o2_plus_o5_plus_4)
 150         add     %o5, 4, %o5
 151         ba,pt   %xcc, __restore_asi
 152          add    %o2, %o5, %o0
 153 ENDPROC(memcpy_retl_o2_plus_o5_plus_4)
 154 ENTRY(memcpy_retl_o2_plus_o5_plus_8)
 155         add     %o5, 8, %o5
 156         ba,pt   %xcc, __restore_asi
 157          add    %o2, %o5, %o0
 158 ENDPROC(memcpy_retl_o2_plus_o5_plus_8)
 159 ENTRY(memcpy_retl_o2_plus_o5_plus_16)
 160         add     %o5, 16, %o5
 161         ba,pt   %xcc, __restore_asi
 162          add    %o2, %o5, %o0
 163 ENDPROC(memcpy_retl_o2_plus_o5_plus_16)
 164 ENTRY(memcpy_retl_o2_plus_o5_plus_24)
 165         add     %o5, 24, %o5
 166         ba,pt   %xcc, __restore_asi
 167          add    %o2, %o5, %o0
 168 ENDPROC(memcpy_retl_o2_plus_o5_plus_24)
 169 ENTRY(memcpy_retl_o2_plus_o5_plus_32)
 170         add     %o5, 32, %o5
 171         ba,pt   %xcc, __restore_asi
 172          add    %o2, %o5, %o0
 173 ENDPROC(memcpy_retl_o2_plus_o5_plus_32)
 174 ENTRY(memcpy_retl_o2_plus_o5_64)
 175         add     %o5, 32, %o5
 176         ba,pt   %xcc, __restore_asi
 177          add    %o2, %o5, %o0
 178 ENDPROC(memcpy_retl_o2_plus_o5_64)
 179 ENTRY(memcpy_retl_o2_plus_g1)
 180         ba,pt   %xcc, __restore_asi
 181          add    %o2, %g1, %o0
 182 ENDPROC(memcpy_retl_o2_plus_g1)
 183 ENTRY(memcpy_retl_o2_plus_g1_plus_1)
 184         add     %g1, 1, %g1
 185         ba,pt   %xcc, __restore_asi
 186          add    %o2, %g1, %o0
 187 ENDPROC(memcpy_retl_o2_plus_g1_plus_1)
 188 ENTRY(memcpy_retl_o2_plus_g1_plus_8)
 189         add     %g1, 8, %g1
 190         ba,pt   %xcc, __restore_asi
 191          add    %o2, %g1, %o0
 192 ENDPROC(memcpy_retl_o2_plus_g1_plus_8)
 193 ENTRY(memcpy_retl_o2_plus_o4)
 194         ba,pt   %xcc, __restore_asi
 195          add    %o2, %o4, %o0
 196 ENDPROC(memcpy_retl_o2_plus_o4)
 197 ENTRY(memcpy_retl_o2_plus_o4_plus_8)
 198         add     %o4, 8, %o4
 199         ba,pt   %xcc, __restore_asi
 200          add    %o2, %o4, %o0
 201 ENDPROC(memcpy_retl_o2_plus_o4_plus_8)
 202 ENTRY(memcpy_retl_o2_plus_o4_plus_16)
 203         add     %o4, 16, %o4
 204         ba,pt   %xcc, __restore_asi
 205          add    %o2, %o4, %o0
 206 ENDPROC(memcpy_retl_o2_plus_o4_plus_16)
 207 ENTRY(memcpy_retl_o2_plus_o4_plus_24)
 208         add     %o4, 24, %o4
 209         ba,pt   %xcc, __restore_asi
 210          add    %o2, %o4, %o0
 211 ENDPROC(memcpy_retl_o2_plus_o4_plus_24)
 212 ENTRY(memcpy_retl_o2_plus_o4_plus_32)
 213         add     %o4, 32, %o4
 214         ba,pt   %xcc, __restore_asi
 215          add    %o2, %o4, %o0
 216 ENDPROC(memcpy_retl_o2_plus_o4_plus_32)
 217 ENTRY(memcpy_retl_o2_plus_o4_plus_40)
 218         add     %o4, 40, %o4
 219         ba,pt   %xcc, __restore_asi
 220          add    %o2, %o4, %o0
 221 ENDPROC(memcpy_retl_o2_plus_o4_plus_40)
 222 ENTRY(memcpy_retl_o2_plus_o4_plus_48)
 223         add     %o4, 48, %o4
 224         ba,pt   %xcc, __restore_asi
 225          add    %o2, %o4, %o0
 226 ENDPROC(memcpy_retl_o2_plus_o4_plus_48)
 227 ENTRY(memcpy_retl_o2_plus_o4_plus_56)
 228         add     %o4, 56, %o4
 229         ba,pt   %xcc, __restore_asi
 230          add    %o2, %o4, %o0
 231 ENDPROC(memcpy_retl_o2_plus_o4_plus_56)
 232 ENTRY(memcpy_retl_o2_plus_o4_plus_64)
 233         add     %o4, 64, %o4
 234         ba,pt   %xcc, __restore_asi
 235          add    %o2, %o4, %o0
 236 ENDPROC(memcpy_retl_o2_plus_o4_plus_64)
 237 ENTRY(memcpy_retl_o2_plus_o5_plus_64)
 238         add     %o5, 64, %o5
 239         ba,pt   %xcc, __restore_asi
 240          add    %o2, %o5, %o0
 241 ENDPROC(memcpy_retl_o2_plus_o5_plus_64)
 242 ENTRY(memcpy_retl_o2_plus_o3_fp)
 243         ba,pt   %xcc, __restore_asi_fp
 244          add    %o2, %o3, %o0
 245 ENDPROC(memcpy_retl_o2_plus_o3_fp)
 246 ENTRY(memcpy_retl_o2_plus_o3_plus_1_fp)
 247         add     %o3, 1, %o3
 248         ba,pt   %xcc, __restore_asi_fp
 249          add    %o2, %o3, %o0
 250 ENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp)
 251 ENTRY(memcpy_retl_o2_plus_o3_plus_4_fp)
 252         add     %o3, 4, %o3
 253         ba,pt   %xcc, __restore_asi_fp
 254          add    %o2, %o3, %o0
 255 ENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp)
 256 ENTRY(memcpy_retl_o2_plus_o4_fp)
 257         ba,pt   %xcc, __restore_asi_fp
 258          add    %o2, %o4, %o0
 259 ENDPROC(memcpy_retl_o2_plus_o4_fp)
 260 ENTRY(memcpy_retl_o2_plus_o4_plus_8_fp)
 261         add     %o4, 8, %o4
 262         ba,pt   %xcc, __restore_asi_fp
 263          add    %o2, %o4, %o0
 264 ENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp)
 265 ENTRY(memcpy_retl_o2_plus_o4_plus_16_fp)
 266         add     %o4, 16, %o4
 267         ba,pt   %xcc, __restore_asi_fp
 268          add    %o2, %o4, %o0
 269 ENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp)
 270 ENTRY(memcpy_retl_o2_plus_o4_plus_24_fp)
 271         add     %o4, 24, %o4
 272         ba,pt   %xcc, __restore_asi_fp
 273          add    %o2, %o4, %o0
 274 ENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp)
 275 ENTRY(memcpy_retl_o2_plus_o4_plus_32_fp)
 276         add     %o4, 32, %o4
 277         ba,pt   %xcc, __restore_asi_fp
 278          add    %o2, %o4, %o0
 279 ENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp)
 280 ENTRY(memcpy_retl_o2_plus_o4_plus_40_fp)
 281         add     %o4, 40, %o4
 282         ba,pt   %xcc, __restore_asi_fp
 283          add    %o2, %o4, %o0
 284 ENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp)
 285 ENTRY(memcpy_retl_o2_plus_o4_plus_48_fp)
 286         add     %o4, 48, %o4
 287         ba,pt   %xcc, __restore_asi_fp
 288          add    %o2, %o4, %o0
 289 ENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp)
 290 ENTRY(memcpy_retl_o2_plus_o4_plus_56_fp)
 291         add     %o4, 56, %o4
 292         ba,pt   %xcc, __restore_asi_fp
 293          add    %o2, %o4, %o0
 294 ENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp)
 295 ENTRY(memcpy_retl_o2_plus_o4_plus_64_fp)
 296         add     %o4, 64, %o4
 297         ba,pt   %xcc, __restore_asi_fp
 298          add    %o2, %o4, %o0
 299 ENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp)
 300 ENTRY(memcpy_retl_o2_plus_o5_fp)
 301         ba,pt   %xcc, __restore_asi_fp
 302          add    %o2, %o5, %o0
 303 ENDPROC(memcpy_retl_o2_plus_o5_fp)
 304 ENTRY(memcpy_retl_o2_plus_o5_plus_64_fp)
 305         add     %o5, 64, %o5
 306         ba,pt   %xcc, __restore_asi_fp
 307          add    %o2, %o5, %o0
 308 ENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp)
 309 ENTRY(memcpy_retl_o2_plus_o5_plus_56_fp)
 310         add     %o5, 56, %o5
 311         ba,pt   %xcc, __restore_asi_fp
 312          add    %o2, %o5, %o0
 313 ENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp)
 314 ENTRY(memcpy_retl_o2_plus_o5_plus_48_fp)
 315         add     %o5, 48, %o5
 316         ba,pt   %xcc, __restore_asi_fp
 317          add    %o2, %o5, %o0
 318 ENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp)
 319 ENTRY(memcpy_retl_o2_plus_o5_plus_40_fp)
 320         add     %o5, 40, %o5
 321         ba,pt   %xcc, __restore_asi_fp
 322          add    %o2, %o5, %o0
 323 ENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp)
 324 ENTRY(memcpy_retl_o2_plus_o5_plus_32_fp)
 325         add     %o5, 32, %o5
 326         ba,pt   %xcc, __restore_asi_fp
 327          add    %o2, %o5, %o0
 328 ENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp)
 329 ENTRY(memcpy_retl_o2_plus_o5_plus_24_fp)
 330         add     %o5, 24, %o5
 331         ba,pt   %xcc, __restore_asi_fp
 332          add    %o2, %o5, %o0
 333 ENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp)
 334 ENTRY(memcpy_retl_o2_plus_o5_plus_16_fp)
 335         add     %o5, 16, %o5
 336         ba,pt   %xcc, __restore_asi_fp
 337          add    %o2, %o5, %o0
 338 ENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp)
 339 ENTRY(memcpy_retl_o2_plus_o5_plus_8_fp)
 340         add     %o5, 8, %o5
 341         ba,pt   %xcc, __restore_asi_fp
 342          add    %o2, %o5, %o0
 343 ENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp)
 344 
 345 #endif

/* [<][>][^][v][top][bottom][index][help] */