[SystemZ] Rework handling of constant PC-relative operands
[oota-llvm.git] / test / MC / SystemZ / insn-lrl-01.s
1 # RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s
2
3 #CHECK: lrl     %r0, .[[LAB:L.*]]-4294967296 # encoding: [0xc4,0x0d,A,A,A,A]
4 #CHECK:  fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL
5         lrl     %r0, -0x100000000
6 #CHECK: lrl     %r0, .[[LAB:L.*]]-2     # encoding: [0xc4,0x0d,A,A,A,A]
7 #CHECK:  fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL
8         lrl     %r0, -2
9 #CHECK: lrl     %r0, .[[LAB:L.*]]       # encoding: [0xc4,0x0d,A,A,A,A]
10 #CHECK:  fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL
11         lrl     %r0, 0
12 #CHECK: lrl     %r0, .[[LAB:L.*]]+4294967294 # encoding: [0xc4,0x0d,A,A,A,A]
13 #CHECK:  fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL
14         lrl     %r0, 0xfffffffe
15
16 #CHECK: lrl     %r0, foo                # encoding: [0xc4,0x0d,A,A,A,A]
17 # fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
18 #CHECK: lrl     %r15, foo               # encoding: [0xc4,0xfd,A,A,A,A]
19 # fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
20
21         lrl     %r0,foo
22         lrl     %r15,foo
23
24 #CHECK: lrl     %r3, bar+100            # encoding: [0xc4,0x3d,A,A,A,A]
25 # fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL
26 #CHECK: lrl     %r4, bar+100            # encoding: [0xc4,0x4d,A,A,A,A]
27 # fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL
28
29         lrl     %r3,bar+100
30         lrl     %r4,bar+100
31
32 #CHECK: lrl     %r7, frob@PLT           # encoding: [0xc4,0x7d,A,A,A,A]
33 # fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL
34 #CHECK: lrl     %r8, frob@PLT           # encoding: [0xc4,0x8d,A,A,A,A]
35 # fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL
36
37         lrl     %r7,frob@PLT
38         lrl     %r8,frob@PLT