[LLVMbugs] [Bug 12361] New: Incorrect Thumb instruction MUL

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Mar 26 11:07:44 PDT 2012


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

             Bug #: 12361
           Summary: Incorrect Thumb instruction MUL
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: ARM
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: srhines at google.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


There is quite a bit of conflicting documentation regarding the MUL instruction
on Thumb. 
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Cihihggj.html
shows the instruction doing "Rd = Rn * Rd". Other pages (look at page A7-70
from http://www.cse.unsw.edu.au/~cs9242/11/doc/armv5_ref.pdf, which is a copy
of the official documentation) show this instruction as "Rd = Rm * Rd".

According to
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/BABJHFEA.html,
MUL is expected to be encoded similarly to ADC/SBC. If you look at those
instructions in the ARMInstrThumb.td file, you see that they refer to Rdn/Rm
for the registers. The MUL instruction is instead referring to Rd and Rn, with
constraints for Rm = Rd.

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