Revision 1a855029
b/target-arm/translate.c | ||
---|---|---|
250 | 250 |
/* Byteswap low halfword and sign extend. */ |
251 | 251 |
static void gen_revsh(TCGv var) |
252 | 252 |
{ |
253 |
TCGv tmp = new_tmp(); |
|
254 |
tcg_gen_shri_i32(tmp, var, 8); |
|
255 |
tcg_gen_andi_i32(tmp, tmp, 0x00ff); |
|
256 |
tcg_gen_shli_i32(var, var, 8); |
|
257 |
tcg_gen_ext8s_i32(var, var); |
|
258 |
tcg_gen_or_i32(var, var, tmp); |
|
259 |
dead_tmp(tmp); |
|
253 |
tcg_gen_ext16u_i32(var, var); |
|
254 |
tcg_gen_bswap16_i32(var, var); |
|
255 |
tcg_gen_ext16s_i32(var, var); |
|
260 | 256 |
} |
261 | 257 |
|
262 | 258 |
/* Unsigned bitfield extract. */ |
Also available in: Unified diff