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:
parent
7f14fd5312
commit
286bde0c9d
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user