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: unassig...@nondot.org
ReportedBy: srh...@google.com
CC: llvm...@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.
_______________________________________________
LLVMbugs mailing list
LLVM...@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs