Commit | Line | Data |
---|---|---|
27bdea3d SC |
1 | #objdump: -S |
2 | #as: -m68hc12 -gdwarf2 | |
3 | #name: 68HC12 indexed addressing mode with 5, 9 and 16-bit offsets (indexed12) | |
4 | #source: indexed12.s | |
5 | ||
6 | .*: +file format elf32\-m68hc12 | |
7 | ||
8 | Disassembly of section .text: | |
9 | ||
10 | 0+ <_main>: | |
a696b49e | 11 | ;; with a 5, 9 and 16-bit offset. |
27bdea3d SC |
12 | ;; |
13 | .sect .text | |
14 | .globl _main | |
15 | _main: | |
16 | nop | |
17 | 0: a7 nop | |
18 | ;;; Global check \(1st\) | |
19 | ldab L1\-_main,x ; Offset/const of these 2 insns must be | |
6927f982 | 20 | 1: e6 e0 93 ldab 0x93,X |
27bdea3d | 21 | ldaa #L1\-_main ; identical \(likewise for 2nd global check\) |
6927f982 | 22 | 4: 86 93 ldaa #0x93 |
27bdea3d SC |
23 | ;;; Test gas relax with difference of symbols \(same section\) |
24 | ldaa L2\-L1,x ; \-> ldaa 2,x \(5\-bit offset\), text seg | |
6927f982 | 25 | 6: a6 02 ldaa 0x2,X |
27bdea3d | 26 | adda L1\-L2,y ; \-> adda \-2,y \(5\-bit offset\), text seg |
6927f982 | 27 | 8: ab 5e adda 0xfffe,Y |
27bdea3d SC |
28 | |
29 | orab L7\-L6,sp ; \-> orab 8,sp \(5\-bit offset\), text seg | |
6927f982 | 30 | a: ea 88 orab 0x8,SP |
27bdea3d | 31 | anda L8\-L7,sp ; \-> anda 15,sp \(5\-bit offset\), text seg |
6927f982 | 32 | c: a4 8f anda 0xf,SP |
27bdea3d | 33 | eora L7\-L8,sp ; \-> eora \-15,sp \(5\-bit offset\), text seg |
6927f982 | 34 | e: a8 91 eora 0xfff1,SP |
27bdea3d | 35 | eorb L7\-L9,sp ; \-> eorb \-16,sp \(5\-bit offset\), text seg |
6927f982 | 36 | 10: e8 90 eorb 0xfff0,SP |
27bdea3d SC |
37 | |
38 | andb L9\-L7,sp ; \-> andb 16,sp \(9\-bit offset\), text seg | |
6927f982 | 39 | 12: e4 f0 10 andb 0x10,SP |
27bdea3d | 40 | staa L7\-L10,x ; \-> staa \-17,x \(9\-bit offset\), text seg |
6927f982 | 41 | 15: 6a e1 ef staa 0xffef,X |
27bdea3d | 42 | stab L11\-L10,y ; \-> stab 128,y \(9\-bit offset\), text seg |
6927f982 | 43 | 18: 6b e8 80 stab 0x80,Y |
27bdea3d | 44 | stab L10\-L11,y ; \-> stab \-128,y \(9\-bit offset\), text seg |
6927f982 | 45 | 1b: 6b e9 80 stab 0xff80,Y |
27bdea3d | 46 | stab L11\-L10\+1,y ; \-> stab 129,y \(9\-bit offset\), text seg |
6927f982 | 47 | 1e: 6b e8 81 stab 0x81,Y |
27bdea3d | 48 | stab L10\-L11\-1,y ; \-> stab \-129,y \(9\-bit offset\), text seg |
6927f982 | 49 | 21: 6b e9 7f stab 0xff7f,Y |
27bdea3d | 50 | stab L11\-1\-L10,y ; \-> stab 127,y \(9\-bit offset\), text seg |
6927f982 | 51 | 24: 6b e8 7f stab 0x7f,Y |
27bdea3d | 52 | stab L10\-1\-L11,y ; \-> stab \-129,y \(9\-bit offset\), text seg |
6927f982 | 53 | 27: 6b e9 7f stab 0xff7f,Y |
27bdea3d SC |
54 | |
55 | tst L12\-L10,x ; \-> tst 255,x \(9\-bit offset\), text seg | |
6927f982 | 56 | 2a: e7 e0 ff tst 0xff,X |
27bdea3d | 57 | tst L10\-L12,x ; \-> tst \-255,x \(9\-bit offset\), text seg |
6927f982 | 58 | 2d: e7 e1 01 tst 0xff01,X |
27bdea3d | 59 | tst L12\-L10\+1,x ; \-> tst 256,x \(16\-bit offset\), text seg |
6927f982 | 60 | 30: e7 e2 01 00 tst 0x100,X |
27bdea3d | 61 | mina L13\-L10,x ; \-> mina 256,x \(16\-bit offset\) |
6927f982 | 62 | 34: 18 19 e2 01 mina 0x100,X |
27bdea3d SC |
63 | 38: 00 |
64 | mina L10\-L13,x ; \-> mina \-256,x \(9\-bit offset\) | |
6927f982 | 65 | 39: 18 19 e1 00 mina 0xff00,X |
27bdea3d SC |
66 | |
67 | maxa L14\-L10,x ; \-> maxa 257,x \(16\-bit offset\) | |
6927f982 | 68 | 3d: 18 18 e2 01 maxa 0x101,X |
27bdea3d SC |
69 | 41: 01 |
70 | maxa L10\-L14,x ; \-> maxa \-257,x \(16\-bit offset\) | |
6927f982 | 71 | 42: 18 18 e2 fe maxa 0xfeff,X |
27bdea3d SC |
72 | 46: ff |
73 | ||
74 | ;;; Test gas relax with difference of symbols \(different section\) | |
75 | ldaa D2\-D1,x ; \-> ldaa 2,x \(5\-bit offset\), data seg | |
6927f982 | 76 | 47: a6 02 ldaa 0x2,X |
27bdea3d | 77 | adda D1\-D2,y ; \-> adda \-2,y \(5\-bit offset\), data seg |
6927f982 | 78 | 49: ab 5e adda 0xfffe,Y |
27bdea3d SC |
79 | |
80 | orab D7\-D6,sp ; \-> orab 8,sp \(5\-bit offset\), data seg | |
6927f982 | 81 | 4b: ea 88 orab 0x8,SP |
27bdea3d | 82 | anda D8\-D7,sp ; \-> anda 15,sp \(5\-bit offset\), data seg |
6927f982 | 83 | 4d: a4 8f anda 0xf,SP |
27bdea3d | 84 | eora D7\-D8,sp ; \-> eora \-15,sp \(5\-bit offset\), data seg |
6927f982 | 85 | 4f: a8 91 eora 0xfff1,SP |
27bdea3d | 86 | eorb D7\-D9,sp ; \-> eorb \-16,sp \(5\-bit offset\), data seg |
6927f982 | 87 | 51: e8 90 eorb 0xfff0,SP |
27bdea3d SC |
88 | |
89 | andb D9\-D7,sp ; \-> andb 16,sp \(9\-bit offset\), data seg | |
6927f982 | 90 | 53: e4 f0 10 andb 0x10,SP |
27bdea3d | 91 | staa D7\-D10,x ; \-> staa \-17,x \(9\-bit offset\), data seg |
6927f982 | 92 | 56: 6a e1 ef staa 0xffef,X |
27bdea3d | 93 | stab D11\-D10,y ; \-> stab 128,y \(9\-bit offset\), data seg |
6927f982 | 94 | 59: 6b e8 80 stab 0x80,Y |
27bdea3d | 95 | stab D10\-D11,y ; \-> stab \-128,y \(9\-bit offset\), data seg |
6927f982 | 96 | 5c: 6b e9 80 stab 0xff80,Y |
27bdea3d | 97 | stab D11\-D10\+1,y ; \-> stab 129,y \(9\-bit offset\), data seg |
6927f982 | 98 | 5f: 6b e8 81 stab 0x81,Y |
27bdea3d | 99 | stab D10\-D11\+1,y ; \-> stab \-127,y \(9\-bit offset\), data seg |
6927f982 | 100 | 62: 6b e9 81 stab 0xff81,Y |
27bdea3d | 101 | stab D11\-1\-D10,y ; \-> stab 127,y \(9\-bit offset\), data seg |
6927f982 | 102 | 65: 6b e8 7f stab 0x7f,Y |
27bdea3d | 103 | stab D10\-1\-D11,y ; \-> stab \-129,y \(9\-bit offset\), data seg |
6927f982 | 104 | 68: 6b e9 7f stab 0xff7f,Y |
27bdea3d SC |
105 | |
106 | tst D12\-D10,x ; \-> tst 255,x \(9\-bit offset\), data seg | |
6927f982 | 107 | 6b: e7 e0 ff tst 0xff,X |
27bdea3d | 108 | tst D10\-D12,x ; \-> tst \-255,x \(9\-bit offset\), data seg |
6927f982 | 109 | 6e: e7 e1 01 tst 0xff01,X |
27bdea3d | 110 | tst D12\-D10\+1,x ; \-> tst 256,x \(16\-bit offset\), data seg |
6927f982 | 111 | 71: e7 e2 01 00 tst 0x100,X |
27bdea3d | 112 | mina D13\-D10,x ; \-> mina 256,x \(16\-bit offset\) |
6927f982 | 113 | 75: 18 19 e2 01 mina 0x100,X |
27bdea3d SC |
114 | 79: 00 |
115 | mina D10\-D13,x ; \-> mina \-256,x \(9\-bit offset\) | |
6927f982 | 116 | 7a: 18 19 e1 00 mina 0xff00,X |
27bdea3d SC |
117 | |
118 | maxa D14\-D10,x ; \-> maxa 257,x \(16\-bit offset\) | |
6927f982 | 119 | 7e: 18 18 e2 01 maxa 0x101,X |
27bdea3d SC |
120 | 82: 01 |
121 | maxa D10\-D14,x ; \-> maxa \-257,x \(16\-bit offset\) | |
6927f982 | 122 | 83: 18 18 e2 fe maxa 0xfeff,X |
27bdea3d SC |
123 | 87: ff |
124 | ||
125 | ;;; Global check \(2nd\) | |
126 | ldab L1\-_main,x | |
6927f982 | 127 | 88: e6 e0 93 ldab 0x93,X |
27bdea3d | 128 | ldaa #L1\-_main |
6927f982 | 129 | 8b: 86 93 ldaa #0x93 |
27bdea3d SC |
130 | |
131 | ;;; Indexed addressing with external symbol | |
132 | ldab _external\+128,x | |
6927f982 | 133 | 8d: e6 e2 00 80 ldab 0x80,X |
27bdea3d | 134 | bra L2 |
6927f982 | 135 | 91: 20 02 bra 0x95 <L2> |
27bdea3d SC |
136 | |
137 | 0+93 <L1>: | |
138 | 93: aa bb oraa 5,SP\- | |
139 | ||
140 | 0+95 <L2>: | |
141 | 95: a7 nop | |
142 | 96: a7 nop | |
143 | 97: a7 nop | |
144 | 98: a7 nop | |
145 | 99: a7 nop | |
146 | 9a: a7 nop | |
147 | 9b: a7 nop | |
148 | 9c: a7 nop | |
149 | ||
150 | 0+9d <L7>: | |
151 | 9d: a7 nop | |
152 | 9e: a7 nop | |
153 | 9f: a7 nop | |
154 | a0: a7 nop | |
155 | a1: a7 nop | |
156 | a2: a7 nop | |
157 | a3: a7 nop | |
158 | a4: a7 nop | |
159 | a5: a7 nop | |
160 | a6: a7 nop | |
161 | a7: a7 nop | |
162 | a8: a7 nop | |
163 | a9: a7 nop | |
164 | aa: a7 nop | |
165 | ab: a7 nop | |
166 | ||
167 | 0+ac <L8>: | |
27bdea3d SC |
168 | L6: |
169 | .ds.b 8, 0xa7 | |
170 | L7: | |
171 | .ds.b 15, 0xa7 | |
172 | L8: | |
173 | nop | |
174 | ac: a7 nop | |
175 | ||
176 | 0+ad <L9>: | |
177 | L9: | |
178 | nop | |
179 | ad: a7 nop | |
180 | ||
181 | 0+ae <L10>: | |
182 | ... | |
183 | ||
184 | 0+12e <L11>: | |
185 | ... | |
186 | ||
187 | 0+1ad <L12>: | |
188 | L10: | |
189 | .skip 128 | |
190 | L11: | |
191 | .skip 127 | |
192 | L12: | |
193 | nop | |
194 | 1ad: a7 nop | |
195 | ||
196 | 0+1ae <L13>: | |
197 | L13: | |
198 | nop | |
199 | 1ae: a7 nop | |
200 | ||
201 | 0+1af <L14>: | |
202 | L14: | |
203 | rts | |
204 | 1af: 3d rts |