diff options
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/trap.c | 8 | ||||
-rw-r--r-- | sys/ia64/include/_regset.h | 257 |
2 files changed, 133 insertions, 132 deletions
diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c index 73bb610..145b020 100644 --- a/sys/ia64/ia64/trap.c +++ b/sys/ia64/ia64/trap.c @@ -105,10 +105,10 @@ typedef struct { typedef struct { u_int64_t bitmask_low64; /* f63 - f2 */ u_int64_t bitmask_high64; /* f127 - f64 */ - struct _ia64_fpreg *fp_low_preserved; /* f2 - f5 */ - struct _ia64_fpreg *fp_low_volatile; /* f6 - f15 */ - struct _ia64_fpreg *fp_high_preserved; /* f16 - f31 */ - struct _ia64_fpreg *fp_high_volatile; /* f32 - f127 */ + union _ia64_fpreg *fp_low_preserved; /* f2 - f5 */ + union _ia64_fpreg *fp_low_volatile; /* f6 - f15 */ + union _ia64_fpreg *fp_high_preserved; /* f16 - f31 */ + union _ia64_fpreg *fp_high_volatile; /* f32 - f127 */ } FP_STATE; #ifdef WITNESS diff --git a/sys/ia64/include/_regset.h b/sys/ia64/include/_regset.h index ffb2425..4b752a3 100644 --- a/sys/ia64/include/_regset.h +++ b/sys/ia64/include/_regset.h @@ -43,9 +43,10 @@ */ /* A single FP register. */ -struct _ia64_fpreg { +union _ia64_fpreg { unsigned char fpr_bits[16]; -} __aligned(16); + long double fpr_flt; +}; /* * Special registers. @@ -74,102 +75,102 @@ struct _special { }; struct _high_fp { - struct _ia64_fpreg fr32; - struct _ia64_fpreg fr33; - struct _ia64_fpreg fr34; - struct _ia64_fpreg fr35; - struct _ia64_fpreg fr36; - struct _ia64_fpreg fr37; - struct _ia64_fpreg fr38; - struct _ia64_fpreg fr39; - struct _ia64_fpreg fr40; - struct _ia64_fpreg fr41; - struct _ia64_fpreg fr42; - struct _ia64_fpreg fr43; - struct _ia64_fpreg fr44; - struct _ia64_fpreg fr45; - struct _ia64_fpreg fr46; - struct _ia64_fpreg fr47; - struct _ia64_fpreg fr48; - struct _ia64_fpreg fr49; - struct _ia64_fpreg fr50; - struct _ia64_fpreg fr51; - struct _ia64_fpreg fr52; - struct _ia64_fpreg fr53; - struct _ia64_fpreg fr54; - struct _ia64_fpreg fr55; - struct _ia64_fpreg fr56; - struct _ia64_fpreg fr57; - struct _ia64_fpreg fr58; - struct _ia64_fpreg fr59; - struct _ia64_fpreg fr60; - struct _ia64_fpreg fr61; - struct _ia64_fpreg fr62; - struct _ia64_fpreg fr63; - struct _ia64_fpreg fr64; - struct _ia64_fpreg fr65; - struct _ia64_fpreg fr66; - struct _ia64_fpreg fr67; - struct _ia64_fpreg fr68; - struct _ia64_fpreg fr69; - struct _ia64_fpreg fr70; - struct _ia64_fpreg fr71; - struct _ia64_fpreg fr72; - struct _ia64_fpreg fr73; - struct _ia64_fpreg fr74; - struct _ia64_fpreg fr75; - struct _ia64_fpreg fr76; - struct _ia64_fpreg fr77; - struct _ia64_fpreg fr78; - struct _ia64_fpreg fr79; - struct _ia64_fpreg fr80; - struct _ia64_fpreg fr81; - struct _ia64_fpreg fr82; - struct _ia64_fpreg fr83; - struct _ia64_fpreg fr84; - struct _ia64_fpreg fr85; - struct _ia64_fpreg fr86; - struct _ia64_fpreg fr87; - struct _ia64_fpreg fr88; - struct _ia64_fpreg fr89; - struct _ia64_fpreg fr90; - struct _ia64_fpreg fr91; - struct _ia64_fpreg fr92; - struct _ia64_fpreg fr93; - struct _ia64_fpreg fr94; - struct _ia64_fpreg fr95; - struct _ia64_fpreg fr96; - struct _ia64_fpreg fr97; - struct _ia64_fpreg fr98; - struct _ia64_fpreg fr99; - struct _ia64_fpreg fr100; - struct _ia64_fpreg fr101; - struct _ia64_fpreg fr102; - struct _ia64_fpreg fr103; - struct _ia64_fpreg fr104; - struct _ia64_fpreg fr105; - struct _ia64_fpreg fr106; - struct _ia64_fpreg fr107; - struct _ia64_fpreg fr108; - struct _ia64_fpreg fr109; - struct _ia64_fpreg fr110; - struct _ia64_fpreg fr111; - struct _ia64_fpreg fr112; - struct _ia64_fpreg fr113; - struct _ia64_fpreg fr114; - struct _ia64_fpreg fr115; - struct _ia64_fpreg fr116; - struct _ia64_fpreg fr117; - struct _ia64_fpreg fr118; - struct _ia64_fpreg fr119; - struct _ia64_fpreg fr120; - struct _ia64_fpreg fr121; - struct _ia64_fpreg fr122; - struct _ia64_fpreg fr123; - struct _ia64_fpreg fr124; - struct _ia64_fpreg fr125; - struct _ia64_fpreg fr126; - struct _ia64_fpreg fr127; + union _ia64_fpreg fr32; + union _ia64_fpreg fr33; + union _ia64_fpreg fr34; + union _ia64_fpreg fr35; + union _ia64_fpreg fr36; + union _ia64_fpreg fr37; + union _ia64_fpreg fr38; + union _ia64_fpreg fr39; + union _ia64_fpreg fr40; + union _ia64_fpreg fr41; + union _ia64_fpreg fr42; + union _ia64_fpreg fr43; + union _ia64_fpreg fr44; + union _ia64_fpreg fr45; + union _ia64_fpreg fr46; + union _ia64_fpreg fr47; + union _ia64_fpreg fr48; + union _ia64_fpreg fr49; + union _ia64_fpreg fr50; + union _ia64_fpreg fr51; + union _ia64_fpreg fr52; + union _ia64_fpreg fr53; + union _ia64_fpreg fr54; + union _ia64_fpreg fr55; + union _ia64_fpreg fr56; + union _ia64_fpreg fr57; + union _ia64_fpreg fr58; + union _ia64_fpreg fr59; + union _ia64_fpreg fr60; + union _ia64_fpreg fr61; + union _ia64_fpreg fr62; + union _ia64_fpreg fr63; + union _ia64_fpreg fr64; + union _ia64_fpreg fr65; + union _ia64_fpreg fr66; + union _ia64_fpreg fr67; + union _ia64_fpreg fr68; + union _ia64_fpreg fr69; + union _ia64_fpreg fr70; + union _ia64_fpreg fr71; + union _ia64_fpreg fr72; + union _ia64_fpreg fr73; + union _ia64_fpreg fr74; + union _ia64_fpreg fr75; + union _ia64_fpreg fr76; + union _ia64_fpreg fr77; + union _ia64_fpreg fr78; + union _ia64_fpreg fr79; + union _ia64_fpreg fr80; + union _ia64_fpreg fr81; + union _ia64_fpreg fr82; + union _ia64_fpreg fr83; + union _ia64_fpreg fr84; + union _ia64_fpreg fr85; + union _ia64_fpreg fr86; + union _ia64_fpreg fr87; + union _ia64_fpreg fr88; + union _ia64_fpreg fr89; + union _ia64_fpreg fr90; + union _ia64_fpreg fr91; + union _ia64_fpreg fr92; + union _ia64_fpreg fr93; + union _ia64_fpreg fr94; + union _ia64_fpreg fr95; + union _ia64_fpreg fr96; + union _ia64_fpreg fr97; + union _ia64_fpreg fr98; + union _ia64_fpreg fr99; + union _ia64_fpreg fr100; + union _ia64_fpreg fr101; + union _ia64_fpreg fr102; + union _ia64_fpreg fr103; + union _ia64_fpreg fr104; + union _ia64_fpreg fr105; + union _ia64_fpreg fr106; + union _ia64_fpreg fr107; + union _ia64_fpreg fr108; + union _ia64_fpreg fr109; + union _ia64_fpreg fr110; + union _ia64_fpreg fr111; + union _ia64_fpreg fr112; + union _ia64_fpreg fr113; + union _ia64_fpreg fr114; + union _ia64_fpreg fr115; + union _ia64_fpreg fr116; + union _ia64_fpreg fr117; + union _ia64_fpreg fr118; + union _ia64_fpreg fr119; + union _ia64_fpreg fr120; + union _ia64_fpreg fr121; + union _ia64_fpreg fr122; + union _ia64_fpreg fr123; + union _ia64_fpreg fr124; + union _ia64_fpreg fr125; + union _ia64_fpreg fr126; + union _ia64_fpreg fr127; }; /* @@ -191,26 +192,26 @@ struct _callee_saved { }; struct _callee_saved_fp { - struct _ia64_fpreg fr2; - struct _ia64_fpreg fr3; - struct _ia64_fpreg fr4; - struct _ia64_fpreg fr5; - struct _ia64_fpreg fr16; - struct _ia64_fpreg fr17; - struct _ia64_fpreg fr18; - struct _ia64_fpreg fr19; - struct _ia64_fpreg fr20; - struct _ia64_fpreg fr21; - struct _ia64_fpreg fr22; - struct _ia64_fpreg fr23; - struct _ia64_fpreg fr24; - struct _ia64_fpreg fr25; - struct _ia64_fpreg fr26; - struct _ia64_fpreg fr27; - struct _ia64_fpreg fr28; - struct _ia64_fpreg fr29; - struct _ia64_fpreg fr30; - struct _ia64_fpreg fr31; + union _ia64_fpreg fr2; + union _ia64_fpreg fr3; + union _ia64_fpreg fr4; + union _ia64_fpreg fr5; + union _ia64_fpreg fr16; + union _ia64_fpreg fr17; + union _ia64_fpreg fr18; + union _ia64_fpreg fr19; + union _ia64_fpreg fr20; + union _ia64_fpreg fr21; + union _ia64_fpreg fr22; + union _ia64_fpreg fr23; + union _ia64_fpreg fr24; + union _ia64_fpreg fr25; + union _ia64_fpreg fr26; + union _ia64_fpreg fr27; + union _ia64_fpreg fr28; + union _ia64_fpreg fr29; + union _ia64_fpreg fr30; + union _ia64_fpreg fr31; }; /* @@ -250,16 +251,16 @@ struct _caller_saved { }; struct _caller_saved_fp { - struct _ia64_fpreg fr6; - struct _ia64_fpreg fr7; - struct _ia64_fpreg fr8; - struct _ia64_fpreg fr9; - struct _ia64_fpreg fr10; - struct _ia64_fpreg fr11; - struct _ia64_fpreg fr12; - struct _ia64_fpreg fr13; - struct _ia64_fpreg fr14; - struct _ia64_fpreg fr15; + union _ia64_fpreg fr6; + union _ia64_fpreg fr7; + union _ia64_fpreg fr8; + union _ia64_fpreg fr9; + union _ia64_fpreg fr10; + union _ia64_fpreg fr11; + union _ia64_fpreg fr12; + union _ia64_fpreg fr13; + union _ia64_fpreg fr14; + union _ia64_fpreg fr15; }; #ifdef _KERNEL |