1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
# Test to make sure that all of the TYPE-A instructions supported by
# the Microblaze can be parsed by the assembly parser.
# TYPE A: OPCODE RD RA RB FLAGS
# BINARY: 000000 00000 00000 00000 00000000000
# CHECK: add
# BINARY: 000000 00001 00010 00011 00000000000
# CHECK: encoding: [0x00,0x22,0x18,0x00]
add r1, r2, r3
# CHECK: addc
# BINARY: 000010 00001 00010 00011 00000000000
# CHECK: encoding: [0x08,0x22,0x18,0x00]
addc r1, r2, r3
# CHECK: addk
# BINARY: 000100 00001 00010 00011 00000000000
# CHECK: encoding: [0x10,0x22,0x18,0x00]
addk r1, r2, r3
# CHECK: addkc
# BINARY: 000110 00001 00010 00011 00000000000
# CHECK: encoding: [0x18,0x22,0x18,0x00]
addkc r1, r2, r3
# CHECK: and
# BINARY: 100001 00001 00010 00011 00000000000
# CHECK: encoding: [0x84,0x22,0x18,0x00]
and r1, r2, r3
# CHECK: andn
# BINARY: 100011 00001 00010 00011 00000000000
# CHECK: encoding: [0x8c,0x22,0x18,0x00]
andn r1, r2, r3
# CHECK: cmp
# BINARY: 000101 00001 00010 00011 00000000001
# CHECK: encoding: [0x14,0x22,0x18,0x01]
cmp r1, r2, r3
# CHECK: cmpu
# BINARY: 000101 00001 00010 00011 00000000011
# CHECK: encoding: [0x14,0x22,0x18,0x03]
cmpu r1, r2, r3
# CHECK: idiv
# BINARY: 010010 00001 00010 00011 00000000000
# CHECK: encoding: [0x48,0x22,0x18,0x00]
idiv r1, r2, r3
# CHECK: idivu
# BINARY: 010010 00001 00010 00011 00000000010
# CHECK: encoding: [0x48,0x22,0x18,0x02]
idivu r1, r2, r3
# CHECK: mul
# BINARY: 010000 00001 00010 00011 00000000000
# CHECK: encoding: [0x40,0x22,0x18,0x00]
mul r1, r2, r3
# CHECK: mulh
# BINARY: 010000 00001 00010 00011 00000000001
# CHECK: encoding: [0x40,0x22,0x18,0x01]
mulh r1, r2, r3
# CHECK: mulhu
# BINARY: 010000 00001 00010 00011 00000000011
# CHECK: encoding: [0x40,0x22,0x18,0x03]
mulhu r1, r2, r3
# CHECK: mulhsu
# BINARY: 010000 00001 00010 00011 00000000010
# CHECK: encoding: [0x40,0x22,0x18,0x02]
mulhsu r1, r2, r3
# CHECK: or
# BINARY: 100000 00001 00010 00011 00000000000
# CHECK: encoding: [0x80,0x22,0x18,0x00]
or r1, r2, r3
# CHECK: rsub
# BINARY: 000001 00001 00010 00011 00000000000
# CHECK: encoding: [0x04,0x22,0x18,0x00]
rsub r1, r2, r3
# CHECK: rsubc
# BINARY: 000011 00001 00010 00011 00000000000
# CHECK: encoding: [0x0c,0x22,0x18,0x00]
rsubc r1, r2, r3
# CHECK: rsubk
# BINARY: 000101 00001 00010 00011 00000000000
# CHECK: encoding: [0x14,0x22,0x18,0x00]
rsubk r1, r2, r3
# CHECK: rsubkc
# BINARY: 000111 00001 00010 00011 00000000000
# CHECK: encoding: [0x1c,0x22,0x18,0x00]
rsubkc r1, r2, r3
# CHECK: sext16
# BINARY: 100100 00001 00010 00000 00001100001
# CHECK: encoding: [0x90,0x22,0x00,0x61]
sext16 r1, r2
# CHECK: sext8
# BINARY: 100100 00001 00010 00000 00001100000
# CHECK: encoding: [0x90,0x22,0x00,0x60]
sext8 r1, r2
# CHECK: xor
# BINARY: 100010 00001 00010 00011 00000000000
# CHECK: encoding: [0x88,0x22,0x18,0x00]
xor r1, r2, r3
# CHECK: nop
# BINARY: 100000 00000 00000 00000 00000000000
# CHECK: encoding: [0x80,0x00,0x00,0x00]
nop
|