summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2004-04-16 19:26:37 +0000
committerjhb <jhb@FreeBSD.org>2004-04-16 19:26:37 +0000
commit9566eec4b512d8e968fe38d254a69c32b472f26c (patch)
tree05733ba3726f75829019066c1299acebcbfffbc3 /sys/i386/isa
parent1499f7edc5e949e8ab6aa24488640bb13929e7d2 (diff)
downloadFreeBSD-src-9566eec4b512d8e968fe38d254a69c32b472f26c.zip
FreeBSD-src-9566eec4b512d8e968fe38d254a69c32b472f26c.tar.gz
Use %eax rather than %ax when loading segment registers to avoid partial
register stalls. Reviewed by: bde (a while ago, and I think an earlier version)
Diffstat (limited to 'sys/i386/isa')
-rw-r--r--sys/i386/isa/atpic_vector.s12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/i386/isa/atpic_vector.s b/sys/i386/isa/atpic_vector.s
index 0f2c9e7..7cf4b7a 100644
--- a/sys/i386/isa/atpic_vector.s
+++ b/sys/i386/isa/atpic_vector.s
@@ -59,13 +59,13 @@ IDTVEC(vec_name) ; \
pushl %ds ; /* save data and extra segments ... */ \
pushl %es ; \
pushl %fs ; \
- mov $KDSEL,%ax ; /* load kernel ds, es and fs */ \
- mov %ax,%ds ; \
- mov %ax,%es ; \
- mov $KPSEL,%ax ; \
- mov %ax,%fs ; \
+ movl $KDSEL, %eax ; /* reload with kernel's data segment */ \
+ movl %eax, %ds ; \
+ movl %eax, %es ; \
+ movl $KPSEL, %eax ; /* reload with per-CPU data segment */ \
+ movl %eax, %fs ; \
; \
- FAKE_MCOUNT(13*4(%esp)) ; /* XXX late to avoid double count */ \
+ FAKE_MCOUNT(13*4(%esp)) ; \
pushl $irq_num; /* pass the IRQ */ \
call atpic_handle_intr ; \
addl $4, %esp ; /* discard the parameter */ \
OpenPOWER on IntegriCloud