[mips][ias] Range check uimm10 operands
[oota-llvm.git] / test / MC / Mips / mips-control-instructions.s
1 # RUN: llvm-mc %s -triple=mips-unknown-unknown -show-encoding -mcpu=mips32r2 | \
2 # RUN: FileCheck -check-prefix=CHECK32  %s
3 # RUN: llvm-mc %s -triple=mips64-unknown-unknown -show-encoding -mcpu=mips64r2 \
4 # RUN: | FileCheck -check-prefix=CHECK64  %s
5
6 # CHECK32:    break                      # encoding: [0x00,0x00,0x00,0x0d]
7 # CHECK32:    break   7                  # encoding: [0x00,0x07,0x00,0x0d]
8 # CHECK32:    break   7, 5               # encoding: [0x00,0x07,0x01,0x4d]
9 # CHECK32:    syscall                    # encoding: [0x00,0x00,0x00,0x0c]
10 # CHECK32:    syscall 13396              # encoding: [0x00,0x0d,0x15,0x0c]
11 # CHECK32:    eret                       # encoding: [0x42,0x00,0x00,0x18]
12 # CHECK32:    deret                      # encoding: [0x42,0x00,0x00,0x1f]
13 # CHECK32:    di                         # encoding: [0x41,0x60,0x60,0x00]
14 # CHECK32:    di                         # encoding: [0x41,0x60,0x60,0x00]
15 # CHECK32:    di      $10                # encoding: [0x41,0x6a,0x60,0x00]
16 # CHECK32:    ei                         # encoding: [0x41,0x60,0x60,0x20]
17 # CHECK32:    ei                         # encoding: [0x41,0x60,0x60,0x20]
18 # CHECK32:    ei      $10                # encoding: [0x41,0x6a,0x60,0x20]
19 # CHECK32:    wait                       # encoding: [0x42,0x00,0x00,0x20]
20 # CHECK32:    teq     $zero, $3          # encoding: [0x00,0x03,0x00,0x34]
21 # CHECK32:    teq     $zero, $3, 1       # encoding: [0x00,0x03,0x00,0x74]
22 # CHECK32:    teqi    $3, 1              # encoding: [0x04,0x6c,0x00,0x01]
23 # CHECK32:    tge     $zero, $3          # encoding: [0x00,0x03,0x00,0x30]
24 # CHECK32:    tge     $zero, $3, 3       # encoding: [0x00,0x03,0x00,0xf0]
25 # CHECK32:    tgei    $3, 3              # encoding: [0x04,0x68,0x00,0x03]
26 # CHECK32:    tgeu    $zero, $3          # encoding: [0x00,0x03,0x00,0x31]
27 # CHECK32:    tgeu    $zero, $3, 7       # encoding: [0x00,0x03,0x01,0xf1]
28 # CHECK32:    tgeiu   $3, 7              # encoding: [0x04,0x69,0x00,0x07]
29 # CHECK32:    tlt     $zero, $3          # encoding: [0x00,0x03,0x00,0x32]
30 # CHECK32:    tlt     $zero, $3, 31      # encoding: [0x00,0x03,0x07,0xf2]
31 # CHECK32:    tlti    $3, 31             # encoding: [0x04,0x6a,0x00,0x1f]
32 # CHECK32:    tltu    $zero, $3          # encoding: [0x00,0x03,0x00,0x33]
33 # CHECK32:    tltu    $zero, $3, 255     # encoding: [0x00,0x03,0x3f,0xf3]
34 # CHECK32:    tltiu   $3, 255            # encoding: [0x04,0x6b,0x00,0xff]
35 # CHECK32:    tne     $zero, $3          # encoding: [0x00,0x03,0x00,0x36]
36 # CHECK32:    tne     $zero, $3, 1023    # encoding: [0x00,0x03,0xff,0xf6]
37 # CHECK32:    tnei    $3, 1023           # encoding: [0x04,0x6e,0x03,0xff]
38
39 # CHECK64:    break                      # encoding: [0x00,0x00,0x00,0x0d]
40 # CHECK64:    break   7                  # encoding: [0x00,0x07,0x00,0x0d]
41 # CHECK64:    break   7, 5               # encoding: [0x00,0x07,0x01,0x4d]
42 # CHECK64:    syscall                    # encoding: [0x00,0x00,0x00,0x0c]
43 # CHECK64:    syscall 13396              # encoding: [0x00,0x0d,0x15,0x0c]
44 # CHECK64:    eret                       # encoding: [0x42,0x00,0x00,0x18]
45 # CHECK64:    deret                      # encoding: [0x42,0x00,0x00,0x1f]
46 # CHECK64:    di                         # encoding: [0x41,0x60,0x60,0x00]
47 # CHECK64:    di                         # encoding: [0x41,0x60,0x60,0x00]
48 # CHECK64:    di      $10                # encoding: [0x41,0x6a,0x60,0x00]
49 # CHECK64:    ei                         # encoding: [0x41,0x60,0x60,0x20]
50 # CHECK64:    ei                         # encoding: [0x41,0x60,0x60,0x20]
51 # CHECK64:    ei      $10                # encoding: [0x41,0x6a,0x60,0x20]
52 # CHECK64:    wait                       # encoding: [0x42,0x00,0x00,0x20]
53 # CHECK64:    teq     $zero, $3          # encoding: [0x00,0x03,0x00,0x34]
54 # CHECK64:    teq     $zero, $3, 1       # encoding: [0x00,0x03,0x00,0x74]
55 # CHECK64:    teqi    $3, 1              # encoding: [0x04,0x6c,0x00,0x01]
56 # CHECK64:    tge     $zero, $3          # encoding: [0x00,0x03,0x00,0x30]
57 # CHECK64:    tge     $zero, $3, 3       # encoding: [0x00,0x03,0x00,0xf0]
58 # CHECK64:    tgei    $3, 3              # encoding: [0x04,0x68,0x00,0x03]
59 # CHECK64:    tgeu    $zero, $3          # encoding: [0x00,0x03,0x00,0x31]
60 # CHECK64:    tgeu    $zero, $3, 7       # encoding: [0x00,0x03,0x01,0xf1]
61 # CHECK64:    tgeiu   $3, 7              # encoding: [0x04,0x69,0x00,0x07]
62 # CHECK64:    tlt     $zero, $3          # encoding: [0x00,0x03,0x00,0x32]
63 # CHECK64:    tlt     $zero, $3, 31      # encoding: [0x00,0x03,0x07,0xf2]
64 # CHECK64:    tlti    $3, 31             # encoding: [0x04,0x6a,0x00,0x1f]
65 # CHECK64:    tltu    $zero, $3          # encoding: [0x00,0x03,0x00,0x33]
66 # CHECK64:    tltu    $zero, $3, 255     # encoding: [0x00,0x03,0x3f,0xf3]
67 # CHECK64:    tltiu   $3, 255            # encoding: [0x04,0x6b,0x00,0xff]
68 # CHECK64:    tne     $zero, $3          # encoding: [0x00,0x03,0x00,0x36]
69 # CHECK64:    tne     $zero, $3, 1023    # encoding: [0x00,0x03,0xff,0xf6]
70 # CHECK64:    tnei    $3, 1023           # encoding: [0x04,0x6e,0x03,0xff]
71
72     break
73     break 7
74     break 7,5
75     syscall
76     syscall 0x3454
77     eret
78     deret
79     di
80     di  $0
81     di  $10
82
83     ei
84     ei  $0
85     ei  $10
86
87     wait
88
89     teq   $0,$3
90     teq   $0,$3,1
91     teqi  $3,1
92     tge   $0,$3
93     tge   $0,$3,3
94     tgei  $3,3
95     tgeu  $0,$3
96     tgeu  $0,$3,7
97     tgeiu $3,7
98     tlt   $0,$3
99     tlt   $0,$3,31
100     tlti  $3,31
101     tltu  $0,$3
102     tltu  $0,$3,255
103     tltiu $3,255
104     tne   $0,$3
105     tne   $0,$3,1023
106     tnei  $3,1023