Revision d831fdb0

b/tcg/ppc/tcg-target.c
552 552
{
553 553
    int addr_reg, data_reg, data_reg2, r0, r1, rbase, bswap;
554 554
#ifdef CONFIG_SOFTMMU
555
    int mem_index, s_bits, r2;
555
    int mem_index, s_bits, r2, ir;
556 556
    void *label1_ptr, *label2_ptr;
557 557
#if TARGET_LONG_BITS == 64
558 558
    int addr_reg2;
......
614 614
#endif
615 615

  
616 616
    /* slow path */
617
    ir = 3;
617 618
#if TARGET_LONG_BITS == 32
618
    tcg_out_mov (s, TCG_TYPE_I32, 3, addr_reg);
619
    tcg_out_movi (s, TCG_TYPE_I32, 4, mem_index);
619
    tcg_out_mov (s, TCG_TYPE_I32, ir++, addr_reg);
620 620
#else
621
    tcg_out_mov (s, TCG_TYPE_I32, 3, addr_reg2);
622
    tcg_out_mov (s, TCG_TYPE_I32, 4, addr_reg);
623
    tcg_out_movi (s, TCG_TYPE_I32, 5, mem_index);
621
#ifdef TCG_TARGET_CALL_ALIGN_ARGS
622
    ir |= 1;
623
#endif
624
    tcg_out_mov (s, TCG_TYPE_I32, ir++, addr_reg2);
625
    tcg_out_mov (s, TCG_TYPE_I32, ir++, addr_reg);
624 626
#endif
627
    tcg_out_movi (s, TCG_TYPE_I32, ir, mem_index);
625 628

  
626 629
    tcg_out_call (s, (tcg_target_long) qemu_ld_helpers[s_bits], 1);
627 630
    switch (opc) {
......
810 813
#endif
811 814

  
812 815
    /* slow path */
816
    ir = 3;
813 817
#if TARGET_LONG_BITS == 32
814
    tcg_out_mov (s, TCG_TYPE_I32, 3, addr_reg);
815
    ir = 4;
818
    tcg_out_mov (s, TCG_TYPE_I32, ir++, addr_reg);
816 819
#else
817
    tcg_out_mov (s, TCG_TYPE_I32, 3, addr_reg2);
818
    tcg_out_mov (s, TCG_TYPE_I32, 4, addr_reg);
819
    ir = 5;
820
#ifdef TCG_TARGET_CALL_ALIGN_ARGS
821
    ir |= 1;
822
#endif
823
    tcg_out_mov (s, TCG_TYPE_I32, ir++, addr_reg2);
824
    tcg_out_mov (s, TCG_TYPE_I32, ir++, addr_reg);
820 825
#endif
821 826

  
822 827
    switch (opc) {
......
841 846
        break;
842 847
    case 3:
843 848
#ifdef TCG_TARGET_CALL_ALIGN_ARGS
844
        ir = 5;
849
        ir |= 1;
845 850
#endif
846 851
        tcg_out_mov (s, TCG_TYPE_I32, ir++, data_reg2);
847 852
        tcg_out_mov (s, TCG_TYPE_I32, ir, data_reg);

Also available in: Unified diff