Revision 2ae72bce
b/target-sparc/translate.c | ||
---|---|---|
349 | 349 |
*/ |
350 | 350 |
static inline void gen_cc_C_add_icc(TCGv dst, TCGv src1) |
351 | 351 |
{ |
352 |
TCGv r_temp; |
|
352 |
TCGv r_temp1, r_temp2;
|
|
353 | 353 |
int l1; |
354 | 354 |
|
355 | 355 |
l1 = gen_new_label(); |
356 |
r_temp = tcg_temp_new(TCG_TYPE_TL); |
|
357 |
tcg_gen_andi_tl(r_temp, dst, 0xffffffffULL); |
|
358 |
tcg_gen_brcond_tl(TCG_COND_GEU, dst, src1, l1); |
|
356 |
r_temp1 = tcg_temp_new(TCG_TYPE_TL); |
|
357 |
r_temp2 = tcg_temp_new(TCG_TYPE_TL); |
|
358 |
tcg_gen_andi_tl(r_temp1, dst, 0xffffffffULL); |
|
359 |
tcg_gen_andi_tl(r_temp2, src1, 0xffffffffULL); |
|
360 |
tcg_gen_brcond_tl(TCG_COND_GEU, r_temp1, r_temp2, l1); |
|
359 | 361 |
tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_CARRY); |
360 | 362 |
gen_set_label(l1); |
361 |
tcg_temp_free(r_temp); |
|
363 |
tcg_temp_free(r_temp1); |
|
364 |
tcg_temp_free(r_temp2); |
|
362 | 365 |
} |
363 | 366 |
|
364 | 367 |
#ifdef TARGET_SPARC64 |
Also available in: Unified diff