Revision 1f587329 target-sparc/fop_template.h
b/target-sparc/fop_template.h | ||
---|---|---|
77 | 77 |
*p = u.l.upper; |
78 | 78 |
} |
79 | 79 |
|
80 |
#if defined(CONFIG_USER_ONLY) |
|
81 |
/* quad floating point registers moves */ |
|
82 |
void OPPROTO glue(op_load_fpr_QT0_fpr, REGNAME)(void) |
|
83 |
{ |
|
84 |
CPU_QuadU u; |
|
85 |
uint32_t *p = (uint32_t *)® |
|
86 |
u.l.lowest = *(p + 3); |
|
87 |
u.l.lower = *(p + 2); |
|
88 |
u.l.upper = *(p + 1); |
|
89 |
u.l.upmost = *p; |
|
90 |
QT0 = u.q; |
|
91 |
} |
|
92 |
|
|
93 |
void OPPROTO glue(op_store_QT0_fpr_fpr, REGNAME)(void) |
|
94 |
{ |
|
95 |
CPU_QuadU u; |
|
96 |
uint32_t *p = (uint32_t *)® |
|
97 |
u.q = QT0; |
|
98 |
*(p + 3) = u.l.lowest; |
|
99 |
*(p + 2) = u.l.lower; |
|
100 |
*(p + 1) = u.l.upper; |
|
101 |
*p = u.l.upmost; |
|
102 |
} |
|
103 |
|
|
104 |
void OPPROTO glue(op_load_fpr_QT1_fpr, REGNAME)(void) |
|
105 |
{ |
|
106 |
CPU_QuadU u; |
|
107 |
uint32_t *p = (uint32_t *)® |
|
108 |
u.l.lowest = *(p + 3); |
|
109 |
u.l.lower = *(p + 2); |
|
110 |
u.l.upper = *(p + 1); |
|
111 |
u.l.upmost = *p; |
|
112 |
QT1 = u.q; |
|
113 |
} |
|
114 |
|
|
115 |
void OPPROTO glue(op_store_QT1_fpr_fpr, REGNAME)(void) |
|
116 |
{ |
|
117 |
CPU_QuadU u; |
|
118 |
uint32_t *p = (uint32_t *)® |
|
119 |
u.q = QT1; |
|
120 |
*(p + 3) = u.l.lowest; |
|
121 |
*(p + 2) = u.l.lower; |
|
122 |
*(p + 1) = u.l.upper; |
|
123 |
*p = u.l.upmost; |
|
124 |
} |
|
125 |
#endif |
|
126 |
|
|
80 | 127 |
#undef REG |
81 | 128 |
#undef REGNAME |
Also available in: Unified diff