diff options
Diffstat (limited to 'test/MC/Sparc/sparc-ctrl-instructions.s')
-rw-r--r-- | test/MC/Sparc/sparc-ctrl-instructions.s | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/test/MC/Sparc/sparc-ctrl-instructions.s b/test/MC/Sparc/sparc-ctrl-instructions.s new file mode 100644 index 0000000..cf92e70 --- /dev/null +++ b/test/MC/Sparc/sparc-ctrl-instructions.s @@ -0,0 +1,278 @@ +! 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,0x60,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,0x60,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,0x60,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: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 + be .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: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 + bcs .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: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22 + fbe .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 |