Revision cb2c9921 target-mips/translate.c
b/target-mips/translate.c | ||
---|---|---|
2129 | 2129 |
{ |
2130 | 2130 |
TCGv r_tmp1 = tcg_temp_new(TCG_TYPE_I64); |
2131 | 2131 |
TCGv r_tmp2 = tcg_temp_new(TCG_TYPE_I64); |
2132 |
TCGv r_tmp3 = tcg_temp_new(TCG_TYPE_I64); |
|
2133 | 2132 |
|
2134 | 2133 |
tcg_gen_ext32s_tl(t0, t0); |
2135 | 2134 |
tcg_gen_ext32s_tl(t1, t1); |
... | ... | |
2138 | 2137 |
tcg_gen_mul_i64(r_tmp1, r_tmp1, r_tmp2); |
2139 | 2138 |
gen_load_LO(t0, 0); |
2140 | 2139 |
gen_load_HI(t1, 0); |
2141 |
tcg_gen_extu_tl_i64(r_tmp2, t0); |
|
2142 |
tcg_gen_extu_tl_i64(r_tmp3, t1); |
|
2143 |
tcg_gen_shli_i64(r_tmp3, r_tmp3, 32); |
|
2144 |
tcg_gen_or_i64(r_tmp2, r_tmp2, r_tmp3); |
|
2145 |
tcg_temp_free(r_tmp3); |
|
2140 |
tcg_gen_concat_tl_i64(r_tmp2, t0, t1); |
|
2146 | 2141 |
tcg_gen_add_i64(r_tmp1, r_tmp1, r_tmp2); |
2147 | 2142 |
tcg_temp_free(r_tmp2); |
2148 | 2143 |
tcg_gen_trunc_i64_tl(t0, r_tmp1); |
... | ... | |
2160 | 2155 |
{ |
2161 | 2156 |
TCGv r_tmp1 = tcg_temp_new(TCG_TYPE_I64); |
2162 | 2157 |
TCGv r_tmp2 = tcg_temp_new(TCG_TYPE_I64); |
2163 |
TCGv r_tmp3 = tcg_temp_new(TCG_TYPE_I64); |
|
2164 | 2158 |
|
2165 | 2159 |
tcg_gen_ext32u_tl(t0, t0); |
2166 | 2160 |
tcg_gen_ext32u_tl(t1, t1); |
... | ... | |
2169 | 2163 |
tcg_gen_mul_i64(r_tmp1, r_tmp1, r_tmp2); |
2170 | 2164 |
gen_load_LO(t0, 0); |
2171 | 2165 |
gen_load_HI(t1, 0); |
2172 |
tcg_gen_extu_tl_i64(r_tmp2, t0); |
|
2173 |
tcg_gen_extu_tl_i64(r_tmp3, t1); |
|
2174 |
tcg_gen_shli_i64(r_tmp3, r_tmp3, 32); |
|
2175 |
tcg_gen_or_i64(r_tmp2, r_tmp2, r_tmp3); |
|
2176 |
tcg_temp_free(r_tmp3); |
|
2166 |
tcg_gen_concat_tl_i64(r_tmp2, t0, t1); |
|
2177 | 2167 |
tcg_gen_add_i64(r_tmp1, r_tmp1, r_tmp2); |
2178 | 2168 |
tcg_temp_free(r_tmp2); |
2179 | 2169 |
tcg_gen_trunc_i64_tl(t0, r_tmp1); |
... | ... | |
2191 | 2181 |
{ |
2192 | 2182 |
TCGv r_tmp1 = tcg_temp_new(TCG_TYPE_I64); |
2193 | 2183 |
TCGv r_tmp2 = tcg_temp_new(TCG_TYPE_I64); |
2194 |
TCGv r_tmp3 = tcg_temp_new(TCG_TYPE_I64); |
|
2195 | 2184 |
|
2196 | 2185 |
tcg_gen_ext32s_tl(t0, t0); |
2197 | 2186 |
tcg_gen_ext32s_tl(t1, t1); |
... | ... | |
2200 | 2189 |
tcg_gen_mul_i64(r_tmp1, r_tmp1, r_tmp2); |
2201 | 2190 |
gen_load_LO(t0, 0); |
2202 | 2191 |
gen_load_HI(t1, 0); |
2203 |
tcg_gen_extu_tl_i64(r_tmp2, t0); |
|
2204 |
tcg_gen_extu_tl_i64(r_tmp3, t1); |
|
2205 |
tcg_gen_shli_i64(r_tmp3, r_tmp3, 32); |
|
2206 |
tcg_gen_or_i64(r_tmp2, r_tmp2, r_tmp3); |
|
2207 |
tcg_temp_free(r_tmp3); |
|
2192 |
tcg_gen_concat_tl_i64(r_tmp2, t0, t1); |
|
2208 | 2193 |
tcg_gen_sub_i64(r_tmp1, r_tmp1, r_tmp2); |
2209 | 2194 |
tcg_temp_free(r_tmp2); |
2210 | 2195 |
tcg_gen_trunc_i64_tl(t0, r_tmp1); |
... | ... | |
2222 | 2207 |
{ |
2223 | 2208 |
TCGv r_tmp1 = tcg_temp_new(TCG_TYPE_I64); |
2224 | 2209 |
TCGv r_tmp2 = tcg_temp_new(TCG_TYPE_I64); |
2225 |
TCGv r_tmp3 = tcg_temp_new(TCG_TYPE_I64); |
|
2226 | 2210 |
|
2227 | 2211 |
tcg_gen_ext32u_tl(t0, t0); |
2228 | 2212 |
tcg_gen_ext32u_tl(t1, t1); |
... | ... | |
2231 | 2215 |
tcg_gen_mul_i64(r_tmp1, r_tmp1, r_tmp2); |
2232 | 2216 |
gen_load_LO(t0, 0); |
2233 | 2217 |
gen_load_HI(t1, 0); |
2234 |
tcg_gen_extu_tl_i64(r_tmp2, t0); |
|
2235 |
tcg_gen_extu_tl_i64(r_tmp3, t1); |
|
2236 |
tcg_gen_shli_i64(r_tmp3, r_tmp3, 32); |
|
2237 |
tcg_gen_or_i64(r_tmp2, r_tmp2, r_tmp3); |
|
2238 |
tcg_temp_free(r_tmp3); |
|
2218 |
tcg_gen_concat_tl_i64(r_tmp2, t0, t1); |
|
2239 | 2219 |
tcg_gen_sub_i64(r_tmp1, r_tmp1, r_tmp2); |
2240 | 2220 |
tcg_temp_free(r_tmp2); |
2241 | 2221 |
tcg_gen_trunc_i64_tl(t0, r_tmp1); |
Also available in: Unified diff