Loading arch/sparc/include/asm/visasm.h +8 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,14 @@ 297: wr %o5, FPRS_FEF, %fprs; \ 298: #define VISEntryHalfFast(fail_label) \ rd %fprs, %o5; \ andcc %o5, FPRS_FEF, %g0; \ be,pt %icc, 297f; \ nop; \ ba,a,pt %xcc, fail_label; \ 297: wr %o5, FPRS_FEF, %fprs; #define VISExitHalf \ wr %o5, 0, %fprs; Loading arch/sparc/lib/NG4memcpy.S +13 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,10 @@ #endif #endif #if !defined(EX_LD) && !defined(EX_ST) #define NON_USER_COPY #endif #ifndef EX_LD #define EX_LD(x) x #endif Loading Loading @@ -197,9 +201,13 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ mov EX_RETVAL(%o3), %o0 .Llarge_src_unaligned: #ifdef NON_USER_COPY VISEntryHalfFast(.Lmedium_vis_entry_fail) #else VISEntryHalf #endif andn %o2, 0x3f, %o4 sub %o2, %o4, %o2 VISEntryHalf alignaddr %o1, %g0, %g1 add %o1, %o4, %o1 EX_LD(LOAD(ldd, %g1 + 0x00, %f0)) Loading Loading @@ -240,6 +248,10 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ nop ba,a,pt %icc, .Lmedium_unaligned #ifdef NON_USER_COPY .Lmedium_vis_entry_fail: or %o0, %o1, %g2 #endif .Lmedium: LOAD(prefetch, %o1 + 0x40, #n_reads_strong) andcc %g2, 0x7, %g0 Loading Loading
arch/sparc/include/asm/visasm.h +8 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,14 @@ 297: wr %o5, FPRS_FEF, %fprs; \ 298: #define VISEntryHalfFast(fail_label) \ rd %fprs, %o5; \ andcc %o5, FPRS_FEF, %g0; \ be,pt %icc, 297f; \ nop; \ ba,a,pt %xcc, fail_label; \ 297: wr %o5, FPRS_FEF, %fprs; #define VISExitHalf \ wr %o5, 0, %fprs; Loading
arch/sparc/lib/NG4memcpy.S +13 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,10 @@ #endif #endif #if !defined(EX_LD) && !defined(EX_ST) #define NON_USER_COPY #endif #ifndef EX_LD #define EX_LD(x) x #endif Loading Loading @@ -197,9 +201,13 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ mov EX_RETVAL(%o3), %o0 .Llarge_src_unaligned: #ifdef NON_USER_COPY VISEntryHalfFast(.Lmedium_vis_entry_fail) #else VISEntryHalf #endif andn %o2, 0x3f, %o4 sub %o2, %o4, %o2 VISEntryHalf alignaddr %o1, %g0, %g1 add %o1, %o4, %o1 EX_LD(LOAD(ldd, %g1 + 0x00, %f0)) Loading Loading @@ -240,6 +248,10 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ nop ba,a,pt %icc, .Lmedium_unaligned #ifdef NON_USER_COPY .Lmedium_vis_entry_fail: or %o0, %o1, %g2 #endif .Lmedium: LOAD(prefetch, %o1 + 0x40, #n_reads_strong) andcc %g2, 0x7, %g0 Loading