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