Revision fb0eaffc target-ppc/op_template.h
b/target-ppc/op_template.h | ||
---|---|---|
70 | 70 |
regs->crf[REG] = T1; |
71 | 71 |
} |
72 | 72 |
|
73 |
/* Floating point condition and status register moves */ |
|
74 |
void OPPROTO glue(op_load_fpscr_T0_fpscr, REG)(void) |
|
75 |
{ |
|
76 |
T0 = regs->fpscr[REG]; |
|
77 |
RETURN(); |
|
78 |
} |
|
79 |
|
|
80 |
#if REG == 0 |
|
81 |
void OPPROTO glue(op_store_T0_fpscr_fpscr, REG)(void) |
|
82 |
{ |
|
83 |
regs->fpscr[REG] = (regs->fpscr[REG] & 0x9) | (T0 & ~0x9); |
|
84 |
RETURN(); |
|
85 |
} |
|
86 |
|
|
87 |
void OPPROTO glue(op_store_T0_fpscri_fpscr, REG)(void) |
|
88 |
{ |
|
89 |
regs->fpscr[REG] = (regs->fpscr[REG] & ~0x9) | (PARAM(1) & 0x9); |
|
90 |
RETURN(); |
|
91 |
} |
|
92 |
|
|
93 |
void OPPROTO glue(op_clear_fpscr_fpscr, REG)(void) |
|
94 |
{ |
|
95 |
regs->fpscr[REG] = (regs->fpscr[REG] & 0x9); |
|
96 |
RETURN(); |
|
97 |
} |
|
98 |
#else |
|
99 |
void OPPROTO glue(op_store_T0_fpscr_fpscr, REG)(void) |
|
100 |
{ |
|
101 |
regs->fpscr[REG] = T0; |
|
102 |
RETURN(); |
|
103 |
} |
|
104 |
|
|
105 |
void OPPROTO glue(op_store_T0_fpscri_fpscr, REG)(void) |
|
106 |
{ |
|
107 |
regs->fpscr[REG] = PARAM(1); |
|
108 |
RETURN(); |
|
109 |
} |
|
110 |
|
|
111 |
void OPPROTO glue(op_clear_fpscr_fpscr, REG)(void) |
|
112 |
{ |
|
113 |
regs->fpscr[REG] = 0x0; |
|
114 |
RETURN(); |
|
115 |
} |
|
116 |
#endif |
|
117 |
|
|
73 | 118 |
#endif /* REG <= 7 */ |
74 | 119 |
|
75 | 120 |
/* float moves */ |
76 | 121 |
|
77 |
void OPPROTO glue(op_load_FT0_fpr, REG)(void) |
|
122 |
/* floating point registers moves */ |
|
123 |
void OPPROTO glue(op_load_fpr_FT0_fpr, REG)(void) |
|
78 | 124 |
{ |
79 | 125 |
FT0 = env->fpr[REG]; |
126 |
RETURN(); |
|
80 | 127 |
} |
81 | 128 |
|
82 |
void OPPROTO glue(op_store_FT0_fpr, REG)(void) |
|
129 |
void OPPROTO glue(op_store_FT0_fpr_fpr, REG)(void)
|
|
83 | 130 |
{ |
84 | 131 |
env->fpr[REG] = FT0; |
132 |
RETURN(); |
|
133 |
} |
|
134 |
|
|
135 |
void OPPROTO glue(op_load_fpr_FT1_fpr, REG)(void) |
|
136 |
{ |
|
137 |
FT1 = env->fpr[REG]; |
|
138 |
RETURN(); |
|
139 |
} |
|
140 |
|
|
141 |
void OPPROTO glue(op_store_FT1_fpr_fpr, REG)(void) |
|
142 |
{ |
|
143 |
env->fpr[REG] = FT1; |
|
144 |
RETURN(); |
|
145 |
} |
|
146 |
|
|
147 |
void OPPROTO glue(op_load_fpr_FT2_fpr, REG)(void) |
|
148 |
{ |
|
149 |
FT2 = env->fpr[REG]; |
|
150 |
RETURN(); |
|
151 |
} |
|
152 |
|
|
153 |
void OPPROTO glue(op_store_FT2_fpr_fpr, REG)(void) |
|
154 |
{ |
|
155 |
env->fpr[REG] = FT2; |
|
156 |
RETURN(); |
|
85 | 157 |
} |
86 | 158 |
|
87 | 159 |
#undef REG |
Also available in: Unified diff