[PATCH] Fix ARMFastISel::ARMEmitIntExt shift emission

JF Bastien jfb at google.com
Mon Jul 15 16:16:51 PDT 2013


My patch "r183551 - ARM FastISel integer sext/zext improvements" was
incorrect when emitting ARM register-immediate ASR, LSL, LSR
instructions: they are pseudo-instructions in ARMInstrInfo.td and I
should have used MOVsi instead.

This is not an issue when code is generated through a .s file, but is
an issue when generated straight to a .o (-filetype=obj).

The attached patch fixes this issue by using MOVsi instead of
ASRi/LSLi/LSRi. It reorganizes the lookup table so that sext/zext
cases are consecutive table entries instead of sharing a struct entry
(other non-ARM-shift entries are unchanged, simply moved).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: movsi.patch
Type: application/octet-stream
Size: 7246 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130715/8b8b811a/attachment.obj>


More information about the llvm-commits mailing list