This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: PATCH: Add common files for x86 XSAVE extended state
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: GDB <gdb-patches at sourceware dot org>
- Date: Tue, 2 Mar 2010 11:45:59 -0800
- Subject: Re: PATCH: Add common files for x86 XSAVE extended state
- References: <20100302152826.GA28158@intel.com>
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
On Tue, Mar 02, 2010 at 07:28:26AM -0800, H.J. Lu wrote:
> Hi,
>
> This patch adds common files for x86 XSAVE extended state. They
> are used by native x86 gdb and gdbserver to discover x86 XSAVE
> extended state support. You can see IA32/Intel64 SDM at
>
> http://developer.intel.com/products/processor/manuals/index.htm
>
> for details. OK to install?
>
> Thanks.
>
>
> H.J.
> ---
> 2010-03-02 H.J. Lu <hongjiu.lu@intel.com>
>
> * common/i386-cpuid.h: New.
> * common/i386-xstate.c: Likewise.
> * common/i386-xstate.h: Likewise.
>
Here is the updated patch to define macros used by native gdb and
gdbserver. There is no need for common/i386-xstate.c nor
common/i386-cpuid.h. OK to install?
Thanks.
H.J.
---
2010-03-02 H.J. Lu <hongjiu.lu@intel.com>
* common/i386-xstate.h: New.
diff --git a/gdb/common/i386-xstate.h b/gdb/common/i386-xstate.h
new file mode 100644
index 0000000..41c7ce1
--- /dev/null
+++ b/gdb/common/i386-xstate.h
@@ -0,0 +1,48 @@
+/* Common code for i386 XSAVE extended state.
+
+ Copyright (C) 2010 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef I386_XSTATE_H
+#define I386_XSTATE_H 1
+
+/* The extended state feature bits. */
+#define bit_I386_XSTATE_X87 (1ULL << 0)
+#define bit_I386_XSTATE_SSE (1ULL << 1)
+#define bit_I386_XSTATE_AVX (1ULL << 2)
+
+/* Supported mask and size of the extended state. */
+#define I386_XSTATE_SSE_MASK \
+ (bit_I386_XSTATE_X87 | bit_I386_XSTATE_SSE)
+#define I386_XSTATE_AVX_MASK \
+ (I386_XSTATE_SSE_MASK | bit_I386_XSTATE_AVX)
+#define I386_XSTATE_MAX_MASK \
+ I386_XSTATE_AVX_MASK
+
+#define I386_XSTATE_SSE_MASK_STRING "0x3"
+#define I386_XSTATE_AVX_MASK_STRING "0x7"
+#define I386_XSTATE_MAX_MASK_STRING "0x7"
+
+#define I386_XSTATE_SSE_SIZE 576
+#define I386_XSTATE_AVX_SIZE 832
+#define I386_XSTATE_MAX_SIZE 832
+
+#define I386_XSTATE_SSE_SIZE_STRING "576"
+#define I386_XSTATE_AVX_SIZE_STRING "832"
+#define I386_XSTATE_MAX_SIZE_STRING "832"
+
+#endif /* I386_XSTATE_H */