[LLVMbugs] [Bug 4850] New: The execution of code generated for MIPS is failure

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Sep 1 04:35:57 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=4850

           Summary: The execution of code generated for MIPS is failure
           Product: new-bugs
           Version: 2.6
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: miyo at wasamon.net
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=3410)
 --> (http://llvm.org/bugs/attachment.cgi?id=3410)
tried source code, generated code by llvm, and the dump of execution

I compiled the program (swap0.c) included the attached archive
by using clang-cc and native gcc for MIPS32.
which is a simple program to swap arguments
But the execution was failure.

The process of compilation is the following:
 clang-cc swap0.c
 llvm-as swap0.ll
 llc -march=mips swap0.bc
 gcc -g swap0.s

I checked a dump result of execution on MIPS (dump.txt).
In the result, it seems that callee take the arguments by register
although caller passed the arguments by stack.

At the instruction at line 20 in caller,
                sw      $4, 0($sp)
callee stores one of the passed arguments into 0($sp)
under assuming that the values was passed by $4.
But, caller does not set the value to $4.
So, when the program load a value from0($sp),
the execution is failure.

It is succeeded executing of codes for x86 and Cell SPU
generated by same process.

Do I have to set some options for a compilation of MIPS program ?
Or, did I have mistakes in my compilation process?

Target processor is MIPS and Linux is running on it.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list