xref: /llvm-project/llvm/test/MC/AVR/inst-st.s (revision 6fb39e496411a64af8fa5484385ef3ff42d2a5f4)
1; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
2; RUN: llvm-mc -filetype=obj -triple avr -mattr=sram < %s \
3; RUN:     | llvm-objdump -dr --mattr=sram - | FileCheck --check-prefix=INST %s
4
5foo:
6  ; Normal
7
8  st X,  r10
9  st X,  r17
10
11  st Y,  r30
12  st Y,  r19
13
14  st Z,  r10
15  st Z,  r2
16
17  ; Postincrement
18
19  st X+,  r10
20  st X+,  r17
21
22  st Y+,  r30
23  st Y+,  r19
24
25  st Z+,  r10
26  st Z+,  r2
27
28  ; Predecrement
29
30  st -X,  r10
31  st -X,  r17
32
33  st -Y,  r30
34  st -Y,  r19
35
36  st -Z,  r10
37  st -Z,  r2
38
39; Normal
40
41; CHECK: st X,   r10                  ; encoding: [0xac,0x92]
42; CHECK: st X,   r17                  ; encoding: [0x1c,0x93]
43
44; CHECK: st Y,   r30                  ; encoding: [0xe8,0x83]
45; CHECK: st Y,   r19                  ; encoding: [0x38,0x83]
46
47; CHECK: st Z,   r10                  ; encoding: [0xa0,0x82]
48; CHECK: st Z,   r2                   ; encoding: [0x20,0x82]
49
50
51; Postincrement
52
53; CHECK: st X+,  r10                  ; encoding: [0xad,0x92]
54; CHECK: st X+,  r17                  ; encoding: [0x1d,0x93]
55
56; CHECK: st Y+,  r30                  ; encoding: [0xe9,0x93]
57; CHECK: st Y+,  r19                  ; encoding: [0x39,0x93]
58
59; CHECK: st Z+,  r10                  ; encoding: [0xa1,0x92]
60; CHECK: st Z+,  r2                   ; encoding: [0x21,0x92]
61
62
63; Predecrement
64
65; CHECK: st -X,  r10                  ; encoding: [0xae,0x92]
66; CHECK: st -X,  r17                  ; encoding: [0x1e,0x93]
67
68; CHECK: st -Y,  r30                  ; encoding: [0xea,0x93]
69; CHECK: st -Y,  r19                  ; encoding: [0x3a,0x93]
70
71; CHECK: st -Z,  r10                  ; encoding: [0xa2,0x92]
72; CHECK: st -Z,  r2                   ; encoding: [0x22,0x92]
73
74; INST: st X, r10
75; INST: st X, r17
76; INST: std Y+0, r30
77; INST: std Y+0, r19
78; INST: std Z+0, r10
79; INST: std Z+0, r2
80
81; INST: st X+, r10
82; INST: st X+, r17
83; INST: st Y+, r30
84; INST: st Y+, r19
85; INST: st Z+, r10
86; INST: st Z+, r2
87
88; INST: st -X, r10
89; INST: st -X, r17
90; INST: st -Y, r30
91; INST: st -Y, r19
92; INST: st -Z, r10
93; INST: st -Z, r2
94