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