X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=arch%2Fblackfin%2Flib%2Fins.S;h=df7b8833a0c56abf7a5a4ad6df43253f006331c8;hb=1265edb8fd2869d17128f1d60683dd6f4191d550;hp=a17cc77ac36f2faefcf9ffa8d214691aa7682f2d;hpb=f79e3185dd0f8650022518d7624c876d8929061b;p=linux-2.6 diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S index a17cc77ac3..df7b8833a0 100644 --- a/arch/blackfin/lib/ins.S +++ b/arch/blackfin/lib/ins.S @@ -77,3 +77,22 @@ ENTRY(_insb) sti R3; RTS; ENDPROC(_insb) + + + +ENTRY(_insl_16) + P0 = R0; /* P0 = port */ + cli R3; + P1 = R1; /* P1 = address */ + P2 = R2; /* P2 = count */ + SSYNC; + LSETUP( .Llong16_loop_s, .Llong16_loop_e) LC0 = P2; +.Llong16_loop_s: R0 = [P0]; + W[P1++] = R0; + R0 = R0 >> 16; + W[P1++] = R0; + NOP; +.Llong16_loop_e: NOP; + sti R3; + RTS; +ENDPROC(_insl_16)