[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