1! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s 2! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s 3 4 ! CHECK: call foo ! encoding: [0b01AAAAAA,A,A,A] 5 ! CHECK: ! fixup A - offset: 0, value: foo, kind: fixup_sparc_call30 6 call foo 7 8 ! CHECK: call %g1+%i2 ! encoding: [0x9f,0xc0,0x40,0x1a] 9 call %g1 + %i2 10 11 ! CHECK: call %o1+8 ! encoding: [0x9f,0xc2,0x60,0x08] 12 call %o1 + 8 13 14 ! CHECK: call %g1 ! encoding: [0x9f,0xc0,0x40,0x00] 15 call %g1 16 17 ! CHECK: call %g1+%lo(sym) ! encoding: [0x9f,0xc0,0b011000AA,A] 18 ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 19 call %g1+%lo(sym) 20 21 ! CHECK: jmp %g1+%i2 ! encoding: [0x81,0xc0,0x40,0x1a] 22 jmp %g1 + %i2 23 24 ! CHECK: jmp %o1+8 ! encoding: [0x81,0xc2,0x60,0x08] 25 jmp %o1 + 8 26 27 ! CHECK: jmp %g1 ! encoding: [0x81,0xc0,0x40,0x00] 28 jmp %g1 29 30 ! CHECK: jmp %g1+%lo(sym) ! encoding: [0x81,0xc0,0b011000AA,A] 31 ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 32 jmp %g1+%lo(sym) 33 34 ! CHECK: jmpl %g1+%i2, %g2 ! encoding: [0x85,0xc0,0x40,0x1a] 35 jmpl %g1 + %i2, %g2 36 37 ! CHECK: jmpl %o1+8, %g2 ! encoding: [0x85,0xc2,0x60,0x08] 38 jmpl %o1 + 8, %g2 39 40 ! CHECK: jmpl %g1, %g2 ! encoding: [0x85,0xc0,0x40,0x00] 41 jmpl %g1, %g2 42 43 ! CHECK: jmpl %g1+%lo(sym), %g2 ! encoding: [0x85,0xc0,0b011000AA,A] 44 ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 45 jmpl %g1+%lo(sym), %g2 46 47 ! CHECK: ba .BB0 ! encoding: [0x10,0b10AAAAAA,A,A] 48 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 49 ba .BB0 50 51 ! CHECK: bne .BB0 ! encoding: [0x12,0b10AAAAAA,A,A] 52 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 53 bne .BB0 54 55 ! CHECK: bne .BB0 ! encoding: [0x12,0b10AAAAAA,A,A] 56 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 57 bnz .BB0 58 59 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A] 60 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 61 be .BB0 62 63 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A] 64 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 65 bz .BB0 66 67 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A] 68 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 69 beq .BB0 70 71 ! CHECK: bg .BB0 ! encoding: [0x14,0b10AAAAAA,A,A] 72 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 73 bg .BB0 74 75 ! CHECK: ble .BB0 ! encoding: [0x04,0b10AAAAAA,A,A] 76 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 77 ble .BB0 78 79 ! CHECK: bge .BB0 ! encoding: [0x16,0b10AAAAAA,A,A] 80 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 81 bge .BB0 82 83 ! CHECK: bl .BB0 ! encoding: [0x06,0b10AAAAAA,A,A] 84 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 85 bl .BB0 86 87 ! CHECK: bgu .BB0 ! encoding: [0x18,0b10AAAAAA,A,A] 88 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 89 bgu .BB0 90 91 ! CHECK: bleu .BB0 ! encoding: [0x08,0b10AAAAAA,A,A] 92 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 93 bleu .BB0 94 95 ! CHECK: bcc .BB0 ! encoding: [0x1a,0b10AAAAAA,A,A] 96 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 97 bcc .BB0 98 99 ! CHECK: bcc .BB0 ! encoding: [0x1a,0b10AAAAAA,A,A] 100 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 101 bgeu .BB0 102 103 ! CHECK: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A] 104 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 105 bcs .BB0 106 107 ! CHECK: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A] 108 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 109 blu .BB0 110 111 ! CHECK: bpos .BB0 ! encoding: [0x1c,0b10AAAAAA,A,A] 112 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 113 bpos .BB0 114 115 ! CHECK: bneg .BB0 ! encoding: [0x0c,0b10AAAAAA,A,A] 116 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 117 bneg .BB0 118 119 ! CHECK: bvc .BB0 ! encoding: [0x1e,0b10AAAAAA,A,A] 120 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 121 bvc .BB0 122 123 ! CHECK: bvs .BB0 ! encoding: [0x0e,0b10AAAAAA,A,A] 124 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 125 bvs .BB0 126 127 ! CHECK: fbu .BB0 ! encoding: [0x0f,0b10AAAAAA,A,A] 128 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 129 fbu .BB0 130 131 ! CHECK: fbg .BB0 ! encoding: [0x0d,0b10AAAAAA,A,A] 132 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 133 fbg .BB0 134 ! CHECK: fbug .BB0 ! encoding: [0x0b,0b10AAAAAA,A,A] 135 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 136 fbug .BB0 137 138 ! CHECK: fbl .BB0 ! encoding: [0x09,0b10AAAAAA,A,A] 139 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 140 fbl .BB0 141 142 ! CHECK: fbul .BB0 ! encoding: [0x07,0b10AAAAAA,A,A] 143 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 144 fbul .BB0 145 146 ! CHECK: fblg .BB0 ! encoding: [0x05,0b10AAAAAA,A,A] 147 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 148 fblg .BB0 149 150 ! CHECK: fbne .BB0 ! encoding: [0x03,0b10AAAAAA,A,A] 151 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 152 fbne .BB0 153 154 ! CHECK: fbne .BB0 ! encoding: [0x03,0b10AAAAAA,A,A] 155 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 156 fbnz .BB0 157 158 ! CHECK: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A] 159 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 160 fbe .BB0 161 162 ! CHECK: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A] 163 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 164 fbz .BB0 165 166 ! CHECK: fbue .BB0 ! encoding: [0x15,0b10AAAAAA,A,A] 167 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 168 fbue .BB0 169 170 ! CHECK: fbge .BB0 ! encoding: [0x17,0b10AAAAAA,A,A] 171 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 172 fbge .BB0 173 174 ! CHECK: fbuge .BB0 ! encoding: [0x19,0b10AAAAAA,A,A] 175 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 176 fbuge .BB0 177 178 ! CHECK: fble .BB0 ! encoding: [0x1b,0b10AAAAAA,A,A] 179 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 180 fble .BB0 181 182 ! CHECK: fbule .BB0 ! encoding: [0x1d,0b10AAAAAA,A,A] 183 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 184 fbule .BB0 185 186 ! CHECK: fbo .BB0 ! encoding: [0x1f,0b10AAAAAA,A,A] 187 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 188 fbo .BB0 189 190 ! CHECK: ba,a .BB0 ! encoding: [0x30,0b10AAAAAA,A,A] 191 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 192 ba,a .BB0 193 194 ! CHECK: bne,a .BB0 ! encoding: [0x32,0b10AAAAAA,A,A] 195 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 196 bne,a .BB0 197 198 ! CHECK: be,a .BB0 ! encoding: [0x22,0b10AAAAAA,A,A] 199 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 200 be,a .BB0 201 202 ! CHECK: bg,a .BB0 ! encoding: [0x34,0b10AAAAAA,A,A] 203 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 204 bg,a .BB0 205 206 ! CHECK: ble,a .BB0 ! encoding: [0x24,0b10AAAAAA,A,A] 207 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 208 ble,a .BB0 209 210 ! CHECK: bge,a .BB0 ! encoding: [0x36,0b10AAAAAA,A,A] 211 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 212 bge,a .BB0 213 214 ! CHECK: bl,a .BB0 ! encoding: [0x26,0b10AAAAAA,A,A] 215 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 216 bl,a .BB0 217 218 ! CHECK: bgu,a .BB0 ! encoding: [0x38,0b10AAAAAA,A,A] 219 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 220 bgu,a .BB0 221 222 ! CHECK: bleu,a .BB0 ! encoding: [0x28,0b10AAAAAA,A,A] 223 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 224 bleu,a .BB0 225 226 ! CHECK: bcc,a .BB0 ! encoding: [0x3a,0b10AAAAAA,A,A] 227 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 228 bcc,a .BB0 229 230 ! CHECK: bcs,a .BB0 ! encoding: [0x2a,0b10AAAAAA,A,A] 231 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 232 bcs,a .BB0 233 234 ! CHECK: bpos,a .BB0 ! encoding: [0x3c,0b10AAAAAA,A,A] 235 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 236 bpos,a .BB0 237 238 ! CHECK: bneg,a .BB0 ! encoding: [0x2c,0b10AAAAAA,A,A] 239 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 240 bneg,a .BB0 241 242 ! CHECK: bvc,a .BB0 ! encoding: [0x3e,0b10AAAAAA,A,A] 243 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 244 bvc,a .BB0 245 246 ! CHECK: bvs,a .BB0 ! encoding: [0x2e,0b10AAAAAA,A,A] 247 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 248 bvs,a .BB0 249 250 ! CHECK: fbu,a .BB0 ! encoding: [0x2f,0b10AAAAAA,A,A] 251 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 252 fbu,a .BB0 253 254 ! CHECK: fbg,a .BB0 ! encoding: [0x2d,0b10AAAAAA,A,A] 255 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 256 fbg,a .BB0 257 ! CHECK: fbug,a .BB0 ! encoding: [0x2b,0b10AAAAAA,A,A] 258 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 259 fbug,a .BB0 260 261 ! CHECK: fbl,a .BB0 ! encoding: [0x29,0b10AAAAAA,A,A] 262 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 263 fbl,a .BB0 264 265 ! CHECK: fbul,a .BB0 ! encoding: [0x27,0b10AAAAAA,A,A] 266 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 267 fbul,a .BB0 268 269 ! CHECK: fblg,a .BB0 ! encoding: [0x25,0b10AAAAAA,A,A] 270 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 271 fblg,a .BB0 272 273 ! CHECK: fbne,a .BB0 ! encoding: [0x23,0b10AAAAAA,A,A] 274 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 275 fbne,a .BB0 276 277 ! CHECK: fbe,a .BB0 ! encoding: [0x33,0b10AAAAAA,A,A] 278 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 279 fbe,a .BB0 280 281 ! CHECK: fbue,a .BB0 ! encoding: [0x35,0b10AAAAAA,A,A] 282 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 283 fbue,a .BB0 284 285 ! CHECK: fbge,a .BB0 ! encoding: [0x37,0b10AAAAAA,A,A] 286 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 287 fbge,a .BB0 288 289 ! CHECK: fbuge,a .BB0 ! encoding: [0x39,0b10AAAAAA,A,A] 290 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 291 fbuge,a .BB0 292 293 ! CHECK: fble,a .BB0 ! encoding: [0x3b,0b10AAAAAA,A,A] 294 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 295 fble,a .BB0 296 297 ! CHECK: fbule,a .BB0 ! encoding: [0x3d,0b10AAAAAA,A,A] 298 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 299 fbule,a .BB0 300 301 ! CHECK: fbo,a .BB0 ! encoding: [0x3f,0b10AAAAAA,A,A] 302 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 303 fbo,a .BB0 304 305 ! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08] 306 rett %i7 + 8 307