]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 284324,290164:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 11 Nov 2015 01:32:35 +0000 (01:32 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 11 Nov 2015 01:32:35 +0000 (01:32 +0000)
commit034058aa04eec66c00d6f7956aa5c7ec638eb750
treee3ff827d472df36acb14e1d6e06240194ee25406
parent6b0cef7f2f33d0955417413ea0027a31a6cef9a5
MFC 284324,290164:
Workaround debuggers that try to read the full 32-bit words holding
selectors in trapframes.

284324:
Ensure that the upper 16 bits of segment registers manually saved in
trapframes are cleared by explicitly pushing a zero and then moving
the segment register into the low 16 bits.  Certain Intel processors
treat a push of a segment register as a move of the segment register
into the low 16 bits leaving the upper 16 bits of the word in the
stack unchanged.

290164:
Use movw instead of movl (or plain mov) when moving segment registers
into memory.  This is a nop on clang's assembler, but some assemblers
complain if the size suffix is incorrect.

git-svn-id: svn://svn.freebsd.org/base/stable/10@290668 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/i386/i386/exception.s
sys/i386/include/asmacros.h