mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
0e13ba8208
Reg+%g0 is preferred to Reg+imm0 by the manual, and is what GCC produces. Futhermore, reg+imm is invalid for the (not yet supported) "alternate address space" instructions. Differential Revision: http://reviews.llvm.org/D8753 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236107 91177308-0d34-0410-b5e6-96231b3b80d8
303 lines
14 KiB
ArmAsm
303 lines
14 KiB
ArmAsm
! 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
|