[Mono-bugs] [Bug 483462] New: Bad code gen of OP_LOADI4_MEMINDEX for PPC64

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Mar 9 11:14:46 EDT 2009


https://bugzilla.novell.com/show_bug.cgi?id=483462


           Summary: Bad code gen of OP_LOADI4_MEMINDEX for PPC64
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.4.x
          Platform: PowerPC-64
        OS/Version: openSUSE 10.3
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: munroesj at us.ibm.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


User-Agent:       Mozilla/5.0 (X11; U; Linux ppc64; en-US; rv:1.8.1.19)
Gecko/20081213 SUSE/2.0.0.19-0.3 Firefox/2.0.0.19

Looking at the handling for indexed loads of integers I see the following:

        case OP_LOADI4_MEMINDEX:
        case OP_LOADU4_MEMINDEX:
            ppc_lwzx (code, ins->dreg, ins->sreg2, ins->inst_basereg);
#ifdef __mono_ppc64__
            if (ins->opcode == OP_LOADI4_MEMINDEX)
                ppc_extsb (code, ins->dreg, ins->dreg);
#endif
            break;

This is obviously wrong it also has the bad side effect of generating a code
size assert because the cpu-ppc64.md specifies a length of 4:

loadi4_memindex: dest:i src1:b src2:i len:4

Reproducible: Couldn't Reproduce

Steps to Reproduce:
1.
2.
3.
Actual Results:  
Got a size assert once in association with a new set of optimizations.


Should use load word arithmetic index for loadi4_memindex in PPC64

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list