freebsd-skq/sys/amd64
Konstantin Belousov 2d5db3709b The makectx() function, used by kdb_trap() to reconstruct pcb from
trap frame when trap initiated kdb entry, incorrectly calculated the
value of %rsp for trapped thread.

According to Intel(R) 64 and IA-32 Architectures Software Developer's Manual
Volume 3A: System Programming Guide, Part 1, rev. 035, 6.14.2 64-Bit Mode
Stack Frame, "64-bit mode ... pushes SS:RSP unconditionally, rather than
only on a CPL change."
Even assuming the conditional push of the %ss:%rsp, the calculation
was still wrong because sizeof(tf_ss) + sizeof(tf_rsp) == 16 on amd64.

Always use the tf_rsp from trap frame. The change supposedly fixes
stepping when using kgdb backend for kdb.

Submitted by:	Zhouyi Zhou <zhouzhouyi gmail com>
PR:	amd64/151167
Reviewed by:	avg
MFC after:	1 week
2010-10-03 13:52:17 +00:00
..
acpica Reset switchtime to zero rather than the current CPU ticker (TSC) value. 2010-08-13 22:08:42 +00:00
amd64 The makectx() function, used by kdb_trap() to reconstruct pcb from 2010-10-03 13:52:17 +00:00
compile
conf Now userland POSIX semaphore is based on umtx. The kernel module 2010-09-24 09:04:16 +00:00
ia32 Remove unused KTRACE includes. 2010-08-19 16:41:27 +00:00
include amd64: reduce VM_KMEM_SIZE_SCALE to 1 allowing kernel to use more memory 2010-09-17 07:36:32 +00:00
linux32 The interpreter name should no longer be treated as a buffer that can be 2010-07-28 04:47:40 +00:00
pci number of cleanups in i386 and amd64 pci md code 2009-09-24 07:11:23 +00:00
Makefile Adjustments to make a tags file a bit more suitable to amd64. 2008-12-01 14:15:10 +00:00