diff options
author | jkoshy <jkoshy@FreeBSD.org> | 2008-12-14 09:06:28 +0000 |
---|---|---|
committer | jkoshy <jkoshy@FreeBSD.org> | 2008-12-14 09:06:28 +0000 |
commit | 62d6b4ab63c0ab8d1ae82a778672927f0a1b6b70 (patch) | |
tree | faa42f003457633264d4b909aeb9b8191777eaa4 /sys/amd64/amd64/exception.S | |
parent | 3d479167c5e2fbfd86505a5c2aeedda62323cc7d (diff) | |
download | FreeBSD-src-62d6b4ab63c0ab8d1ae82a778672927f0a1b6b70.zip FreeBSD-src-62d6b4ab63c0ab8d1ae82a778672927f0a1b6b70.tar.gz |
Bug fix: %ebx needs to be preserved in the user callchain capture
path.
Diffstat (limited to 'sys/amd64/amd64/exception.S')
-rw-r--r-- | sys/amd64/amd64/exception.S | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/amd64/amd64/exception.S b/sys/amd64/amd64/exception.S index e211cfd..80308a9 100644 --- a/sys/amd64/amd64/exception.S +++ b/sys/amd64/amd64/exception.S @@ -459,9 +459,9 @@ nmi_calltrap: */ movq %rsp,%rsi /* source stack pointer */ movq $TF_SIZE,%rcx - movq PCPU(RSP0),%rbx - subq %rcx,%rbx - movq %rbx,%rdi /* destination stack pointer */ + movq PCPU(RSP0),%rdx + subq %rcx,%rdx + movq %rdx,%rdi /* destination stack pointer */ shrq $3,%rcx /* trap frame size in long words */ cld @@ -470,7 +470,7 @@ nmi_calltrap: movl %ss,%eax pushq %rax /* tf_ss */ - pushq %rbx /* tf_rsp (on kernel stack) */ + pushq %rdx /* tf_rsp (on kernel stack) */ pushfq /* tf_rflags */ movl %cs,%eax pushq %rax /* tf_cs */ |