Revision ce5b3c3d

b/target-sparc/translate.c
306 306
    tcg_gen_andi_tl(reg, reg, 0x1);
307 307
}
308 308

  
309
static inline void gen_cc_clear(void)
309
static inline void gen_cc_clear_icc(void)
310 310
{
311 311
    tcg_gen_movi_i32(cpu_psr, 0);
312
}
313

  
312 314
#ifdef TARGET_SPARC64
315
static inline void gen_cc_clear_xcc(void)
316
{
313 317
    tcg_gen_movi_i32(cpu_xcc, 0);
314
#endif
315 318
}
319
#endif
316 320

  
317 321
/* old op:
318 322
    if (!T0)
......
320 324
    if ((int32_t) T0 < 0)
321 325
        env->psr |= PSR_NEG;
322 326
*/
323
static inline void gen_cc_NZ(TCGv dst)
327
static inline void gen_cc_NZ_icc(TCGv dst)
324 328
{
325 329
    TCGv r_temp;
326 330
    int l1, l2;
......
336 340
    tcg_gen_brcond_tl(TCG_COND_GE, r_temp, tcg_const_tl(0), l2);
337 341
    tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_NEG);
338 342
    gen_set_label(l2);
343
}
344

  
339 345
#ifdef TARGET_SPARC64
340
    {
341
        int l3, l4;
342

  
343
        l3 = gen_new_label();
344
        l4 = gen_new_label();
345
        tcg_gen_brcond_tl(TCG_COND_NE, dst, tcg_const_tl(0), l3);
346
        tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_ZERO);
347
        gen_set_label(l3);
348
        tcg_gen_brcond_tl(TCG_COND_GE, dst, tcg_const_tl(0), l4);
349
        tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_NEG);
350
        gen_set_label(l4);
351
    }
352
#endif
346
static inline void gen_cc_NZ_xcc(TCGv dst)
347
{
348
    int l1, l2;
349

  
350
    l1 = gen_new_label();
351
    l2 = gen_new_label();
352
    tcg_gen_brcond_tl(TCG_COND_NE, dst, tcg_const_tl(0), l1);
353
    tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_ZERO);
354
    gen_set_label(l1);
355
    tcg_gen_brcond_tl(TCG_COND_GE, dst, tcg_const_tl(0), l2);
356
    tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_NEG);
357
    gen_set_label(l2);
353 358
}
359
#endif
354 360

  
355 361
/* old op:
356 362
    if (T0 < src1)
357 363
        env->psr |= PSR_CARRY;
358 364
*/
359
static inline void gen_cc_C_add(TCGv dst, TCGv src1)
365
static inline void gen_cc_C_add_icc(TCGv dst, TCGv src1)
360 366
{
361 367
    TCGv r_temp;
362 368
    int l1;
......
367 373
    tcg_gen_brcond_tl(TCG_COND_GEU, dst, src1, l1);
368 374
    tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_CARRY);
369 375
    gen_set_label(l1);
376
}
377

  
370 378
#ifdef TARGET_SPARC64
371
    {
372
        int l2;
379
static inline void gen_cc_C_add_xcc(TCGv dst, TCGv src1)
380
{
381
    int l1;
373 382

  
374
        l2 = gen_new_label();
375
        tcg_gen_brcond_tl(TCG_COND_GEU, dst, src1, l2);
376
        tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_CARRY);
377
        gen_set_label(l2);
378
    }
379
#endif
383
    l1 = gen_new_label();
384
    tcg_gen_brcond_tl(TCG_COND_GEU, dst, src1, l1);
385
    tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_CARRY);
386
    gen_set_label(l1);
380 387
}
388
#endif
381 389

  
382 390
/* old op:
383 391
    if (((src1 ^ T1 ^ -1) & (src1 ^ T0)) & (1 << 31))
384 392
        env->psr |= PSR_OVF;
385 393
*/
386
static inline void gen_cc_V_add(TCGv dst, TCGv src1, TCGv src2)
394
static inline void gen_cc_V_add_icc(TCGv dst, TCGv src1, TCGv src2)
387 395
{
388 396
    TCGv r_temp;
389 397
    int l1;
......
399 407
    tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
400 408
    tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_OVF);
401 409
    gen_set_label(l1);
