[llvm] r199026 - Add missing mul aliases for armv4 support. Add checks that armv4 can
Saleem Abdulrasool
compnerd at compnerd.org
Sat Jan 11 19:56:17 PST 2014
On Sat, Jan 11, 2014 at 7:35 PM, Joerg Sonnenberger <joerg at bec.de> wrote:
> Author: joerg
> Date: Sat Jan 11 21:35:18 2014
> New Revision: 199026
>
> URL: http://llvm.org/viewvc/llvm-project?rev=199026&view=rev
> Log:
> Add missing mul aliases for armv4 support. Add checks that armv4 can
> assemble the various mul instructions.
>
> Modified:
> llvm/trunk/lib/Target/ARM/ARMInstrInfo.td
> llvm/trunk/test/MC/ARM/directive-arch-armv4.s
>
> Modified: llvm/trunk/lib/Target/ARM/ARMInstrInfo.td
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrInfo.td?rev=199026&r1=199025&r2=199026&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMInstrInfo.td (original)
> +++ llvm/trunk/lib/Target/ARM/ARMInstrInfo.td Sat Jan 11 21:35:18 2014
> @@ -5596,9 +5596,18 @@ def : ARMInstAlias<"neg${s}${p} $Rd, $Rm
> def : InstAlias<"nop${p}", (MOVr R0, R0, pred:$p, zero_reg)>,
> Requires<[IsARM, NoV6]>;
>
> -// UMULL/SMULL are available on all arches, but the instruction
> definitions
> -// need difference constraints pre-v6. Use these aliases for the assembly
> -// parsing on pre-v6.
> +// MUL/UMLAL/SMLAL/UMULL/SMULL are available on all arches, but
> +// the instruction definitions need difference constraints pre-v6.
> +// Use these aliases for the assembly parsing on pre-v6.
> +def : InstAlias<"mul${s}${p} $Rd, $Rn, $Rm",
> + (MUL GPRnopc:$Rd, GPRnopc:$Rn, GPRnopc:$Rm, pred:$p,
> cc_out:$s)>,
> + Requires<[IsARM, NoV6]>;
> +def : InstAlias<"smlal${s}${p} $RdLo, $RdHi, $Rn, $Rm",
> + (SMLAL GPR:$RdLo, GPR:$RdHi, GPR:$Rn, GPR:$Rm, pred:$p,
> cc_out:$s)>,
> + Requires<[IsARM, NoV6]>;
> +def : InstAlias<"umlal${s}${p} $RdLo, $RdHi, $Rn, $Rm",
> + (UMLAL GPR:$RdLo, GPR:$RdHi, GPR:$Rn, GPR:$Rm, pred:$p,
> cc_out:$s)>,
> + Requires<[IsARM, NoV6]>;
> def : InstAlias<"smull${s}${p} $RdLo, $RdHi, $Rn, $Rm",
> (SMULL GPR:$RdLo, GPR:$RdHi, GPR:$Rn, GPR:$Rm, pred:$p,
> cc_out:$s)>,
> Requires<[IsARM, NoV6]>;
>
> Modified: llvm/trunk/test/MC/ARM/directive-arch-armv4.s
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/directive-arch-armv4.s?rev=199026&r1=199025&r2=199026&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/MC/ARM/directive-arch-armv4.s (original)
> +++ llvm/trunk/test/MC/ARM/directive-arch-armv4.s Sat Jan 11 21:35:18 2014
> @@ -18,7 +18,7 @@
> @ CHECK-OBJ: Flags [ (0x0)
> @ CHECK-OBJ: ]
> @ CHECK-OBJ: Address: 0x0
> -@ CHECK-OBJ: Offset: 0x34
> +@ CHECK-OBJ: Offset: 0x{{[0-9A-F]*}}
>
Is there a reason to keep this check around? It seems that it is just
adding noise to the test.
> @ CHECK-OBJ: Size: 23
> @ CHECK-OBJ: Link: 0
> @ CHECK-OBJ: Info: 0
> @@ -28,3 +28,12 @@
> @ CHECK-OBJ: 0000: 41160000 00616561 62690001 0C000000
> |A....aeabi......|
> @ CHECK-OBJ: 0010: 05340006 010801 |.4.....|
> @ CHECK-OBJ: )
> +
> +
> +@ Check that multiplication is supported
> + mul r4, r5, r6
> + smull r4, r5, r6, r3
> + umull r4, r5, r6, r3
> + umlal r4, r5, r6, r3
> + umaal r4, r5, r6, r3
> + smlal r4, r5, r6, r3
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140111/dbe3c2f5/attachment.html>
More information about the llvm-commits
mailing list