Revision c047da1a target-sh4/translate.c
b/target-sh4/translate.c | ||
---|---|---|
1226 | 1226 |
return; |
1227 | 1227 |
case 0x4000: /* shll Rn */ |
1228 | 1228 |
case 0x4020: /* shal Rn */ |
1229 |
gen_op_shal_Rn(REG(B11_8)); |
|
1229 |
tcg_gen_andi_i32(cpu_T[0], cpu_gregs[REG(B11_8)], 0x80000000); |
|
1230 |
gen_cmp_imm(TCG_COND_NE, cpu_T[0], 0); |
|
1231 |
tcg_gen_shli_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 1); |
|
1230 | 1232 |
return; |
1231 | 1233 |
case 0x4021: /* shar Rn */ |
1232 |
gen_op_shar_Rn(REG(B11_8)); |
|
1234 |
tcg_gen_andi_i32(cpu_T[0], cpu_gregs[REG(B11_8)], 1); |
|
1235 |
gen_cmp_imm(TCG_COND_NE, cpu_T[0], 0); |
|
1236 |
tcg_gen_sari_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 1); |
|
1233 | 1237 |
return; |
1234 | 1238 |
case 0x4001: /* shlr Rn */ |
1235 |
gen_op_shlr_Rn(REG(B11_8)); |
|
1239 |
tcg_gen_andi_i32(cpu_T[0], cpu_gregs[REG(B11_8)], 1); |
|
1240 |
gen_cmp_imm(TCG_COND_NE, cpu_T[0], 0); |
|
1241 |
tcg_gen_shri_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 1); |
|
1236 | 1242 |
return; |
1237 | 1243 |
case 0x4008: /* shll2 Rn */ |
1238 | 1244 |
tcg_gen_shli_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 2); |
Also available in: Unified diff