410
}
411

  
402 412
#ifdef TARGET_SPARC64
403
    {
404
        int l2;
405

  
406
        l2 = gen_new_label();
407
        tcg_gen_xor_tl(r_temp, src1, src2);
408
        tcg_gen_xori_tl(r_temp, r_temp, -1);
409
        tcg_gen_xor_tl(cpu_tmp0, src1, dst);
410
        tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0);
411
        tcg_gen_andi_tl(r_temp, r_temp, (1ULL << 63));
412
        tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l2);
413
        tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_OVF);
414
        gen_set_label(l2);
415
    }
416
#endif
417
    tcg_gen_discard_tl(r_temp);
413
static inline void gen_cc_V_add_xcc(TCGv dst, TCGv src1, TCGv src2)
414
{
415
    TCGv r_temp;
416
    int l1;
417

  
418
    l1 = gen_new_label();
419

  
420
    r_temp = tcg_temp_new(TCG_TYPE_TL);
421
    tcg_gen_xor_tl(r_temp, src1, src2);
422
    tcg_gen_xori_tl(r_temp, r_temp, -1);
423
    tcg_gen_xor_tl(cpu_tmp0, src1, dst);
424
    tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0);
425
    tcg_gen_andi_tl(r_temp, r_temp, (1ULL << 63));
426
    tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
427
    tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_OVF);
428
    gen_set_label(l1);
418 429
}
430
#endif
419 431

  
420 432
static inline void gen_add_tv(TCGv dst, TCGv src1, TCGv src2)
421 433
{
......
433 445
    tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
434 446
    tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF));
435 447
    gen_set_label(l1);
436
#ifdef TARGET_SPARC64
437
    {
438
        int l2;
439

  
440
        l2 = gen_new_label();
441
        tcg_gen_xor_tl(r_temp, src1, src2);
442
        tcg_gen_xori_tl(r_temp, r_temp, -1);
443
        tcg_gen_xor_tl(cpu_tmp0, src1, dst);
444
        tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0);
445
        tcg_gen_andi_tl(r_temp, r_temp, (1ULL << 63));
446
        tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l2);
447
        tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF));
448
        gen_set_label(l2);
449
    }
450
#endif
451
    tcg_gen_discard_tl(r_temp);
452 448
}
453 449

  
454 450
static inline void gen_cc_V_tag(TCGv src1, TCGv src2)
......
479 475
{
480 476
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
481 477
    tcg_gen_add_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
482
    gen_cc_clear();
483
    gen_cc_NZ(cpu_T[0]);
484
    gen_cc_C_add(cpu_T[0], cpu_cc_src);
485
    gen_cc_V_add(cpu_T[0], cpu_cc_src, cpu_T[1]);
478
    gen_cc_clear_icc();
479
    gen_cc_NZ_icc(cpu_T[0]);
480
    gen_cc_C_add_icc(cpu_T[0], cpu_cc_src);
481
    gen_cc_V_add_icc(cpu_T[0], cpu_cc_src, cpu_T[1]);
482
#ifdef TARGET_SPARC64
483
    gen_cc_clear_xcc();
484
    gen_cc_NZ_xcc(cpu_T[0]);
485
    gen_cc_C_add_xcc(cpu_T[0], cpu_cc_src);
486
    gen_cc_V_add_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
487
#endif
486 488
}
487 489

  
488 490
static inline void gen_op_addx_T1_T0_cc(void)
......
490 492
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
491 493
    gen_mov_reg_C(cpu_tmp0, cpu_psr);
492 494
    tcg_gen_add_tl(cpu_T[0], cpu_T[0], cpu_tmp0);
493
    gen_cc_clear();
494
    gen_cc_C_add(cpu_T[0], cpu_cc_src);
495
    gen_cc_clear_icc();
496
    gen_cc_C_add_icc(cpu_T[0], cpu_cc_src);
497
#ifdef TARGET_SPARC64
498
    gen_cc_clear_xcc();
499
    gen_cc_C_add_xcc(cpu_T[0], cpu_cc_src);
500
#endif
495 501
    tcg_gen_add_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
496
    gen_cc_C_add(cpu_T[0], cpu_cc_src);
497
    gen_cc_NZ(cpu_T[0]);
498
    gen_cc_V_add(cpu_T[0], cpu_cc_src, cpu_T[1]);
502
    gen_cc_NZ_icc(cpu_T[0]);
503
    gen_cc_C_add_icc(cpu_T[0], cpu_cc_src);
