llvm/llvm/test/MC/Xtensa/Relocations/relocations.s

# RUN: llvm-mc -triple xtensa < %s -show-encoding \
# RUN:     | FileCheck -check-prefix=INSTR -check-prefix=FIXUP %s
# RUN: llvm-mc -filetype=obj -triple xtensa < %s \
# RUN:     | llvm-readobj -r - | FileCheck -check-prefix=RELOC %s

# Check prefixes:
# RELOC - Check the relocation in the object.
# FIXUP - Check the fixup on the instruction.
# INSTR - Check the instruction is handled properly by the ASMPrinter

.long func
# RELOC: R_XTENSA_32 func

ball a1, a3, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  ball    a1, a3, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bany a8, a13, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bany    a8, a13, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bbc a8, a7, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bbc     a8, a7, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bbci a3, 16, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bbci    a3, 16, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bbs a12, a5, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bbs     a12, a5, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bbsi a3, 16, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bbsi    a3, 16, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bnall a7, a3, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bnall   a7, a3, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bnone a2, a4, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bnone   a2, a4, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

beq a1, a2, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  beq     a1, a2, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

beq a11, a5, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  beq     a11, a5, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

beqi a1, 256, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  beqi    a1, 256, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

beqi a11, -1, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  beqi    a11, -1, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

beqz a8, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  beqz    a8, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_12

bge a14, a2, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bge     a14, a2, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgei a11, -1, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgei    a11, -1, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgei a11, 128, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgei    a11, 128, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgeu a14, a2, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgeu    a14, a2, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgeui a9, 32768, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgeui   a9, 32768, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgeui a7, 65536, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgeui   a7, 65536, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgeui a7, 64, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgeui   a7, 64, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgez a8, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgez    a8, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_12

blt a14, a2, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  blt     a14, a2, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

blti a12, -1, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  blti    a12, -1, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

blti a0, 32, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  blti    a0, 32, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bgeu a13, a1, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bgeu    a13, a1, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bltui a7, 16, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bltui   a7, 16, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bltz a6, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bltz    a6, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_12

bne a3, a4, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bne     a3, a4, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bnei a5, 12, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bnei    a5, 12, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_8

bnez a5, func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  bnez    a5, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_branch_12

call0  func
# RELOC: R_XTENSA_SLOT0_OP
# INST:  call0   func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_call_18

j func
# RELOC: R_XTENSA_SLOT0_OP
# INSTR: j func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_jump_18

l32r a6, func
# RELOC: R_XTENSA_SLOT0_OP
# INSTR: l32r    a6, func
# FIXUP: fixup A - offset: 0, value: func, kind: fixup_xtensa_l32r_16