! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s ! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s ! CHECK: call foo ! encoding: [0b01AAAAAA,A,A,A] ! CHECK: ! fixup A - offset: 0, value: foo, kind: fixup_sparc_call30 call foo ! CHECK: call %g1+%i2 ! encoding: [0x9f,0xc0,0x40,0x1a] call %g1 + %i2 ! CHECK: call %o1+8 ! encoding: [0x9f,0xc2,0x60,0x08] call %o1 + 8 ! CHECK: call %g1 ! encoding: [0x9f,0xc0,0x40,0x00] call %g1 ! CHECK: call %g1+%lo(sym) ! encoding: [0x9f,0xc0,0b011000AA,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 call %g1+%lo(sym) ! CHECK: jmp %g1+%i2 ! encoding: [0x81,0xc0,0x40,0x1a] jmp %g1 + %i2 ! CHECK: jmp %o1+8 ! encoding: [0x81,0xc2,0x60,0x08] jmp %o1 + 8 ! CHECK: jmp %g1 ! encoding: [0x81,0xc0,0x40,0x00] jmp %g1 ! CHECK: jmp %g1+%lo(sym) ! encoding: [0x81,0xc0,0b011000AA,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 jmp %g1+%lo(sym) ! CHECK: jmpl %g1+%i2, %g2 ! encoding: [0x85,0xc0,0x40,0x1a] jmpl %g1 + %i2, %g2 ! CHECK: jmpl %o1+8, %g2 ! encoding: [0x85,0xc2,0x60,0x08] jmpl %o1 + 8, %g2 ! CHECK: jmpl %g1, %g2 ! encoding: [0x85,0xc0,0x40,0x00] jmpl %g1, %g2 ! CHECK: jmpl %g1+%lo(sym), %g2 ! encoding: [0x85,0xc0,0b011000AA,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 jmpl %g1+%lo(sym), %g2 ! CHECK: ba .BB0 ! encoding: [0x10,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 ba .BB0 ! CHECK: bne .BB0 ! encoding: [0x12,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bne .BB0 ! CHECK: bne .BB0 ! encoding: [0x12,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bnz .BB0 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 be .BB0 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bz .BB0 ! CHECK: bg .BB0 ! encoding: [0x14,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bg .BB0 ! CHECK: ble .BB0 ! encoding: [0x04,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 ble .BB0 ! CHECK: bge .BB0 ! encoding: [0x16,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bge .BB0 ! CHECK: bl .BB0 ! encoding: [0x06,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bl .BB0 ! CHECK: bgu .BB0 ! encoding: [0x18,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bgu .BB0 ! CHECK: bleu .BB0 ! encoding: [0x08,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bleu .BB0 ! CHECK: bcc .BB0 ! encoding: [0x1a,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bcc .BB0 ! CHECK: bcc .BB0 ! encoding: [0x1a,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bgeu .BB0 ! CHECK: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bcs .BB0 ! CHECK: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 blu .BB0 ! CHECK: bpos .BB0 ! encoding: [0x1c,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bpos .BB0 ! CHECK: bneg .BB0 ! encoding: [0x0c,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bneg .BB0 ! CHECK: bvc .BB0 ! encoding: [0x1e,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bvc .BB0 ! CHECK: bvs .BB0 ! encoding: [0x0e,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bvs .BB0 ! CHECK: fbu .BB0 ! encoding: [0x0f,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbu .BB0 ! CHECK: fbg .BB0 ! encoding: [0x0d,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbg .BB0 ! CHECK: fbug .BB0 ! encoding: [0x0b,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbug .BB0 ! CHECK: fbl .BB0 ! encoding: [0x09,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbl .BB0 ! CHECK: fbul .BB0 ! encoding: [0x07,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbul .BB0 ! CHECK: fblg .BB0 ! encoding: [0x05,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fblg .BB0 ! CHECK: fbne .BB0 ! encoding: [0x03,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbne .BB0 ! CHECK: fbne .BB0 ! encoding: [0x03,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbnz .BB0 ! CHECK: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbe .BB0 ! CHECK: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbz .BB0 ! CHECK: fbue .BB0 ! encoding: [0x15,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbue .BB0 ! CHECK: fbge .BB0 ! encoding: [0x17,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbge .BB0 ! CHECK: fbuge .BB0 ! encoding: [0x19,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbuge .BB0 ! CHECK: fble .BB0 ! encoding: [0x1b,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fble .BB0 ! CHECK: fbule .BB0 ! encoding: [0x1d,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbule .BB0 ! CHECK: fbo .BB0 ! encoding: [0x1f,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbo .BB0 ! CHECK: ba,a .BB0 ! encoding: [0x30,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 ba,a .BB0 ! CHECK: bne,a .BB0 ! encoding: [0x32,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bne,a .BB0 ! CHECK: be,a .BB0 ! encoding: [0x22,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 be,a .BB0 ! CHECK: bg,a .BB0 ! encoding: [0x34,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bg,a .BB0 ! CHECK: ble,a .BB0 ! encoding: [0x24,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 ble,a .BB0 ! CHECK: bge,a .BB0 ! encoding: [0x36,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bge,a .BB0 ! CHECK: bl,a .BB0 ! encoding: [0x26,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bl,a .BB0 ! CHECK: bgu,a .BB0 ! encoding: [0x38,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bgu,a .BB0 ! CHECK: bleu,a .BB0 ! encoding: [0x28,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bleu,a .BB0 ! CHECK: bcc,a .BB0 ! encoding: [0x3a,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bcc,a .BB0 ! CHECK: bcs,a .BB0 ! encoding: [0x2a,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bcs,a .BB0 ! CHECK: bpos,a .BB0 ! encoding: [0x3c,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bpos,a .BB0 ! CHECK: bneg,a .BB0 ! encoding: [0x2c,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bneg,a .BB0 ! CHECK: bvc,a .BB0 ! encoding: [0x3e,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bvc,a .BB0 ! CHECK: bvs,a .BB0 ! encoding: [0x2e,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 bvs,a .BB0 ! CHECK: fbu,a .BB0 ! encoding: [0x2f,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbu,a .BB0 ! CHECK: fbg,a .BB0 ! encoding: [0x2d,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbg,a .BB0 ! CHECK: fbug,a .BB0 ! encoding: [0x2b,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbug,a .BB0 ! CHECK: fbl,a .BB0 ! encoding: [0x29,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbl,a .BB0 ! CHECK: fbul,a .BB0 ! encoding: [0x27,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbul,a .BB0 ! CHECK: fblg,a .BB0 ! encoding: [0x25,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fblg,a .BB0 ! CHECK: fbne,a .BB0 ! encoding: [0x23,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbne,a .BB0 ! CHECK: fbe,a .BB0 ! encoding: [0x33,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbe,a .BB0 ! CHECK: fbue,a .BB0 ! encoding: [0x35,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbue,a .BB0 ! CHECK: fbge,a .BB0 ! encoding: [0x37,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbge,a .BB0 ! CHECK: fbuge,a .BB0 ! encoding: [0x39,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbuge,a .BB0 ! CHECK: fble,a .BB0 ! encoding: [0x3b,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fble,a .BB0 ! CHECK: fbule,a .BB0 ! encoding: [0x3d,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbule,a .BB0 ! CHECK: fbo,a .BB0 ! encoding: [0x3f,0b10AAAAAA,A,A] ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 fbo,a .BB0 ! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08] rett %i7 + 8