diff options
Diffstat (limited to 'arch/blackfin/lib/ins.S')
-rw-r--r-- | arch/blackfin/lib/ins.S | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S index a17cc77ac36f..df7b8833a0c5 100644 --- a/arch/blackfin/lib/ins.S +++ b/arch/blackfin/lib/ins.S | |||
@@ -77,3 +77,22 @@ ENTRY(_insb) | |||
77 | sti R3; | 77 | sti R3; |
78 | RTS; | 78 | RTS; |
79 | ENDPROC(_insb) | 79 | ENDPROC(_insb) |
80 | |||
81 | |||
82 | |||
83 | ENTRY(_insl_16) | ||
84 | P0 = R0; /* P0 = port */ | ||
85 | cli R3; | ||
86 | P1 = R1; /* P1 = address */ | ||
87 | P2 = R2; /* P2 = count */ | ||
88 | SSYNC; | ||
89 | LSETUP( .Llong16_loop_s, .Llong16_loop_e) LC0 = P2; | ||
90 | .Llong16_loop_s: R0 = [P0]; | ||
91 | W[P1++] = R0; | ||
92 | R0 = R0 >> 16; | ||
93 | W[P1++] = R0; | ||
94 | NOP; | ||
95 | .Llong16_loop_e: NOP; | ||
96 | sti R3; | ||
97 | RTS; | ||
98 | ENDPROC(_insl_16) | ||