Quick fix for a pessimization in rev.1.194. An extra i/o instruction

was added to the fast path to support the COM_IIR_RXRDYBUG() case even
when that case is not configured.  This increased the relative overhead
of sio input by almost 25% in the worst case and by 2-3% in the usual
case (usually only about 0.2% absolute per port at 115200 bps).  The
quick fix is to significantly pessimize only the COM_IIR_RXRDYBUG()
case.
This commit is contained in:
Bruce Evans 2003-09-15 13:49:18 +00:00
parent 56c5b842f0
commit 7c24ca50f8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=120091

View File

@ -1770,8 +1770,13 @@ siointr1(com)
u_char int_ctl;
u_char int_ctl_new;
int_ctl = inb(com->intr_ctl_port);
int_ctl_new = int_ctl;
if (COM_IIR_TXRDYBUG(com->flags)) {
int_ctl = inb(com->intr_ctl_port);
int_ctl_new = int_ctl;
} else {
int_ctl = 0;
int_ctl_new = 0;
}
while (!com->gone) {
if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {