diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/Mips/Mips64InstrInfo.td | 20 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/Mips64r6InstrInfo.td | 1 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips2/invalid-mips3-wrong-error.s | 1 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips2/invalid-mips3.s | 1 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips3/valid.s | 8 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips4/valid.s | 10 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips5/valid.s | 10 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips64/valid.s | 10 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips64r2/valid.s | 10 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips64r6/invalid-mips64.s | 10 | 
10 files changed, 67 insertions, 14 deletions
diff --git a/llvm/lib/Target/Mips/Mips64InstrInfo.td b/llvm/lib/Target/Mips/Mips64InstrInfo.td index 4b0d2a28298..a799cf7f08b 100644 --- a/llvm/lib/Target/Mips/Mips64InstrInfo.td +++ b/llvm/lib/Target/Mips/Mips64InstrInfo.td @@ -65,7 +65,7 @@ let isPseudo = 1, isCodeGenOnly = 1 in {  let DecoderNamespace = "Mips64" in {  /// Arithmetic Instructions (ALU Immediate)  def DADDi   : ArithLogicI<"daddi", simm16_64, GPR64Opnd>, ADDI_FM<0x18>, -              ISA_MIPS3; +              ISA_MIPS3_NOT_32R6_64R6;  def DADDiu  : ArithLogicI<"daddiu", simm16_64, GPR64Opnd, II_DADDIU,                            immSExt16, add>,                ADDI_FM<0x19>, IsAsCheapAsAMove, ISA_MIPS3; @@ -440,13 +440,13 @@ def : MipsInstAlias<"daddu $rs, $rt, $imm",                      0>;  def : MipsInstAlias<"dadd $rs, $rt, $imm",                      (DADDi GPR64Opnd:$rs, GPR64Opnd:$rt, simm16_64:$imm), -                    0>; +                    0>, ISA_MIPS3_NOT_32R6_64R6;  def : MipsInstAlias<"daddu $rs, $imm",                      (DADDiu GPR64Opnd:$rs, GPR64Opnd:$rs, simm16_64:$imm),                      0>;  def : MipsInstAlias<"dadd $rs, $imm",                      (DADDi GPR64Opnd:$rs, GPR64Opnd:$rs, simm16_64:$imm), -                    0>; +                    0>, ISA_MIPS3_NOT_32R6_64R6;  def : MipsInstAlias<"add $rs, $imm",                      (ADDi GPR32Opnd:$rs, GPR32Opnd:$rs, simm16:$imm),                      0>; @@ -459,10 +459,22 @@ def : MipsInstAlias<"dsll $rd, $rt, $rs",  def : MipsInstAlias<"dsubu $rt, $rs, $imm",                      (DADDiu GPR64Opnd:$rt, GPR64Opnd:$rs,                              InvertedImOperand64:$imm), 0>; +def : MipsInstAlias<"dsubi $rs, $rt, $imm", +                    (DADDi GPR64Opnd:$rs, GPR64Opnd:$rt, +                           InvertedImOperand64:$imm), +                    0>, ISA_MIPS3_NOT_32R6_64R6; +def : MipsInstAlias<"dsubi $rs, $imm", +                    (DADDi GPR64Opnd:$rs, GPR64Opnd:$rs, +                           InvertedImOperand64:$imm), +                    0>, ISA_MIPS3_NOT_32R6_64R6; +def : MipsInstAlias<"dsub $rs, $rt, $imm", +                    (DADDi GPR64Opnd:$rs, GPR64Opnd:$rt, +                           InvertedImOperand64:$imm), +                    0>, ISA_MIPS3_NOT_32R6_64R6;  def : MipsInstAlias<"dsub $rs, $imm",                      (DADDi GPR64Opnd:$rs, GPR64Opnd:$rs,                             InvertedImOperand64:$imm), -                    0>; +                    0>, ISA_MIPS3_NOT_32R6_64R6;  def : MipsInstAlias<"dsubu $rs, $imm",                      (DADDiu GPR64Opnd:$rs, GPR64Opnd:$rs,                              InvertedImOperand64:$imm), diff --git a/llvm/lib/Target/Mips/Mips64r6InstrInfo.td b/llvm/lib/Target/Mips/Mips64r6InstrInfo.td index 00cfe6a4ac5..cfee980d3cf 100644 --- a/llvm/lib/Target/Mips/Mips64r6InstrInfo.td +++ b/llvm/lib/Target/Mips/Mips64r6InstrInfo.td @@ -14,7 +14,6 @@  // Notes about removals/changes from MIPS32r6:  // Reencoded: dclo, dclz  // Reencoded: lld, scd -// Removed: daddi  //===----------------------------------------------------------------------===//  // diff --git a/llvm/test/MC/Mips/mips2/invalid-mips3-wrong-error.s b/llvm/test/MC/Mips/mips2/invalid-mips3-wrong-error.s index a3f829b77c3..3eb4ef3afb9 100644 --- a/llvm/test/MC/Mips/mips2/invalid-mips3-wrong-error.s +++ b/llvm/test/MC/Mips/mips2/invalid-mips3-wrong-error.s @@ -7,7 +7,6 @@  	.set noat          dmult     $s7,$a5           # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction -        dsub      $a3,$s6,$a4       # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction          ld        $sp,-28645($s1)   # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction          ldl       $t8,-4167($t8)    # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction          ldr       $t2,-30358($s4)   # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/Mips/mips2/invalid-mips3.s b/llvm/test/MC/Mips/mips2/invalid-mips3.s index ef498d7a8dc..458c416c0e9 100644 --- a/llvm/test/MC/Mips/mips2/invalid-mips3.s +++ b/llvm/test/MC/Mips/mips2/invalid-mips3.s @@ -38,6 +38,7 @@          dsrl32     $s3,23            # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          dsrl32     $s3,$6,23         # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          dsrlv      $s3,$t2,$s4       # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dsub       $a3,$s6,$a4       # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          dsubu      $a1,$a1,$k0       # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          eret                         # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          floor.l.d  $f26,$f7          # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled diff --git a/llvm/test/MC/Mips/mips3/valid.s b/llvm/test/MC/Mips/mips3/valid.s index 5db197b0055..7b62694f234 100644 --- a/llvm/test/MC/Mips/mips3/valid.s +++ b/llvm/test/MC/Mips/mips3/valid.s @@ -36,7 +36,11 @@          cvt.w.d   $f20,$f14          cvt.w.s   $f20,$f24          dadd      $s3,$at,$ra +        dadd      $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        dadd      $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddi     $sp,$s4,-27705 +        daddi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        daddi     $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddiu    $k0,$s6,-4586          daddu     $s3,$at,$ra          ddiv      $zero,$k0,$s3 @@ -68,6 +72,10 @@          dsrl32    $s3,$6,23            # CHECK: dsrl32 $19, $6, 23          # encoding: [0x00,0x06,0x9d,0xfe]          dsrlv     $s3,$6,$s4           # CHECK: dsrlv $19, $6, $20          # encoding: [0x02,0x86,0x98,0x16]          dsub      $a3,$s6,$8 +        dsub      $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsub      $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39] +        dsubi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsubi     $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39]          dsubu     $a1,$a1,$k0          ehb                            # CHECK: ehb # encoding:  [0x00,0x00,0x00,0xc0]          eret diff --git a/llvm/test/MC/Mips/mips4/valid.s b/llvm/test/MC/Mips/mips4/valid.s index c76b8a43339..25568d48759 100644 --- a/llvm/test/MC/Mips/mips4/valid.s +++ b/llvm/test/MC/Mips/mips4/valid.s @@ -38,7 +38,11 @@          cvt.w.d   $f20,$f14          cvt.w.s   $f20,$f24          dadd      $s3,$at,$ra +        dadd      $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        dadd      $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddi     $sp,$s4,-27705 +        daddi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        daddi     $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddiu    $k0,$s6,-4586          daddu     $s3,$at,$ra          ddiv      $zero,$k0,$s3 @@ -70,8 +74,10 @@          dsrl32    $s3,$6,23            # CHECK: dsrl32 $19, $6, 23          # encoding: [0x00,0x06,0x9d,0xfe]          dsrlv     $s3,$6,$s4           # CHECK: dsrlv $19, $6, $20          # encoding: [0x02,0x86,0x98,0x16]          dsub      $a3,$s6,$8 -        dsubu     $a1,$a1,$k0 -        dsub      $a3,$s6,$8 +        dsub      $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsub      $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39] +        dsubi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsubi     $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39]          dsubu     $a1,$a1,$k0          ehb                            # CHECK: ehb # encoding:  [0x00,0x00,0x00,0xc0]          eret diff --git a/llvm/test/MC/Mips/mips5/valid.s b/llvm/test/MC/Mips/mips5/valid.s index 2ada98a9458..a0509a205c4 100644 --- a/llvm/test/MC/Mips/mips5/valid.s +++ b/llvm/test/MC/Mips/mips5/valid.s @@ -38,7 +38,11 @@          cvt.w.d   $f20,$f14          cvt.w.s   $f20,$f24          dadd      $s3,$at,$ra +        dadd      $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        dadd      $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddi     $sp,$s4,-27705 +        daddi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        daddi     $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddiu    $k0,$s6,-4586          daddu     $s3,$at,$ra          ddiv      $zero,$k0,$s3 @@ -70,8 +74,10 @@          dsrl32    $s3,$6,23            # CHECK: dsrl32 $19, $6, 23          # encoding: [0x00,0x06,0x9d,0xfe]          dsrlv     $s3,$6,$s4           # CHECK: dsrlv $19, $6, $20          # encoding: [0x02,0x86,0x98,0x16]          dsub      $a3,$s6,$8 -        dsubu     $a1,$a1,$k0 -        dsub      $a3,$s6,$8 +        dsub      $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsub      $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39] +        dsubi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsubi     $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39]          dsubu     $a1,$a1,$k0          ehb                            # CHECK: ehb # encoding:  [0x00,0x00,0x00,0xc0]          eret diff --git a/llvm/test/MC/Mips/mips64/valid.s b/llvm/test/MC/Mips/mips64/valid.s index 1bb0b89cf76..86777f41889 100644 --- a/llvm/test/MC/Mips/mips64/valid.s +++ b/llvm/test/MC/Mips/mips64/valid.s @@ -40,7 +40,11 @@          cvt.w.d   $f20,$f14          cvt.w.s   $f20,$f24          dadd      $s3,$at,$ra +        dadd      $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        dadd      $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddi     $sp,$s4,-27705 +        daddi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        daddi     $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddiu    $k0,$s6,-4586          daddu     $s3,$at,$ra          dclo      $s2,$a2 @@ -75,8 +79,10 @@          dsrl32    $s3,$6,23            # CHECK: dsrl32 $19, $6, 23          # encoding: [0x00,0x06,0x9d,0xfe]          dsrlv     $s3,$6,$s4           # CHECK: dsrlv $19, $6, $20          # encoding: [0x02,0x86,0x98,0x16]          dsub      $a3,$s6,$8 -        dsubu     $a1,$a1,$k0 -        dsub      $a3,$s6,$8 +        dsub      $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsub      $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39] +        dsubi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsubi     $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39]          dsubu     $a1,$a1,$k0          ehb                            # CHECK: ehb # encoding:  [0x00,0x00,0x00,0xc0]          eret diff --git a/llvm/test/MC/Mips/mips64r2/valid.s b/llvm/test/MC/Mips/mips64r2/valid.s index e58a4f3de37..8ba3b13dcf9 100644 --- a/llvm/test/MC/Mips/mips64r2/valid.s +++ b/llvm/test/MC/Mips/mips64r2/valid.s @@ -40,7 +40,11 @@          cvt.w.d   $f20,$f14          cvt.w.s   $f20,$f24          dadd      $s3,$at,$ra +        dadd      $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        dadd      $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddi     $sp,$s4,-27705 +        daddi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7] +        daddi     $sp,-27705           # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]          daddiu    $k0,$s6,-4586          daddu     $s3,$at,$ra          dclo      $s2,$a2 @@ -83,8 +87,12 @@          dsrl32    $s3,$6,23            # CHECK: dsrl32 $19, $6, 23          # encoding: [0x00,0x06,0x9d,0xfe]          dsrlv     $s3,$6,$s4           # CHECK: dsrlv $19, $6, $20          # encoding: [0x02,0x86,0x98,0x16]          dsub      $a3,$s6,$8 -        dsubu     $a1,$a1,$k0          dsub      $a3,$s6,$8 +        dsub      $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsub      $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39] +        dsubi     $sp,$s4,-27705       # CHECK: daddi $sp, $20, 27705  # encoding: [0x62,0x9d,0x6c,0x39] +        dsubi     $sp,-27705           # CHECK: daddi $sp, $sp, 27705  # encoding: [0x63,0xbd,0x6c,0x39] +        dsubu     $a1,$a1,$k0          dsubu     $a1,$a1,$k0          ehb                            # CHECK: ehb # encoding:  [0x00,0x00,0x00,0xc0]          ei        $14 diff --git a/llvm/test/MC/Mips/mips64r6/invalid-mips64.s b/llvm/test/MC/Mips/mips64r6/invalid-mips64.s index ae2c6179a6c..c1961e79498 100644 --- a/llvm/test/MC/Mips/mips64r6/invalid-mips64.s +++ b/llvm/test/MC/Mips/mips64r6/invalid-mips64.s @@ -6,8 +6,16 @@  	.set noat          addi      $13,$9,26322        # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled -        dmult     $s7,$9              # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        daddi     $sp,$s4,-27705      # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        daddi     $sp,-27705          # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dadd      $sp,$s4,-27705      # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dadd      $sp,-27705          # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dmult     $s7,$s4             # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          dmultu    $a1,$a2             # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dsubi     $sp,$s4,-27705      # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dsubi     $sp,-27705          # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dsub      $sp,$s4,-27705      # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled +        dsub      $sp,-27705          # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          jalx      4                   # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          mfhi      $s3                 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled          mfhi      $sp                 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled  | 

