2 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64
%s
-o
%t.o
3 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64
%S
/Inputs
/abs255.s
-o
%t255.o
4 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64
%S
/Inputs
/abs256.s
-o
%t256.o
5 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64
%S
/Inputs
/abs257.s
-o
%t257.o
6 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64_be
%s
-o
%t.be.o
7 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64_be
%S
/Inputs
/abs256.s
-o
%t256.be.o
12 .word foo - . + 0x100202057
13 .word foo - . - 0x7fdfdfa4
15 // Note
: If this test fails
, it probably happens because of
16 // the change of the address of the
.data section.
17 // You may found the correct address in the aarch64_abs32.s test
,
18 // if it is already fixed. Then
, update addends accordingly.
19 // RUN
: ld.lld
-z max-page-size
=4096 %t.o
%t256.o
-o
%t
20 // RUN
: llvm-objdump
-s
--section
=.data %t | FileCheck %s --check-prefixes=CHECK,LE
21 // RUN
: ld.lld
-z max-page-size
=4096 %t.be.o
%t256.be.o
-o
%t.
be
22 // RUN
: llvm-objdump
-s
--section
=.data %t.be | FileCheck %s --check-prefixes=CHECK,BE
24 // CHECK
: Contents of section
.data:
25 // 202158: S
= 0x100, A = 0x100202057, P
= 0x202158
26 // S
+ A - P
= 0xffffffff
27 // 20215c
: S
= 0x100, A = -0x7fdfdfa4, P
= 0x20215c
28 // S
+ A - P
= 0x80000000
29 // LE-NEXT
: 202158 ffffffff
00000080
30 // BE-NEXT
: 202158 ffffffff
80000000
32 // RUN
: not ld.lld
-z max-page-size
=4096 %t.o
%t255.o
-o
/dev
/null
2>&1 | FileCheck
%s
--check-prefix
=OVERFLOW1
33 // OVERFLOW1
: relocation R_AARCH64_PREL32 out of range
: -2147483649 is
not in
[-2147483648, 4294967295]; references foo
35 // RUN
: not ld.lld
-z max-page-size
=4096 %t.o
%t257.o
-o
/dev
/null
2>&1 | FileCheck
%s
--check-prefix
=OVERFLOW2
36 // OVERFLOW2
: relocation R_AARCH64_PREL32 out of range
: 4294967296 is
not in
[-2147483648, 4294967295]; references foo