[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