[mips] [IAS] Add support for the BNEZL and BEQZL pseudo-instructions.
authorToma Tabacu <toma.tabacu@imgtec.com>
Wed, 8 Apr 2015 12:15:05 +0000 (12:15 +0000)
committerToma Tabacu <toma.tabacu@imgtec.com>
Wed, 8 Apr 2015 12:15:05 +0000 (12:15 +0000)
Summary:
They are of the form "bnezl/beqzl $rs, offset" and expand to "bnel/beql $rs, $zero, offset".

These instructions are used in Linux inline assembly.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D8540

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234401 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/MipsInstrInfo.td
test/MC/Mips/mips-jump-delay-slots.s

index b13d372660bb6cc52ac173a278d7d7d3af1dfdd1..a1fad663b1c5bab4d0b9f68200442f2f2bc63e5a 100644 (file)
@@ -1594,8 +1594,12 @@ def : MipsInstAlias<"b $offset", (BEQ ZERO, ZERO, brtarget:$offset), 0>;
 }
 def : MipsInstAlias<"bnez $rs,$offset",
                     (BNE GPR32Opnd:$rs, ZERO, brtarget:$offset), 0>;
+def : MipsInstAlias<"bnezl $rs,$offset",
+                    (BNEL GPR32Opnd:$rs, ZERO, brtarget:$offset), 0>;
 def : MipsInstAlias<"beqz $rs,$offset",
                     (BEQ GPR32Opnd:$rs, ZERO, brtarget:$offset), 0>;
+def : MipsInstAlias<"beqzl $rs,$offset",
+                    (BEQL GPR32Opnd:$rs, ZERO, brtarget:$offset), 0>;
 def : MipsInstAlias<"syscall", (SYSCALL 0), 1>;
     
 def : MipsInstAlias<"break", (BREAK 0, 0), 1>;
index 49f6c159b6802f7efb743ee4b4355c1dd2c15a70..c52416fe15642dad780a773228efdfd6749e335b 100644 (file)
         # CHECK: beql $9, $6, 1332
         # CHECK-NOT: nop
         beql $9,$6,1332
+        # CHECK: beql $9, $zero, 1332
+        # CHECK-NOT: nop
+        beqzl $9,1332
         # CHECK: bnel $9, $6, 1332
         # CHECK-NOT: nop
         bnel $9,$6,1332
+        # CHECK: bnel $9, $zero, 1332
+        # CHECK-NOT: nop
+        bnezl $9,1332
         # CHECK: bgezl $6, 1332
         # CHECK-NOT: nop
         bgezl $6,1332