From 93052d8cd86025df62767af04bca9398bf4b1dc1 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 30 Jan 2008 13:31:48 +0100 Subject: [PATCH] --- yaml --- r: 80063 b: refs/heads/master c: 99f8ecdf4506010feda26ffe4ac0d23962947106 h: refs/heads/master i: 80061: 7413429e76970db29125812e0b7fe504e8904807 80059: 656874419b73e120262cb763b9139e2945f6b5c9 80055: 8b2b27a113f23f07d74046ce9a17323a93be90e0 80047: 0666626af1496de3279a1abcb0173cc1a32bddde 80031: 60dd7675de1f271cd53aee06956632f7a604e846 79999: 44364b8fa2543c89cecce40017fc01758cc00d8d v: v3 --- [refs] | 2 +- trunk/include/asm-x86/processor.h | 92 ++++++++++++++----------------- 2 files changed, 43 insertions(+), 51 deletions(-) diff --git a/[refs] b/[refs] index eb78bac68ffe..4af56239b35f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 863aec860259f287797f886c3f373389cdafc8e3 +refs/heads/master: 99f8ecdf4506010feda26ffe4ac0d23962947106 diff --git a/trunk/include/asm-x86/processor.h b/trunk/include/asm-x86/processor.h index 80c50020ef60..ea222cfe7b00 100644 --- a/trunk/include/asm-x86/processor.h +++ b/trunk/include/asm-x86/processor.h @@ -226,64 +226,37 @@ struct orig_ist { unsigned long ist[7]; }; -#ifdef CONFIG_X86_32 -struct i387_fsave_struct { - long cwd; - long swd; - long twd; - long fip; - long fcs; - long foo; - long fos; - long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ - long status; /* software status information */ -}; - -struct i387_fxsave_struct { - unsigned short cwd; - unsigned short swd; - unsigned short twd; - unsigned short fop; - long fip; - long fcs; - long foo; - long fos; - long mxcsr; - long mxcsr_mask; - long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ - long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ - long padding[56]; -} __attribute__((aligned(16))); +#define MXCSR_DEFAULT 0x1f80 -struct i387_soft_struct { - long cwd; - long swd; - long twd; - long fip; - long fcs; - long foo; - long fos; - long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ - unsigned char ftop, changed, lookahead, no_update, rm, alimit; - struct info *info; - unsigned long entry_eip; -}; - -union i387_union { - struct i387_fsave_struct fsave; - struct i387_fxsave_struct fxsave; - struct i387_soft_struct soft; +struct i387_fsave_struct { + u32 cwd; + u32 swd; + u32 twd; + u32 fip; + u32 fcs; + u32 foo; + u32 fos; + u32 st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ + u32 status; /* software status information */ }; -# include "processor_32.h" -#else struct i387_fxsave_struct { u16 cwd; u16 swd; u16 twd; u16 fop; - u64 rip; - u64 rdp; + union { + struct { + u64 rip; + u64 rdp; + }; + struct { + u32 fip; + u32 fcs; + u32 foo; + u32 fos; + }; + }; u32 mxcsr; u32 mxcsr_mask; u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ @@ -291,10 +264,29 @@ struct i387_fxsave_struct { u32 padding[24]; } __attribute__((aligned(16))); +struct i387_soft_struct { + u32 cwd; + u32 swd; + u32 twd; + u32 fip; + u32 fcs; + u32 foo; + u32 fos; + u32 st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ + u8 ftop, changed, lookahead, no_update, rm, alimit; + struct info *info; + u32 entry_eip; +}; + union i387_union { + struct i387_fsave_struct fsave; struct i387_fxsave_struct fxsave; + struct i387_soft_struct soft; }; +#ifdef CONFIG_X86_32 +# include "processor_32.h" +#else # include "processor_64.h" #endif