60 lines
1.6 KiB
ArmAsm
60 lines
1.6 KiB
ArmAsm
# 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
|