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_o3) 141 ba,pt %xcc, __restore_asi 142 add %o2, %o3, %o0 143ENDPROC(memcpy_retl_o2_plus_o3) 144ENTRY(memcpy_retl_o2_plus_o3_plus_1) 145 add %o3, 1, %o3 146 ba,pt %xcc, __restore_asi 147 add %o2, %o3, %o0 148ENDPROC(memcpy_retl_o2_plus_o3_plus_1) 149ENTRY(memcpy_retl_o2_plus_o5) 150 ba,pt %xcc, __restore_asi 151 add %o2, %o5, %o0 152ENDPROC(memcpy_retl_o2_plus_o5) 153ENTRY(memcpy_retl_o2_plus_o5_plus_1) 154 add %o5, 1, %o5 155 ba,pt %xcc, __restore_asi 156 add %o2, %o5, %o0 157ENDPROC(memcpy_retl_o2_plus_o5_plus_1) 158ENTRY(memcpy_retl_o2_plus_o5_plus_4) 159 add %o5, 4, %o5 160 ba,pt %xcc, __restore_asi 161 add %o2, %o5, %o0 162ENDPROC(memcpy_retl_o2_plus_o5_plus_4) 163ENTRY(memcpy_retl_o2_plus_o5_plus_8) 164 add %o5, 8, %o5 165 ba,pt %xcc, __restore_asi 166 add %o2, %o5, %o0 167ENDPROC(memcpy_retl_o2_plus_o5_plus_8) 168ENTRY(memcpy_retl_o2_plus_o5_plus_16) 169 add %o5, 16, %o5 170 ba,pt %xcc, __restore_asi 171 add %o2, %o5, %o0 172ENDPROC(memcpy_retl_o2_plus_o5_plus_16) 173ENTRY(memcpy_retl_o2_plus_o5_plus_24) 174 add %o5, 24, %o5 175 ba,pt %xcc, __restore_asi 176 add %o2, %o5, %o0 177ENDPROC(memcpy_retl_o2_plus_o5_plus_24) 178ENTRY(memcpy_retl_o2_plus_o5_plus_32) 179 add %o5, 32, %o5 180 ba,pt %xcc, __restore_asi 181 add %o2, %o5, %o0 182ENDPROC(memcpy_retl_o2_plus_o5_plus_32) 183ENTRY(memcpy_retl_o2_plus_o5_64) 184 add %o5, 32, %o5 185 ba,pt %xcc, __restore_asi 186 add %o2, %o5, %o0 187ENDPROC(memcpy_retl_o2_plus_o5_64) 188ENTRY(memcpy_retl_o2_plus_g1) 189 ba,pt %xcc, __restore_asi 190 add %o2, %g1, %o0 191ENDPROC(memcpy_retl_o2_plus_g1) 192ENTRY(memcpy_retl_o2_plus_g1_plus_1) 193 add %g1, 1, %g1 194 ba,pt %xcc, __restore_asi 195 add %o2, %g1, %o0 196ENDPROC(memcpy_retl_o2_plus_g1_plus_1) 197ENTRY(memcpy_retl_o2_plus_g1_plus_8) 198 add %g1, 8, %g1 199 ba,pt %xcc, __restore_asi 200 add %o2, %g1, %o0 201ENDPROC(memcpy_retl_o2_plus_g1_plus_8) 202ENTRY(memcpy_retl_o2_plus_o4) 203 ba,pt %xcc, __restore_asi 204 add %o2, %o4, %o0 205ENDPROC(memcpy_retl_o2_plus_o4) 206ENTRY(memcpy_retl_o2_plus_o4_plus_8) 207 add %o4, 8, %o4 208 ba,pt %xcc, __restore_asi 209 add %o2, %o4, %o0 210ENDPROC(memcpy_retl_o2_plus_o4_plus_8) 211ENTRY(memcpy_retl_o2_plus_o4_plus_16) 212 add %o4, 16, %o4 213 ba,pt %xcc, __restore_asi 214 add %o2, %o4, %o0 215ENDPROC(memcpy_retl_o2_plus_o4_plus_16) 216ENTRY(memcpy_retl_o2_plus_o4_plus_24) 217 add %o4, 24, %o4 218 ba,pt %xcc, __restore_asi 219 add %o2, %o4, %o0 220ENDPROC(memcpy_retl_o2_plus_o4_plus_24) 221ENTRY(memcpy_retl_o2_plus_o4_plus_32) 222 add %o4, 32, %o4 223 ba,pt %xcc, __restore_asi 224 add %o2, %o4, %o0 225ENDPROC(memcpy_retl_o2_plus_o4_plus_32) 226ENTRY(memcpy_retl_o2_plus_o4_plus_40) 227 add %o4, 40, %o4 228 ba,pt %xcc, __restore_asi 229 add %o2, %o4, %o0 230ENDPROC(memcpy_retl_o2_plus_o4_plus_40) 231ENTRY(memcpy_retl_o2_plus_o4_plus_48) 232 add %o4, 48, %o4 233 ba,pt %xcc, __restore_asi 234 add %o2, %o4, %o0 235ENDPROC(memcpy_retl_o2_plus_o4_plus_48) 236ENTRY(memcpy_retl_o2_plus_o4_plus_56) 237 add %o4, 56, %o4 238 ba,pt %xcc, __restore_asi 239 add %o2, %o4, %o0 240ENDPROC(memcpy_retl_o2_plus_o4_plus_56) 241ENTRY(memcpy_retl_o2_plus_o4_plus_64) 242 add %o4, 64, %o4 243 ba,pt %xcc, __restore_asi 244 add %o2, %o4, %o0 245ENDPROC(memcpy_retl_o2_plus_o4_plus_64) 246ENTRY(memcpy_retl_o2_plus_o5_plus_64) 247 add %o5, 64, %o5 248 ba,pt %xcc, __restore_asi 249 add %o2, %o5, %o0 250ENDPROC(memcpy_retl_o2_plus_o5_plus_64) 251ENTRY(memcpy_retl_o2_plus_o3_fp) 252 ba,pt %xcc, __restore_asi_fp 253 add %o2, %o3, %o0 254ENDPROC(memcpy_retl_o2_plus_o3_fp) 255ENTRY(memcpy_retl_o2_plus_o3_plus_1_fp) 256 add %o3, 1, %o3 257 ba,pt %xcc, __restore_asi_fp 258 add %o2, %o3, %o0 259ENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp) 260ENTRY(memcpy_retl_o2_plus_o3_plus_4_fp) 261 add %o3, 4, %o3 262 ba,pt %xcc, __restore_asi_fp 263 add %o2, %o3, %o0 264ENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp) 265ENTRY(memcpy_retl_o2_plus_o4_fp) 266 ba,pt %xcc, __restore_asi_fp 267 add %o2, %o4, %o0 268ENDPROC(memcpy_retl_o2_plus_o4_fp) 269ENTRY(memcpy_retl_o2_plus_o4_plus_8_fp) 270 add %o4, 8, %o4 271 ba,pt %xcc, __restore_asi_fp 272 add %o2, %o4, %o0 273ENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp) 274ENTRY(memcpy_retl_o2_plus_o4_plus_16_fp) 275 add %o4, 16, %o4 276 ba,pt %xcc, __restore_asi_fp 277 add %o2, %o4, %o0 278ENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp) 279ENTRY(memcpy_retl_o2_plus_o4_plus_24_fp) 280 add %o4, 24, %o4 281 ba,pt %xcc, __restore_asi_fp 282 add %o2, %o4, %o0 283ENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp) 284ENTRY(memcpy_retl_o2_plus_o4_plus_32_fp) 285 add %o4, 32, %o4 286 ba,pt %xcc, __restore_asi_fp 287 add %o2, %o4, %o0 288ENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp) 289ENTRY(memcpy_retl_o2_plus_o4_plus_40_fp) 290 add %o4, 40, %o4 291 ba,pt %xcc, __restore_asi_fp 292 add %o2, %o4, %o0 293ENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp) 294ENTRY(memcpy_retl_o2_plus_o4_plus_48_fp) 295 add %o4, 48, %o4 296 ba,pt %xcc, __restore_asi_fp 297 add %o2, %o4, %o0 298ENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp) 299ENTRY(memcpy_retl_o2_plus_o4_plus_56_fp) 300 add %o4, 56, %o4 301 ba,pt %xcc, __restore_asi_fp 302 add %o2, %o4, %o0 303ENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp) 304ENTRY(memcpy_retl_o2_plus_o4_plus_64_fp) 305 add %o4, 64, %o4 306 ba,pt %xcc, __restore_asi_fp 307 add %o2, %o4, %o0 308ENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp) 309ENTRY(memcpy_retl_o2_plus_o5_fp) 310 ba,pt %xcc, __restore_asi_fp 311 add %o2, %o5, %o0 312ENDPROC(memcpy_retl_o2_plus_o5_fp) 313ENTRY(memcpy_retl_o2_plus_o5_plus_64_fp) 314 add %o5, 64, %o5 315 ba,pt %xcc, __restore_asi_fp 316 add %o2, %o5, %o0 317ENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp) 318ENTRY(memcpy_retl_o2_plus_o5_plus_56_fp) 319 add %o5, 56, %o5 320 ba,pt %xcc, __restore_asi_fp 321 add %o2, %o5, %o0 322ENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp) 323ENTRY(memcpy_retl_o2_plus_o5_plus_48_fp) 324 add %o5, 48, %o5 325 ba,pt %xcc, __restore_asi_fp 326 add %o2, %o5, %o0 327ENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp) 328ENTRY(memcpy_retl_o2_plus_o5_plus_40_fp) 329 add %o5, 40, %o5 330 ba,pt %xcc, __restore_asi_fp 331 add %o2, %o5, %o0 332ENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp) 333ENTRY(memcpy_retl_o2_plus_o5_plus_32_fp) 334 add %o5, 32, %o5 335 ba,pt %xcc, __restore_asi_fp 336 add %o2, %o5, %o0 337ENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp) 338ENTRY(memcpy_retl_o2_plus_o5_plus_24_fp) 339 add %o5, 24, %o5 340 ba,pt %xcc, __restore_asi_fp 341 add %o2, %o5, %o0 342ENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp) 343ENTRY(memcpy_retl_o2_plus_o5_plus_16_fp) 344 add %o5, 16, %o5 345 ba,pt %xcc, __restore_asi_fp 346 add %o2, %o5, %o0 347ENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp) 348ENTRY(memcpy_retl_o2_plus_o5_plus_8_fp) 349 add %o5, 8, %o5 350 ba,pt %xcc, __restore_asi_fp 351 add %o2, %o5, %o0 352ENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp) 353 354#endif 355