504
    gen_cc_V_add_icc(cpu_T[0], cpu_cc_src, cpu_T[1]);
505
#ifdef TARGET_SPARC64
506
    gen_cc_NZ_xcc(cpu_T[0]);
507
    gen_cc_C_add_xcc(cpu_T[0], cpu_cc_src);
508
    gen_cc_V_add_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
509
#endif
499 510
}
500 511

  
501 512
static inline void gen_op_tadd_T1_T0_cc(void)
502 513
{
503 514
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
504 515
    tcg_gen_add_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
505
    gen_cc_clear();
506
    gen_cc_NZ(cpu_T[0]);
507
    gen_cc_C_add(cpu_T[0], cpu_cc_src);
508
    gen_cc_V_add(cpu_T[0], cpu_cc_src, cpu_T[1]);
516
    gen_cc_clear_icc();
517
    gen_cc_NZ_icc(cpu_T[0]);
518
    gen_cc_C_add_icc(cpu_T[0], cpu_cc_src);
519
    gen_cc_V_add_icc(cpu_T[0], cpu_cc_src, cpu_T[1]);
509 520
    gen_cc_V_tag(cpu_cc_src, cpu_T[1]);
521
#ifdef TARGET_SPARC64
522
    gen_cc_clear_xcc();
523
    gen_cc_NZ_xcc(cpu_T[0]);
524
    gen_cc_C_add_xcc(cpu_T[0], cpu_cc_src);
525
    gen_cc_V_add_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
526
#endif
510 527
}
511 528

  
512 529
static inline void gen_op_tadd_T1_T0_ccTV(void)
......
515 532
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
516 533
    tcg_gen_add_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
517 534
    gen_add_tv(cpu_T[0], cpu_cc_src, cpu_T[1]);
518
    gen_cc_clear();
519
    gen_cc_NZ(cpu_T[0]);
520
    gen_cc_C_add(cpu_T[0], cpu_cc_src);
535
    gen_cc_clear_icc();
536
    gen_cc_NZ_icc(cpu_T[0]);
537
    gen_cc_C_add_icc(cpu_T[0], cpu_cc_src);
538
#ifdef TARGET_SPARC64
539
    gen_cc_clear_xcc();
540
    gen_cc_NZ_xcc(cpu_T[0]);
541
    gen_cc_C_add_xcc(cpu_T[0], cpu_cc_src);
542
    gen_cc_V_add_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
543
#endif
521 544
}
522 545

  
523 546
/* old op:
524 547
    if (src1 < T1)
525 548
        env->psr |= PSR_CARRY;
526 549
*/
527
static inline void gen_cc_C_sub(TCGv src1, TCGv src2)
550
static inline void gen_cc_C_sub_icc(TCGv src1, TCGv src2)
528 551
{
529 552
    TCGv r_temp1, r_temp2;
530 553
    int l1;
......
537 560
    tcg_gen_brcond_tl(TCG_COND_GEU, r_temp1, r_temp2, l1);
538 561
    tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_CARRY);
539 562
    gen_set_label(l1);
563
}
564

  
540 565
#ifdef TARGET_SPARC64
541
    {
542
        int l2;
566
static inline void gen_cc_C_sub_xcc(TCGv src1, TCGv src2)
567
{
568
    int l1;
543 569

  
544
        l2 = gen_new_label();
545
        tcg_gen_brcond_tl(TCG_COND_GEU, src1, src2, l2);
546
        tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_CARRY);
547
        gen_set_label(l2);
548
    }
549
#endif
570
    l1 = gen_new_label();
571
    tcg_gen_brcond_tl(TCG_COND_GEU, src1, src2, l1);
572
    tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_CARRY);
573
    gen_set_label(l1);
550 574
}
575
#endif
551 576

  
552 577
/* old op:
553 578
    if (((src1 ^ T1) & (src1 ^ T0)) & (1 << 31))
554 579
        env->psr |= PSR_OVF;
555 580
*/
556
static inline void gen_cc_V_sub(TCGv dst, TCGv src1, TCGv src2)
581
static inline void gen_cc_V_sub_icc(TCGv dst, TCGv src1, TCGv src2)
557 582
{
558 583
    TCGv r_temp;
559 584
    int l1;
......
568 593
    tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
569 594
    tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_OVF);
570 595
    gen_set_label(l1);
