[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


           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:
Gecko/20081213 SUSE/ Firefox/

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);

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:
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