Back to home page

OSCL-LXR

 
 

    


0001 #ifndef __ASM_MEMCPY_UTILS
0002 #define __ASM_MEMCPY_UTILS
0003 
0004 #include <linux/linkage.h>
0005 #include <asm/asi.h>
0006 #include <asm/visasm.h>
0007 
0008 ENTRY(__restore_asi_fp)
0009     VISExitHalf
0010     retl
0011      wr %g0, ASI_AIUS, %asi
0012 ENDPROC(__restore_asi_fp)
0013 
0014 ENTRY(__restore_asi)
0015     retl
0016      wr %g0, ASI_AIUS, %asi
0017 ENDPROC(__restore_asi)
0018 
0019 ENTRY(memcpy_retl_o2)
0020     ba,pt   %xcc, __restore_asi
0021      mov    %o2, %o0
0022 ENDPROC(memcpy_retl_o2)
0023 ENTRY(memcpy_retl_o2_plus_1)
0024     ba,pt   %xcc, __restore_asi
0025      add    %o2, 1, %o0
0026 ENDPROC(memcpy_retl_o2_plus_1)
0027 ENTRY(memcpy_retl_o2_plus_3)
0028     ba,pt   %xcc, __restore_asi
0029      add    %o2, 3, %o0
0030 ENDPROC(memcpy_retl_o2_plus_3)
0031 ENTRY(memcpy_retl_o2_plus_4)
0032     ba,pt   %xcc, __restore_asi
0033      add    %o2, 4, %o0
0034 ENDPROC(memcpy_retl_o2_plus_4)
0035 ENTRY(memcpy_retl_o2_plus_5)
0036     ba,pt   %xcc, __restore_asi
0037      add    %o2, 5, %o0
0038 ENDPROC(memcpy_retl_o2_plus_5)
0039 ENTRY(memcpy_retl_o2_plus_6)
0040     ba,pt   %xcc, __restore_asi
0041      add    %o2, 6, %o0
0042 ENDPROC(memcpy_retl_o2_plus_6)
0043 ENTRY(memcpy_retl_o2_plus_7)
0044     ba,pt   %xcc, __restore_asi
0045      add    %o2, 7, %o0
0046 ENDPROC(memcpy_retl_o2_plus_7)
0047 ENTRY(memcpy_retl_o2_plus_8)
0048     ba,pt   %xcc, __restore_asi
0049      add    %o2, 8, %o0
0050 ENDPROC(memcpy_retl_o2_plus_8)
0051 ENTRY(memcpy_retl_o2_plus_15)
0052     ba,pt   %xcc, __restore_asi
0053      add    %o2, 15, %o0
0054 ENDPROC(memcpy_retl_o2_plus_15)
0055 ENTRY(memcpy_retl_o2_plus_15_8)
0056      add    %o2, 15, %o2
0057     ba,pt   %xcc, __restore_asi
0058      add    %o2, 8, %o0
0059 ENDPROC(memcpy_retl_o2_plus_15_8)
0060 ENTRY(memcpy_retl_o2_plus_16)
0061     ba,pt   %xcc, __restore_asi
0062      add    %o2, 16, %o0
0063 ENDPROC(memcpy_retl_o2_plus_16)
0064 ENTRY(memcpy_retl_o2_plus_24)
0065     ba,pt   %xcc, __restore_asi
0066      add    %o2, 24, %o0
0067 ENDPROC(memcpy_retl_o2_plus_24)
0068 ENTRY(memcpy_retl_o2_plus_31)
0069     ba,pt   %xcc, __restore_asi
0070      add    %o2, 31, %o0
0071 ENDPROC(memcpy_retl_o2_plus_31)
0072 ENTRY(memcpy_retl_o2_plus_32)
0073     ba,pt   %xcc, __restore_asi
0074      add    %o2, 32, %o0
0075 ENDPROC(memcpy_retl_o2_plus_32)
0076 ENTRY(memcpy_retl_o2_plus_31_32)
0077     add %o2, 31, %o2
0078     ba,pt   %xcc, __restore_asi
0079      add    %o2, 32, %o0
0080 ENDPROC(memcpy_retl_o2_plus_31_32)
0081 ENTRY(memcpy_retl_o2_plus_31_24)
0082     add %o2, 31, %o2
0083     ba,pt   %xcc, __restore_asi
0084      add    %o2, 24, %o0
0085 ENDPROC(memcpy_retl_o2_plus_31_24)
0086 ENTRY(memcpy_retl_o2_plus_31_16)
0087     add %o2, 31, %o2
0088     ba,pt   %xcc, __restore_asi
0089      add    %o2, 16, %o0
0090 ENDPROC(memcpy_retl_o2_plus_31_16)
0091 ENTRY(memcpy_retl_o2_plus_31_8)
0092     add %o2, 31, %o2
0093     ba,pt   %xcc, __restore_asi
0094      add    %o2, 8, %o0
0095 ENDPROC(memcpy_retl_o2_plus_31_8)
0096 ENTRY(memcpy_retl_o2_plus_63)
0097     ba,pt   %xcc, __restore_asi
0098      add    %o2, 63, %o0
0099 ENDPROC(memcpy_retl_o2_plus_63)
0100 ENTRY(memcpy_retl_o2_plus_63_64)
0101      add    %o2, 63, %o2
0102     ba,pt   %xcc, __restore_asi
0103      add    %o2, 64, %o0
0104 ENDPROC(memcpy_retl_o2_plus_63_64)
0105 ENTRY(memcpy_retl_o2_plus_63_56)
0106      add    %o2, 63, %o2
0107     ba,pt   %xcc, __restore_asi
0108      add    %o2, 56, %o0
0109 ENDPROC(memcpy_retl_o2_plus_63_56)
0110 ENTRY(memcpy_retl_o2_plus_63_48)
0111      add    %o2, 63, %o2
0112     ba,pt   %xcc, __restore_asi
0113      add    %o2, 48, %o0
0114 ENDPROC(memcpy_retl_o2_plus_63_48)
0115 ENTRY(memcpy_retl_o2_plus_63_40)
0116      add    %o2, 63, %o2
0117     ba,pt   %xcc, __restore_asi
0118      add    %o2, 40, %o0
0119 ENDPROC(memcpy_retl_o2_plus_63_40)
0120 ENTRY(memcpy_retl_o2_plus_63_32)
0121      add    %o2, 63, %o2
0122     ba,pt   %xcc, __restore_asi
0123      add    %o2, 32, %o0
0124 ENDPROC(memcpy_retl_o2_plus_63_32)
0125 ENTRY(memcpy_retl_o2_plus_63_24)
0126      add    %o2, 63, %o2
0127     ba,pt   %xcc, __restore_asi
0128      add    %o2, 24, %o0
0129 ENDPROC(memcpy_retl_o2_plus_63_24)
0130 ENTRY(memcpy_retl_o2_plus_63_16)
0131      add    %o2, 63, %o2
0132     ba,pt   %xcc, __restore_asi
0133      add    %o2, 16, %o0
0134 ENDPROC(memcpy_retl_o2_plus_63_16)
0135 ENTRY(memcpy_retl_o2_plus_63_8)
0136      add    %o2, 63, %o2
0137     ba,pt   %xcc, __restore_asi
0138      add    %o2, 8, %o0
0139 ENDPROC(memcpy_retl_o2_plus_63_8)
0140 ENTRY(memcpy_retl_o2_plus_o5)
0141     ba,pt   %xcc, __restore_asi
0142      add    %o2, %o5, %o0
0143 ENDPROC(memcpy_retl_o2_plus_o5)
0144 ENTRY(memcpy_retl_o2_plus_o5_plus_1)
0145     add %o5, 1, %o5
0146     ba,pt   %xcc, __restore_asi
0147      add    %o2, %o5, %o0
0148 ENDPROC(memcpy_retl_o2_plus_o5_plus_1)
0149 ENTRY(memcpy_retl_o2_plus_o5_plus_4)
0150     add %o5, 4, %o5
0151     ba,pt   %xcc, __restore_asi
0152      add    %o2, %o5, %o0
0153 ENDPROC(memcpy_retl_o2_plus_o5_plus_4)
0154 ENTRY(memcpy_retl_o2_plus_o5_plus_8)
0155     add %o5, 8, %o5
0156     ba,pt   %xcc, __restore_asi
0157      add    %o2, %o5, %o0
0158 ENDPROC(memcpy_retl_o2_plus_o5_plus_8)
0159 ENTRY(memcpy_retl_o2_plus_o5_plus_16)
0160     add %o5, 16, %o5
0161     ba,pt   %xcc, __restore_asi
0162      add    %o2, %o5, %o0
0163 ENDPROC(memcpy_retl_o2_plus_o5_plus_16)
0164 ENTRY(memcpy_retl_o2_plus_o5_plus_24)
0165     add %o5, 24, %o5
0166     ba,pt   %xcc, __restore_asi
0167      add    %o2, %o5, %o0
0168 ENDPROC(memcpy_retl_o2_plus_o5_plus_24)
0169 ENTRY(memcpy_retl_o2_plus_o5_plus_32)
0170     add %o5, 32, %o5
0171     ba,pt   %xcc, __restore_asi
0172      add    %o2, %o5, %o0
0173 ENDPROC(memcpy_retl_o2_plus_o5_plus_32)
0174 ENTRY(memcpy_retl_o2_plus_o5_64)
0175     add %o5, 32, %o5
0176     ba,pt   %xcc, __restore_asi
0177      add    %o2, %o5, %o0
0178 ENDPROC(memcpy_retl_o2_plus_o5_64)
0179 ENTRY(memcpy_retl_o2_plus_g1)
0180     ba,pt   %xcc, __restore_asi
0181      add    %o2, %g1, %o0
0182 ENDPROC(memcpy_retl_o2_plus_g1)
0183 ENTRY(memcpy_retl_o2_plus_g1_plus_1)
0184     add %g1, 1, %g1
0185     ba,pt   %xcc, __restore_asi
0186      add    %o2, %g1, %o0
0187 ENDPROC(memcpy_retl_o2_plus_g1_plus_1)
0188 ENTRY(memcpy_retl_o2_plus_g1_plus_8)
0189     add %g1, 8, %g1
0190     ba,pt   %xcc, __restore_asi
0191      add    %o2, %g1, %o0
0192 ENDPROC(memcpy_retl_o2_plus_g1_plus_8)
0193 ENTRY(memcpy_retl_o2_plus_o4)
0194     ba,pt   %xcc, __restore_asi
0195      add    %o2, %o4, %o0
0196 ENDPROC(memcpy_retl_o2_plus_o4)
0197 ENTRY(memcpy_retl_o2_plus_o4_plus_8)
0198     add %o4, 8, %o4
0199     ba,pt   %xcc, __restore_asi
0200      add    %o2, %o4, %o0
0201 ENDPROC(memcpy_retl_o2_plus_o4_plus_8)
0202 ENTRY(memcpy_retl_o2_plus_o4_plus_16)
0203     add %o4, 16, %o4
0204     ba,pt   %xcc, __restore_asi
0205      add    %o2, %o4, %o0
0206 ENDPROC(memcpy_retl_o2_plus_o4_plus_16)
0207 ENTRY(memcpy_retl_o2_plus_o4_plus_24)
0208     add %o4, 24, %o4
0209     ba,pt   %xcc, __restore_asi
0210      add    %o2, %o4, %o0
0211 ENDPROC(memcpy_retl_o2_plus_o4_plus_24)
0212 ENTRY(memcpy_retl_o2_plus_o4_plus_32)
0213     add %o4, 32, %o4
0214     ba,pt   %xcc, __restore_asi
0215      add    %o2, %o4, %o0
0216 ENDPROC(memcpy_retl_o2_plus_o4_plus_32)
0217 ENTRY(memcpy_retl_o2_plus_o4_plus_40)
0218     add %o4, 40, %o4
0219     ba,pt   %xcc, __restore_asi
0220      add    %o2, %o4, %o0
0221 ENDPROC(memcpy_retl_o2_plus_o4_plus_40)
0222 ENTRY(memcpy_retl_o2_plus_o4_plus_48)
0223     add %o4, 48, %o4
0224     ba,pt   %xcc, __restore_asi
0225      add    %o2, %o4, %o0
0226 ENDPROC(memcpy_retl_o2_plus_o4_plus_48)
0227 ENTRY(memcpy_retl_o2_plus_o4_plus_56)
0228     add %o4, 56, %o4
0229     ba,pt   %xcc, __restore_asi
0230      add    %o2, %o4, %o0
0231 ENDPROC(memcpy_retl_o2_plus_o4_plus_56)
0232 ENTRY(memcpy_retl_o2_plus_o4_plus_64)
0233     add %o4, 64, %o4
0234     ba,pt   %xcc, __restore_asi
0235      add    %o2, %o4, %o0
0236 ENDPROC(memcpy_retl_o2_plus_o4_plus_64)
0237 ENTRY(memcpy_retl_o2_plus_o5_plus_64)
0238     add %o5, 64, %o5
0239     ba,pt   %xcc, __restore_asi
0240      add    %o2, %o5, %o0
0241 ENDPROC(memcpy_retl_o2_plus_o5_plus_64)
0242 ENTRY(memcpy_retl_o2_plus_o3_fp)
0243     ba,pt   %xcc, __restore_asi_fp
0244      add    %o2, %o3, %o0
0245 ENDPROC(memcpy_retl_o2_plus_o3_fp)
0246 ENTRY(memcpy_retl_o2_plus_o3_plus_1_fp)
0247     add %o3, 1, %o3
0248     ba,pt   %xcc, __restore_asi_fp
0249      add    %o2, %o3, %o0
0250 ENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp)
0251 ENTRY(memcpy_retl_o2_plus_o3_plus_4_fp)
0252     add %o3, 4, %o3
0253     ba,pt   %xcc, __restore_asi_fp
0254      add    %o2, %o3, %o0
0255 ENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp)
0256 ENTRY(memcpy_retl_o2_plus_o4_fp)
0257     ba,pt   %xcc, __restore_asi_fp
0258      add    %o2, %o4, %o0
0259 ENDPROC(memcpy_retl_o2_plus_o4_fp)
0260 ENTRY(memcpy_retl_o2_plus_o4_plus_8_fp)
0261     add %o4, 8, %o4
0262     ba,pt   %xcc, __restore_asi_fp
0263      add    %o2, %o4, %o0
0264 ENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp)
0265 ENTRY(memcpy_retl_o2_plus_o4_plus_16_fp)
0266     add %o4, 16, %o4
0267     ba,pt   %xcc, __restore_asi_fp
0268      add    %o2, %o4, %o0
0269 ENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp)
0270 ENTRY(memcpy_retl_o2_plus_o4_plus_24_fp)
0271     add %o4, 24, %o4
0272     ba,pt   %xcc, __restore_asi_fp
0273      add    %o2, %o4, %o0
0274 ENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp)
0275 ENTRY(memcpy_retl_o2_plus_o4_plus_32_fp)
0276     add %o4, 32, %o4
0277     ba,pt   %xcc, __restore_asi_fp
0278      add    %o2, %o4, %o0
0279 ENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp)
0280 ENTRY(memcpy_retl_o2_plus_o4_plus_40_fp)
0281     add %o4, 40, %o4
0282     ba,pt   %xcc, __restore_asi_fp
0283      add    %o2, %o4, %o0
0284 ENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp)
0285 ENTRY(memcpy_retl_o2_plus_o4_plus_48_fp)
0286     add %o4, 48, %o4
0287     ba,pt   %xcc, __restore_asi_fp
0288      add    %o2, %o4, %o0
0289 ENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp)
0290 ENTRY(memcpy_retl_o2_plus_o4_plus_56_fp)
0291     add %o4, 56, %o4
0292     ba,pt   %xcc, __restore_asi_fp
0293      add    %o2, %o4, %o0
0294 ENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp)
0295 ENTRY(memcpy_retl_o2_plus_o4_plus_64_fp)
0296     add %o4, 64, %o4
0297     ba,pt   %xcc, __restore_asi_fp
0298      add    %o2, %o4, %o0
0299 ENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp)
0300 ENTRY(memcpy_retl_o2_plus_o5_fp)
0301     ba,pt   %xcc, __restore_asi_fp
0302      add    %o2, %o5, %o0
0303 ENDPROC(memcpy_retl_o2_plus_o5_fp)
0304 ENTRY(memcpy_retl_o2_plus_o5_plus_64_fp)
0305     add %o5, 64, %o5
0306     ba,pt   %xcc, __restore_asi_fp
0307      add    %o2, %o5, %o0
0308 ENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp)
0309 ENTRY(memcpy_retl_o2_plus_o5_plus_56_fp)
0310     add %o5, 56, %o5
0311     ba,pt   %xcc, __restore_asi_fp
0312      add    %o2, %o5, %o0
0313 ENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp)
0314 ENTRY(memcpy_retl_o2_plus_o5_plus_48_fp)
0315     add %o5, 48, %o5
0316     ba,pt   %xcc, __restore_asi_fp
0317      add    %o2, %o5, %o0
0318 ENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp)
0319 ENTRY(memcpy_retl_o2_plus_o5_plus_40_fp)
0320     add %o5, 40, %o5
0321     ba,pt   %xcc, __restore_asi_fp
0322      add    %o2, %o5, %o0
0323 ENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp)
0324 ENTRY(memcpy_retl_o2_plus_o5_plus_32_fp)
0325     add %o5, 32, %o5
0326     ba,pt   %xcc, __restore_asi_fp
0327      add    %o2, %o5, %o0
0328 ENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp)
0329 ENTRY(memcpy_retl_o2_plus_o5_plus_24_fp)
0330     add %o5, 24, %o5
0331     ba,pt   %xcc, __restore_asi_fp
0332      add    %o2, %o5, %o0
0333 ENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp)
0334 ENTRY(memcpy_retl_o2_plus_o5_plus_16_fp)
0335     add %o5, 16, %o5
0336     ba,pt   %xcc, __restore_asi_fp
0337      add    %o2, %o5, %o0
0338 ENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp)
0339 ENTRY(memcpy_retl_o2_plus_o5_plus_8_fp)
0340     add %o5, 8, %o5
0341     ba,pt   %xcc, __restore_asi_fp
0342      add    %o2, %o5, %o0
0343 ENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp)
0344 
0345 #endif