596
}
597

  
571 598
#ifdef TARGET_SPARC64
572
    {
573
        int l2;
574

  
575
        l2 = gen_new_label();
576
        tcg_gen_xor_tl(r_temp, src1, src2);
577
        tcg_gen_xor_tl(cpu_tmp0, src1, dst);
578
        tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0);
579
        tcg_gen_andi_tl(r_temp, r_temp, (1ULL << 63));
580
        tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l2);
581
        tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_OVF);
582
        gen_set_label(l2);
583
    }
584
#endif
585
    tcg_gen_discard_tl(r_temp);
599
static inline void gen_cc_V_sub_xcc(TCGv dst, TCGv src1, TCGv src2)
600
{
601
    TCGv r_temp;
602
    int l1;
603

  
604
    l1 = gen_new_label();
605

  
606
    r_temp = tcg_temp_new(TCG_TYPE_TL);
607
    tcg_gen_xor_tl(r_temp, src1, src2);
608
    tcg_gen_xor_tl(cpu_tmp0, src1, dst);
609
    tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0);
610
    tcg_gen_andi_tl(r_temp, r_temp, (1ULL << 63));
611
    tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
612
    tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_OVF);
613
    gen_set_label(l1);
586 614
}
615
#endif
587 616

  
588 617
static inline void gen_sub_tv(TCGv dst, TCGv src1, TCGv src2)
589 618
{
......
600 629
    tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
601 630
    tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF));
602 631
    gen_set_label(l1);
603
#ifdef TARGET_SPARC64
604
    {
605
        int l2;
606

  
607
        l2 = gen_new_label();
608
        tcg_gen_xor_tl(r_temp, src1, src2);
609
        tcg_gen_xor_tl(cpu_tmp0, src1, dst);
610
        tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0);
611
        tcg_gen_andi_tl(r_temp, r_temp, (1ULL << 63));
612
        tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l2);
613
        tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF));
614
        gen_set_label(l2);
615
    }
616
#endif
617 632
    tcg_gen_discard_tl(r_temp);
618 633
}
619 634

  
......
621 636
{
622 637
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
623 638
    tcg_gen_sub_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
624
    gen_cc_clear();
625
    gen_cc_NZ(cpu_T[0]);
626
    gen_cc_C_sub(cpu_cc_src, cpu_T[1]);
627
    gen_cc_V_sub(cpu_T[0], cpu_cc_src, cpu_T[1]);
639
    gen_cc_clear_icc();
640
    gen_cc_NZ_icc(cpu_T[0]);
641
    gen_cc_C_sub_icc(cpu_cc_src, cpu_T[1]);
642
    gen_cc_V_sub_icc(cpu_T[0], cpu_cc_src, cpu_T[1]);
643
#ifdef TARGET_SPARC64
644
    gen_cc_clear_xcc();
645
    gen_cc_NZ_xcc(cpu_T[0]);
646
    gen_cc_C_sub_xcc(cpu_cc_src, cpu_T[1]);
647
    gen_cc_V_sub_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
648
#endif
628 649
}
629 650

  
630 651
static inline void gen_op_subx_T1_T0_cc(void)
......
632 653
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
633 654
    gen_mov_reg_C(cpu_tmp0, cpu_psr);
634 655
    tcg_gen_sub_tl(cpu_T[0], cpu_T[0], cpu_tmp0);
635
    gen_cc_clear();
636
    gen_cc_C_sub(cpu_T[0], cpu_cc_src);
656
    gen_cc_clear_icc();
657
    gen_cc_C_sub_icc(cpu_T[0], cpu_cc_src);
658
#ifdef TARGET_SPARC64
659
    gen_cc_clear_xcc();
660
    gen_cc_C_sub_xcc(cpu_T[0], cpu_cc_src);
661
#endif
637 662
    tcg_gen_sub_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
638
    gen_cc_C_sub(cpu_T[0], cpu_cc_src);
639
    gen_cc_NZ(cpu_T[0]);
640
    gen_cc_V_sub(cpu_T[0], cpu_cc_src, cpu_T[1]);
663
    gen_cc_NZ_icc(cpu_T[0]);
664
    gen_cc_C_sub_icc(cpu_T[0], cpu_cc_src);
665
    gen_cc_V_sub_icc(cpu_T[0], cpu_cc_src, cpu_T[1]);
666
#ifdef TARGET_SPARC64
667
    gen_cc_NZ_xcc(cpu_T[0]);
668
    gen_cc_C_sub_xcc(cpu_T[0], cpu_cc_src);
