From: "Jan Beulich" <JBeulich@novell.com>
To: <linux-kernel@vger.kernel.org>
Subject: [PATCH 23/39] NLKD/x86 - core
Date: Wed, 09 Nov 2005 15:19:41 +0100 [thread overview]
Message-ID: <4372138D.76F0.0078.0@novell.com> (raw)
In-Reply-To: 4372135F.76F0.0078.0@novell.com
[-- Attachment #1: Type: text/plain, Size: 122 bytes --]
The core x86 (32- and 64-bit) NLKD additions.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
(actual patch attached)
[-- Attachment #2: nlkd-x86.patch --]
[-- Type: application/octet-stream, Size: 7229 bytes --]
The core x86 (32- and 64-bit) NLKD additions.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
Index: 2.6.14-nlkd/debug/nlkd/asm-x86.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.6.14-nlkd/debug/nlkd/asm-x86.h 2005-11-03 12:14:32.000000000 +0100
@@ -0,0 +1,290 @@
+/*****************************************************************************
+ *
+ * File Name: asm-x86.h
+ * Created by: Jan Beulich
+ * %version: 2 %
+ * %derived_by: jbeulich %
+ * %date_modified: Thu Nov 03 04:14:19 2005 %
+ *
+ *****************************************************************************/
+/*****************************************************************************
+ * *
+ * Copyright (c) 2002-2005 Novell, Inc. All Rights Reserved. *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of version 2 of the GNU General Public License *
+ * as published by the Free Software Foundation. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, contact Novell, Inc. *
+ * *
+ * To contact Novell about this file by physical or electronic mail, *
+ * you may find current contact information at www.novell.com. *
+ * *
+ *****************************************************************************/
+/*****************************************************************************
+ *
+ * File Description:
+ *
+ *****************************************************************************/
+
+.intel_syntax noprefix
+.altmacro
+
+.equiv TRUE, 1
+.equiv FALSE, 0
+
+.equiv byte, 1
+.equiv word, 2
+.equiv dword, 4
+.equiv fword, 6
+.equiv qword, 8
+.equiv tbyte, 10
+.equiv oword, 16
+.equiv xmmword, 16
+
+.macro .extproc name
+ .global name
+ .type name, @function
+.endm
+
+.macro .locproc name
+ .type name, @function
+ .align PROCEDURE_ALIGN, 0xCC
+name:
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_startproc
+ .equ .eh.framereg, eh.SP
+ .equ .eh.frameptr, SP
+#endif
+.endm
+
+.macro .pubproc name
+ .locproc name
+ .global name
+.endm
+
+.macro .hidproc name
+ .pubproc name
+ .hidden name
+.endm
+
+.macro .endp name
+ .size name, .-name
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_endproc
+ .equ .eh.framereg, -1
+ .equ .eh.frameptr, -1
+#endif
+.endm
+
+.macro .locentry name, type=@notype
+ .type name, type
+name:
+.endm
+
+.macro .pubentry name, type
+ .locentry name, type
+ .global name
+.endm
+
+.macro .hidentry name, type
+ .pubentry name, type
+ .hidden name
+.endm
+
+.macro .rodata
+ .section .rodata, "a", @progbits
+.endm
+
+// frame unwind info generation support
+
+.macro EHpush item:req, spill=TRUE
+ push item
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset .eh.stkword
+ .endif
+ .if spill
+ .ifdef eh.&item
+ .if .eh.preserved && (1 << eh.&item)
+ .cfi_rel_offset item, 0
+ .endif
+ .endif
+ .endif
+#endif
+.endm
+
+.macro EHpushC item:req
+ .if 1 | item // just to make sure this is a constant
+ push item
+ .endif
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset .eh.stkword
+ .endif
+#endif
+.endm
+
+.macro EHpushO item:req
+ push offset item
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset .eh.stkword
+ .endif
+#endif
+.endm
+
+.macro EHpushV item:req
+ push [item]
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset .eh.stkword
+ .endif
+#endif
+.endm
+
+.macro EHpop item:req, fill=TRUE
+ pop item
+#ifdef CONFIG_UNWIND_INFO
+ .if fill
+ .ifdef eh.&item
+ .if .eh.preserved && (1 << eh.&item)
+ .cfi_restore item
+ .endif
+ .endif
+ .endif
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset -.eh.stkword
+ .endif
+#endif
+.endm
+
+.macro EHpopV item:req
+ pop [item]
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset -.eh.stkword
+ .endif
+#endif
+.endm
+
+.macro EHsetfr dst, src, offs=0
+ .if eh.&dst <> eh.&src
+ .if offs == 0
+ mov dst, src
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_def_cfa_register dst
+#endif
+ .else
+ lea dst, [src + (offs) * .eh.stkword]
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_adjust_cfa_offset -(offs) * .eh.stkword
+ .cfi_def_cfa_register dst
+#endif
+ .endif
+ .else
+ add dst, (offs) * .eh.stkword
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_adjust_cfa_offset -(offs) * .eh.stkword
+#endif
+ .endif
+#ifdef CONFIG_UNWIND_INFO
+ .equ .eh.framereg, eh.&dst
+ .equ .eh.frameptr, dst
+#endif
+.endm
+
+.macro EHenter frsz, level
+ enter frsz, level
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg <> eh.SP
+ .error "'enter' without SP-based frame is not supported."
+ .endif
+ .cfi_adjust_cfa_offset .eh.stkword
+ .cfi_rel_offset BP, 0
+ .cfi_def_cfa_register BP
+ .equ .eh.framereg, eh.BP
+ .equ .eh.frameptr, BP
+#endif
+.endm
+
+.macro EHleave
+ leave
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg <> eh.BP
+ .error "'leave' without BP-based frame is not supported."
+ .endif
+ .cfi_def_cfa_register SP
+ .cfi_restore BP
+ .cfi_adjust_cfa_offset -.eh.stkword
+ .equ .eh.framereg, eh.SP
+ .equ .eh.frameptr, SP
+#endif
+.endm
+
+.macro EHspill offs:req, reg:req
+ mov [.eh.frameptr+(offs)*.eh.stkword], reg
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP &&&&& (offs) < 0
+ .warning "Spill offset into SP-relative frame should be positive."
+ .endif
+ .cfi_offset reg, (offs)*.eh.stkword
+#endif
+.endm
+
+.macro EHfill reg:req, offs:req
+ mov reg, [.eh.frameptr+(offs)*.eh.stkword]
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP &&&&& (offs) < 0
+ .warning "Fill offset into SP-relative frame should be positive."
+ .endif
+ .cfi_restore reg
+#endif
+.endm
+
+.macro EHpushf spill=TRUE
+ pushf
+#ifdef CONFIG_UNWIND_INFO
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset .eh.stkword
+ .endif
+ .if spill
+ .cfi_rel_offset FLAGS, 0
+ .endif
+#endif
+.endm
+
+.macro EHpopf fill=TRUE
+ popf
+#ifdef CONFIG_UNWIND_INFO
+ .if fill
+ .cfi_restore FLAGS
+ .endif
+ .if .eh.framereg == eh.SP
+ .cfi_adjust_cfa_offset -.eh.stkword
+ .endif
+#endif
+.endm
+
+.macro EHpushState
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_remember_state
+#endif
+.endm
+
+.macro EHpopState
+#ifdef CONFIG_UNWIND_INFO
+ .cfi_restore_state
+#endif
+.endm
+
+#ifdef CONFIG_UNWIND_INFO
+.equ .eh.framereg, -1
+.equ .eh.frameptr, -1
+#endif
next prev parent reply other threads:[~2005-11-09 14:19 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-09 13:54 [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jan Beulich
2005-11-09 13:56 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Jan Beulich
2005-11-09 13:57 ` [PATCH 2/39] NLKD - an alternative early ioremap approach Jan Beulich
2005-11-09 13:58 ` [PATCH 3/39] NLKD - early/late CPU up/down notification Jan Beulich
2005-11-09 13:59 ` [PATCH 4/39] NLKD/i386 " Jan Beulich
2005-11-09 14:01 ` [PATCH 5/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:10 ` Andi Kleen
2005-11-14 8:04 ` [discuss] " Jan Beulich
2005-11-14 12:37 ` Andi Kleen
2005-11-09 14:01 ` [PATCH 6/39] NLKD - early panic notification Jan Beulich
2005-11-09 14:02 ` [PATCH 7/39] NLKD - task create/destroy notification Jan Beulich
2005-11-09 14:03 ` [PATCH 8/39] NLKD - rmmod notification Jan Beulich
2005-11-09 14:04 ` [PATCH 9/39] NLKD - hotkey notification Jan Beulich
2005-11-09 14:05 ` [PATCH 10/39] NLKD - console layout change notification Jan Beulich
2005-11-09 14:06 ` [PATCH 11/39] NLKD - time adjustment Jan Beulich
2005-11-09 14:06 ` [PATCH 12/39] NLKD/i386 " Jan Beulich
2005-11-09 19:10 ` George Anzinger
2005-11-10 8:12 ` Jan Beulich
2005-11-11 0:17 ` George Anzinger
2005-11-09 14:08 ` [PATCH 13/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:13 ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Jan Beulich
2005-11-09 14:14 ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Jan Beulich
2005-11-09 14:15 ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Jan Beulich
2005-11-09 14:16 ` [PATCH 21/39] NLKD/x86-64 - core adjustments Jan Beulich
2005-11-10 13:24 ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Andi Kleen
2005-11-10 14:07 ` Jan Beulich
2005-11-10 13:23 ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Andi Kleen
2005-11-10 14:25 ` Jan Beulich
2005-11-10 13:21 ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Andi Kleen
2005-11-10 14:07 ` Jan Beulich
2005-11-10 14:25 ` Andi Kleen
2005-11-10 15:00 ` Jan Beulich
2005-11-11 3:39 ` [discuss] " Andi Kleen
2005-11-10 13:19 ` [PATCH 13/39] NLKD/x86-64 - time adjustment Andi Kleen
2005-11-10 14:23 ` Jan Beulich
2005-11-11 2:12 ` Andi Kleen
2005-11-12 9:22 ` Vojtech Pavlik
2005-11-12 17:21 ` Andi Kleen
2005-11-12 20:44 ` Vojtech Pavlik
2005-11-15 0:38 ` George Anzinger
2005-11-15 1:05 ` [discuss] " Andi Kleen
2005-11-15 7:50 ` Vojtech Pavlik
2005-11-15 8:24 ` Jan Beulich
2005-11-10 14:43 ` Vojtech Pavlik
2005-11-09 14:09 ` [PATCH 14/39] NLKD - kernel trace buffer access Jan Beulich
2005-11-09 14:09 ` [PATCH 15/39] NLKD - early pseudo-fs Jan Beulich
2005-11-09 14:11 ` [PATCH 16/39] NLKD - core adjustments Jan Beulich
2005-11-09 14:11 ` [PATCH 17/39] NLKD/i386 " Jan Beulich
2005-11-09 19:00 ` Adrian Bunk
2005-11-10 8:04 ` Jan Beulich
2005-11-10 10:29 ` Adrian Bunk
2005-11-10 11:52 ` Jan Beulich
2005-11-10 12:36 ` Lars Marowsky-Bree
2005-11-09 14:18 ` [PATCH 22/39] NLKD - core Jan Beulich
2005-11-09 14:19 ` Jan Beulich [this message]
2005-11-09 14:20 ` [PATCH 24/39] NLKD/i386 " Jan Beulich
2005-11-09 14:21 ` [PATCH 25/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:30 ` Andi Kleen
2005-11-09 14:22 ` [PATCH 26/39] NLKD - run time library Jan Beulich
2005-11-09 14:23 ` [PATCH 27/39] NLKD/i386 " Jan Beulich
2005-11-09 14:23 ` [PATCH 28/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:32 ` Andi Kleen
[not found] ` <437214B7.76F0.0078.0@novell.com>
[not found] ` <4372156A.76F0.0078.0@novell.com>
2005-11-09 14:28 ` [PATCH 34/39] NLKD/x86 - Console Debug Agent Jan Beulich
[not found] ` <43721600.76F0.0078.0@novell.com>
2005-11-09 14:30 ` [PATCH 38/39] NLKD/i386 - Remote " Jan Beulich
2005-11-09 14:31 ` [PATCH 39/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:29 ` [PATCH 15/39] NLKD - early pseudo-fs Al Viro
2005-11-09 14:37 ` Jan Beulich
2005-11-09 15:00 ` Al Viro
2005-11-09 16:00 ` Jan Beulich
2005-11-10 5:44 ` [PATCH 14/39] NLKD - kernel trace buffer access Keith Owens
2005-11-10 8:02 ` Jan Beulich
2005-11-09 18:51 ` [PATCH 11/39] NLKD - time adjustment George Anzinger
2005-11-09 16:50 ` [PATCH 6/39] NLKD - early panic notification Greg KH
2005-11-09 16:45 ` [PATCH 3/39] NLKD - early/late CPU up/down notification Greg KH
2005-11-09 17:09 ` Jan Beulich
2005-11-09 17:19 ` Greg KH
2005-11-10 7:41 ` Jan Beulich
2005-11-10 20:59 ` Sam Ravnborg
2005-11-11 7:52 ` Jan Beulich
2005-11-12 20:52 ` Randy.Dunlap
2005-11-10 23:01 ` Greg KH
2005-11-11 10:06 ` [PATCH 2/39] NLKD - an alternative early ioremap approach Pavel Machek
2005-11-11 10:19 ` Jan Beulich
2005-11-09 16:50 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Randy.Dunlap
2005-11-09 16:57 ` Greg KH
2005-11-09 17:20 ` Jan Beulich
2005-11-09 16:59 ` [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jeff Garzik
2005-11-09 17:06 ` Randy.Dunlap
2005-11-09 17:14 ` Jan Beulich
2005-11-09 17:56 ` Alan Cox
2005-11-09 18:05 ` Greg KH
2005-11-09 18:54 ` Paul Jackson
2005-11-10 12:41 ` Christoph Hellwig
2005-11-13 1:09 ` Andi Kleen
2005-11-13 2:53 ` jmerkey
2005-11-13 3:44 ` Andi Kleen
2005-11-13 3:26 ` Jeff V. Merkey
2005-11-13 3:32 ` Jeff V. Merkey
2005-11-09 17:53 ` Alan Cox
2005-11-09 16:25 ` Jeffrey V. Merkey
2005-11-10 14:48 ` Mark Lord
2005-11-10 15:28 ` Tom Rini
2005-11-10 16:37 ` Alan Cox
2005-11-13 1:11 ` Andi Kleen
[not found] ` <437214E4.76F0.0078.0@novell.com>
[not found] ` <4372153C.76F0.0078.0@novell.com>
2005-11-10 13:33 ` [PATCH 32/39] NLKD/x86-64 - Core Debug Engine Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4372138D.76F0.0078.0@novell.com \
--to=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox