blob: 648f06dbf813041cb389a6341ff79dedea2e1bb4 [file] [log] [blame]
# RUN: not llvm-mc -triple s390x-unknown-unknown -filetype=obj -mcpu=zEC12 \
# RUN: -o /dev/null %s 2>&1 | FileCheck %s
.text
# Test fixup ranges, which are encoded as half-words.
# 12-bit
# CHECK: error: operand out of range (4096 not between -4096 and 4094)
# CHECK-NEXT: bprp 0, .Lab1, 0
# CHECK-NEXT: ^
# CHECK-NEXT: error: operand out of range (-4098 not between -4096 and 4094)
# CHECK-NEXT: bprp 0, .Lab0, 0
# CHECK-NEXT: ^
bprp 0, .Lab1, 0
.Lab0:
bprp 0, .Lab1, 0
.space 4084
.Lab1:
nopr
bprp 0, .Lab0, 0
bprp 0, .Lab0, 0
# 24-bit
# CHECK-NEXT: error: operand out of range (16777220 not between -16777216 and 16777214)
# CHECK-NEXT: bprp 0, 0, .Lab3
# CHECK-NEXT: ^
# CHECK-NEXT: error: operand out of range (-16777222 not between -16777216 and 16777214)
# CHECK-NEXT: bprp 0, 0, .Lab2
# CHECK-NEXT: ^
bprp 0, 0, .Lab3
.Lab2:
bprp 0, 0, .Lab3
.space 16777208
.Lab3:
nopr
bprp 0, 0, .Lab2
bprp 0, 0, .Lab2
# 16-bit
# CHECK-NEXT: error: operand out of range (65540 not between -65536 and 65534)
# CHECK-NEXT: cij %r1, 0, 0, .Lab5
# CHECK-NEXT: ^
# CHECK-NEXT: error: operand out of range (-65542 not between -65536 and 65534)
# CHECK-NEXT: cij %r1, 0, 0, .Lab4
# CHECK-NEXT: ^
cij %r1, 0, 0, .Lab5
.Lab4:
cij %r1, 0, 0, .Lab5
.space 65528
.Lab5:
nopr
cij %r1, 0, 0, .Lab4
cij %r1, 0, 0, .Lab4
# 32-bit
# Unfortunately there is no support for offsets greater than 32 bits, so we have
# to for now assume they are in range.
# CHECK-NOT: error