669
    gen_cc_V_sub_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
670
#endif
641 671
}
642 672

  
643 673
static inline void gen_op_tsub_T1_T0_cc(void)
644 674
{
645 675
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
646 676
    tcg_gen_sub_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
647
    gen_cc_clear();
648
    gen_cc_NZ(cpu_T[0]);
649
    gen_cc_C_sub(cpu_cc_src, cpu_T[1]);
650
    gen_cc_V_sub(cpu_T[0], cpu_cc_src, cpu_T[1]);
677
    gen_cc_clear_icc();
678
    gen_cc_NZ_icc(cpu_T[0]);
679
    gen_cc_C_sub_icc(cpu_cc_src, cpu_T[1]);
680
    gen_cc_V_sub_icc(cpu_T[0], cpu_cc_src, cpu_T[1]);
651 681
    gen_cc_V_tag(cpu_cc_src, cpu_T[1]);
682
#ifdef TARGET_SPARC64
683
    gen_cc_clear_xcc();
684
    gen_cc_NZ_xcc(cpu_T[0]);
685
    gen_cc_C_sub_xcc(cpu_cc_src, cpu_T[1]);
686
    gen_cc_V_sub_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
687
#endif
652 688
}
653 689

  
654 690
static inline void gen_op_tsub_T1_T0_ccTV(void)
......
657 693
    tcg_gen_mov_tl(cpu_cc_src, cpu_T[0]);
658 694
    tcg_gen_sub_tl(cpu_T[0], cpu_T[0], cpu_T[1]);
659 695
    gen_sub_tv(cpu_T[0], cpu_cc_src, cpu_T[1]);
660
    gen_cc_clear();
661
    gen_cc_NZ(cpu_T[0]);
662
    gen_cc_C_sub(cpu_cc_src, cpu_T[1]);
696
    gen_cc_clear_icc();
697
    gen_cc_NZ_icc(cpu_T[0]);
698
    gen_cc_C_sub_icc(cpu_cc_src, cpu_T[1]);
699
#ifdef TARGET_SPARC64
700
    gen_cc_clear_xcc();
701
    gen_cc_NZ_xcc(cpu_T[0]);
702
    gen_cc_C_sub_xcc(cpu_cc_src, cpu_T[1]);
703
    gen_cc_V_sub_xcc(cpu_T[0], cpu_cc_src, cpu_T[1]);
704
#endif
663 705
}
664 706

  
665 707
static inline void gen_op_mulscc_T1_T0(void)
......
711 753
    tcg_gen_add_tl(cpu_T[0], cpu_cc_src, cpu_cc_src2);
712 754
    tcg_gen_discard_tl(r_temp);
713 755

  
714
    gen_cc_clear();
715
    gen_cc_NZ(cpu_T[0]);
716
    gen_cc_V_add(cpu_T[0], cpu_cc_src, cpu_cc_src2);
717
    gen_cc_C_add(cpu_T[0], cpu_cc_src);
756
    gen_cc_clear_icc();
757
    gen_cc_NZ_icc(cpu_T[0]);
758
    gen_cc_V_add_icc(cpu_T[0], cpu_cc_src, cpu_cc_src2);
759
    gen_cc_C_add_icc(cpu_T[0], cpu_cc_src);
718 760
}
719 761

  
720 762
static inline void gen_op_umul_T1_T0(void)
......
797 839
{
798 840
    int l1;
799 841

  
800
    gen_cc_clear();
801
    gen_cc_NZ(cpu_T[0]);
842
    gen_cc_clear_icc();
843
    gen_cc_NZ_icc(cpu_T[0]);
802 844
    l1 = gen_new_label();
803 845
    tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, cc_src2));
804 846
    tcg_gen_brcond_tl(TCG_COND_EQ, cpu_tmp0, tcg_const_tl(0), l1);
......
808 850

  
809 851
static inline void gen_op_logic_T0_cc(void)
810 852
{
811
    gen_cc_clear();
812
    gen_cc_NZ(cpu_T[0]);
853
    gen_cc_clear_icc();
854
    gen_cc_NZ_icc(cpu_T[0]);
855
#ifdef TARGET_SPARC64
856
    gen_cc_clear_xcc();
857
    gen_cc_NZ_xcc(cpu_T[0]);
858
#endif
813 859
}
814 860

  
815 861
// 1

Also available in: Unified diff