Home | History | Annotate | Download | only in virt
      1 # Instructions that are invalid.
      2 #
      3 # RUN: not llvm-mc %s -arch=mips -mcpu=mips32r5 -mattr=+virt 2>%t1
      4 # RUN: FileCheck %s < %t1
      5 # RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r5 -mattr=+virt 2>%t1
      6 # RUN: FileCheck %s < %t1
      7 # RUN: not llvm-mc %s -arch=mips -mcpu=mips32r5 -mattr=+micromips,+virt 2>%t1
      8 # RUN: FileCheck %s < %t1
      9 
     10   mfgc0                   # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     11   mfgc0 0                 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     12   mfgc0 $4                # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     13   mfgc0 0, $4             # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     14   mfgc0 0, $4, $5         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     15   mfgc0 $4, 0, $5         # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
     16   mfgc0 $4, $5, 8         # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
     17   mfgc0 $4, $5, -1        # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
     18   mfgc0 $4, $5, 0($4)     # CHECK: :[[@LINE]]:18: error: invalid operand for instruction
     19   mtgc0                   # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     20   mtgc0 0                 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     21   mtgc0 $4                # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     22   mtgc0 0, $4             # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     23   mtgc0 0, $4, $5         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     24   mtgc0 $4, 0, $5         # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
     25   mtgc0 $4, $5, 8         # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
     26   mtgc0 $4, $5, -1        # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
     27   mtgc0 $4, $5, 0($4)     # CHECK: :[[@LINE]]:18: error: invalid operand for instruction
     28   mfhgc0                  # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     29   mfhgc0 0                # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     30   mfhgc0 $4               # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     31   mfhgc0 0, $4            # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     32   mfhgc0 0, $4, $5        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     33   mfhgc0 $4, 0, $5        # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
     34   mfhgc0 $4, $5, 8        # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
     35   mfhgc0 $4, $5, -1       # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
     36   mfhgc0 $4, $5, 0($4)    # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     37   mthgc0                  # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     38   mthgc0 0                # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     39   mthgc0 $4               # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     40   mthgc0 0, $4            # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     41   mthgc0 0, $4, $5        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     42   mthgc0 $4, 0, $5        # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
     43   mthgc0 $4, $5, 8        # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
     44   mthgc0 $4, $5, -1       # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
     45   mthgc0 $4, $5, 0($4)    # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     46   hypcall $4              # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     47   hypcall 0, $4           # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
     48   hypcall 0, $4, $5       # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
     49   hypcall $4, 0, $5       # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     50   hypcall $4, $5, 8       # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     51   hypcall $4, $5, -1      # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     52   hypcall $4, $5, 0($4)   # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     53   hypcall 2048            # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     54   hypcall -1              # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
     55   hypcall 0($4)           # CHECK: :[[@LINE]]:12: error: unexpected token in argument list
     56   tlbginv 0               # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     57   tlbginv $4              # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     58   tlbginv 0, $4           # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     59   tlbginv 0, $4, $5       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     60   tlbginv $4, 0, $5       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     61   tlbginv $4, $5, 8       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     62   tlbginv $4, $5, -1      # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     63   tlbginv $4, $5, 0($4)   # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     64   tlbginvf 0              # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     65   tlbginvf $4             # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     66   tlbginvf 0, $4          # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     67   tlbginvf 0, $4, $5      # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     68   tlbginvf $4, 0, $5      # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     69   tlbginvf $4, $5, 8      # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     70   tlbginvf $4, $5, -1     # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     71   tlbginvf $4, $5, 0($4)  # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     72   tlbgp 0                 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     73   tlbgp $4                # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     74   tlbgp 0, $4             # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     75   tlbgp 0, $4, $5         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     76   tlbgp $4, 0, $5         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     77   tlbgp $4, $5, 8         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     78   tlbgp $4, $5, -1        # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     79   tlbgp $4, $5, 0($4)     # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     80   tlbgr 0                 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     81   tlbgr $4                # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     82   tlbgr 0, $4             # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     83   tlbgr 0, $4, $5         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     84   tlbgr $4, 0, $5         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     85   tlbgr $4, $5, 8         # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     86   tlbgr $4, $5, -1        # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     87   tlbgr $4, $5, 0($4)     # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
     88   tlbgwi 0                # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     89   tlbgwi $4               # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     90   tlbgwi 0, $4            # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     91   tlbgwi 0, $4, $5        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     92   tlbgwi $4, 0, $5        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     93   tlbgwi $4, $5, 8        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     94   tlbgwi $4, $5, -1       # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     95   tlbgwi $4, $5, 0($4)    # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     96   tlbgwr 0                # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     97   tlbgwr $4               # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     98   tlbgwr 0, $4            # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
     99   tlbgwr 0, $4, $5        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
    100   tlbgwr $4, 0, $5        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
    101   tlbgwr $4, $5, 8        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
    102   tlbgwr $4, $5, -1       # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
    103   tlbgwr $4, $5, 0($4)    # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
    104