From 8ab891c5ba16dbf352b8218a72e10761388ef9f5 Mon Sep 17 00:00:00 2001 From: ats Date: Tue, 3 May 1994 00:00:53 +0000 Subject: Add two routines insl and outsl, that should do 32bit string ins and outs. Both are completely untested in the moment. They are used from the if_ep.c driver for the EISA card. --- sys/amd64/amd64/support.S | 28 +++++++++++++++++++++++++++- sys/amd64/amd64/support.s | 28 +++++++++++++++++++++++++++- sys/i386/i386/support.s | 28 +++++++++++++++++++++++++++- 3 files changed, 81 insertions(+), 3 deletions(-) (limited to 'sys') diff --git a/sys/amd64/amd64/support.S b/sys/amd64/amd64/support.S index 1a2b9cb..e808222 100644 --- a/sys/amd64/amd64/support.S +++ b/sys/amd64/amd64/support.S @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: support.s,v 1.5 1994/03/07 11:47:32 davidg Exp $ + * $Id: support.s,v 1.6 1994/04/02 07:00:29 davidg Exp $ */ #include "assym.s" /* system definitions */ @@ -99,6 +99,19 @@ ENTRY(insw) /* insw(port, addr, cnt) */ popl %edi ret +ENTRY(insl) /* insl(port, addr, cnt) */ + pushl %edi + movw 8(%esp),%dx + movl 12(%esp),%edi + movl 16(%esp),%ecx + cld + rep + insl + NOP + movl %edi,%eax + popl %edi + ret + ENTRY(rtcin) /* rtcin(val) */ movl 4(%esp),%eax outb %al,$0x70 @@ -148,6 +161,19 @@ ENTRY(outsw) /* outsw(port, addr, cnt) */ popl %esi ret +ENTRY(outsl) /* outsl(port, addr, cnt) */ + pushl %esi + movw 8(%esp),%dx + movl 12(%esp),%esi + movl 16(%esp),%ecx + cld + rep + outsl + NOP + movl %esi,%eax + popl %esi + ret + /* * bcopy family */ diff --git a/sys/amd64/amd64/support.s b/sys/amd64/amd64/support.s index 1a2b9cb..e808222 100644 --- a/sys/amd64/amd64/support.s +++ b/sys/amd64/amd64/support.s @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: support.s,v 1.5 1994/03/07 11:47:32 davidg Exp $ + * $Id: support.s,v 1.6 1994/04/02 07:00:29 davidg Exp $ */ #include "assym.s" /* system definitions */ @@ -99,6 +99,19 @@ ENTRY(insw) /* insw(port, addr, cnt) */ popl %edi ret +ENTRY(insl) /* insl(port, addr, cnt) */ + pushl %edi + movw 8(%esp),%dx + movl 12(%esp),%edi + movl 16(%esp),%ecx + cld + rep + insl + NOP + movl %edi,%eax + popl %edi + ret + ENTRY(rtcin) /* rtcin(val) */ movl 4(%esp),%eax outb %al,$0x70 @@ -148,6 +161,19 @@ ENTRY(outsw) /* outsw(port, addr, cnt) */ popl %esi ret +ENTRY(outsl) /* outsl(port, addr, cnt) */ + pushl %esi + movw 8(%esp),%dx + movl 12(%esp),%esi + movl 16(%esp),%ecx + cld + rep + outsl + NOP + movl %esi,%eax + popl %esi + ret + /* * bcopy family */ diff --git a/sys/i386/i386/support.s b/sys/i386/i386/support.s index 1a2b9cb..e808222 100644 --- a/sys/i386/i386/support.s +++ b/sys/i386/i386/support.s @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: support.s,v 1.5 1994/03/07 11:47:32 davidg Exp $ + * $Id: support.s,v 1.6 1994/04/02 07:00:29 davidg Exp $ */ #include "assym.s" /* system definitions */ @@ -99,6 +99,19 @@ ENTRY(insw) /* insw(port, addr, cnt) */ popl %edi ret +ENTRY(insl) /* insl(port, addr, cnt) */ + pushl %edi + movw 8(%esp),%dx + movl 12(%esp),%edi + movl 16(%esp),%ecx + cld + rep + insl + NOP + movl %edi,%eax + popl %edi + ret + ENTRY(rtcin) /* rtcin(val) */ movl 4(%esp),%eax outb %al,$0x70 @@ -148,6 +161,19 @@ ENTRY(outsw) /* outsw(port, addr, cnt) */ popl %esi ret +ENTRY(outsl) /* outsl(port, addr, cnt) */ + pushl %esi + movw 8(%esp),%dx + movl 12(%esp),%esi + movl 16(%esp),%ecx + cld + rep + outsl + NOP + movl %esi,%eax + popl %esi + ret + /* * bcopy family */ -- cgit v1.1