aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/processor.h
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-01-30 07:31:41 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:31:41 -0500
commit46265df040533f57c191bb2b019d6b25c3bf1f34 (patch)
tree702a028558df2c970c5f4280679d6bb81b822f63 /include/asm-x86/processor.h
parentea5e3593a493298c69b8c4a958628feace930478 (diff)
x86: move i387 definitions to processor.h
This patch moves i387 definitions from processor_32.h and processor_64.h to processor.h. They are different. Very different. And there's appearently nothing we can do about it, so they're enclosed inside ifdefs. Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/processor.h')
-rw-r--r--include/asm-x86/processor.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h
index a8f1702ec3ba..80c50020ef60 100644
--- a/include/asm-x86/processor.h
+++ b/include/asm-x86/processor.h
@@ -227,8 +227,74 @@ struct orig_ist {
227}; 227};
228 228
229#ifdef CONFIG_X86_32 229#ifdef CONFIG_X86_32
230struct i387_fsave_struct {
231 long cwd;
232 long swd;
233 long twd;
234 long fip;
235 long fcs;
236 long foo;
237 long fos;
238 long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */
239 long status; /* software status information */
240};
241
242struct i387_fxsave_struct {
243 unsigned short cwd;
244 unsigned short swd;
245 unsigned short twd;
246 unsigned short fop;
247 long fip;
248 long fcs;
249 long foo;
250 long fos;
251 long mxcsr;
252 long mxcsr_mask;
253 long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
254 long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
255 long padding[56];
256} __attribute__((aligned(16)));
257
258struct i387_soft_struct {
259 long cwd;
260 long swd;
261 long twd;
262 long fip;
263 long fcs;
264 long foo;
265 long fos;
266 long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */
267 unsigned char ftop, changed, lookahead, no_update, rm, alimit;
268 struct info *info;
269 unsigned long entry_eip;
270};
271
272union i387_union {
273 struct i387_fsave_struct fsave;
274 struct i387_fxsave_struct fxsave;
275 struct i387_soft_struct soft;
276};
277
230# include "processor_32.h" 278# include "processor_32.h"
231#else 279#else
280struct i387_fxsave_struct {
281 u16 cwd;
282 u16 swd;
283 u16 twd;
284 u16 fop;
285 u64 rip;
286 u64 rdp;
287 u32 mxcsr;
288 u32 mxcsr_mask;
289 u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
290 u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */
291 u32 padding[24];
292} __attribute__((aligned(16)));
293
294union i387_union {
295 struct i387_fxsave_struct fxsave;
296};
297
232# include "processor_64.h" 298# include "processor_64.h"
233#endif 299#endif
234 300