1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 13:02:52 +02:00
llvm-mirror/test/MC/AArch64/arm64-ilp32.s
Joel Jones 704e107457 AArch64 ILP32 relocations for assembly and ELF
Summary:
Add relocations for AArch64 ILP32. Includes:
  - Addition of definitions for R_AARCH32_*
  - Definition of new -target-abi: ilp32
  - Definition of data layout string
  - Tests for added relocations. Not comprehensive, but matches
    existing tests for 64-bit. Renames "CHECK-OBJ" to "CHECK-OBJ-LP64".
  - Tests for llvm-readobj

Reviewers: zatrazz, peter.smith, echristo, t.p.northover

Subscribers: aemerson, rengolin, mehdi_amini

Differential Revision: https://reviews.llvm.org/D25159

llvm-svn: 284973
2016-10-24 13:37:13 +00:00

38 lines
1.2 KiB
ArmAsm

// RUN: llvm-mc -target-abi=ilp32 -triple aarch64-non-linux-gnu -filetype=obj \
// RUN: %s | llvm-objdump -r - | FileCheck --check-prefix=CHECK-ILP32 %s
// RUN: llvm-mc -triple aarch64-non-linux-gnu -filetype=obj \
// RUN: %s | llvm-objdump -r - | FileCheck --check-prefix=CHECK-LP64 %s
.text
.file "../projects/clang/test/Driver/arm64-ilp32.c"
.globl foo
.align 2
.type foo,@function
foo: // @foo
// BB#0: // %entry
sub sp, sp, #16 // =16
// CHECK-ILP32: 0000000000000004 R_AARCH64_P32_ADR_PREL_PG_HI21 sizes
// CHECK-ILP32: 0000000000000008 R_AARCH64_P32_ADD_ABS_LO12_NC sizes
// CHECK-LP64: 0000000000000004 R_AARCH64_ADR_PREL_PG_HI21 sizes
// CHECK-LP64: 0000000000000008 R_AARCH64_ADD_ABS_LO12_NC sizes
adrp x8, sizes
add x8, x8, :lo12:sizes
str w0, [sp, #12]
str w1, [sp, #8]
ldr w0, [x8]
add sp, sp, #16 // =16
ret
.Lfunc_end0:
.size foo, .Lfunc_end0-foo
.type sizes,@object // @sizes
.data
.globl sizes
.align 2
sizes:
.word 1 // 0x1
.word 2 // 0x2
.word 4 // 0x4
.word 4 // 0x4
.word 4 // 0x4
.size sizes, 20