Since jitlink for ppc64le is ready for general use, test cases in compiler-rt for ELFNixPlatform support can be enabled. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D156399
60 lines
1.2 KiB
ArmAsm
60 lines
1.2 KiB
ArmAsm
// Test that basic ELF static initializers work. The main function in this
|
|
// test returns the value of 'x', which is initially 1 in the data section,
|
|
// and reset to 0 if the _static_init function is run. If the static initializer
|
|
// does not run then main will return 1, causing the test to be treated as a
|
|
// failure.
|
|
//
|
|
// RUN: %clang -c -o %t %s
|
|
// RUN: %llvm_jitlink %t
|
|
.text
|
|
.abiversion 2
|
|
.file "init.c"
|
|
.globl static_init
|
|
.p2align 4
|
|
.type static_init,@function
|
|
static_init:
|
|
.Lfunc_begin0:
|
|
.Lfunc_gep0:
|
|
addis 2, 12, .TOC.-.Lfunc_gep0@ha
|
|
addi 2, 2, .TOC.-.Lfunc_gep0@l
|
|
.Lfunc_lep0:
|
|
.localentry static_init, .Lfunc_lep0-.Lfunc_gep0
|
|
addis 3, 2, x@toc@ha
|
|
li 4, 0
|
|
stw 4, x@toc@l(3)
|
|
blr
|
|
.long 0
|
|
.quad 0
|
|
.Lfunc_end0:
|
|
.size static_init, .Lfunc_end0-.Lfunc_begin0
|
|
|
|
.globl main
|
|
.p2align 4
|
|
.type main,@function
|
|
main:
|
|
.Lfunc_begin1:
|
|
.Lfunc_gep1:
|
|
addis 2, 12, .TOC.-.Lfunc_gep1@ha
|
|
addi 2, 2, .TOC.-.Lfunc_gep1@l
|
|
.Lfunc_lep1:
|
|
.localentry main, .Lfunc_lep1-.Lfunc_gep1
|
|
addis 3, 2, x@toc@ha
|
|
lwa 3, x@toc@l(3)
|
|
blr
|
|
.long 0
|
|
.quad 0
|
|
.Lfunc_end1:
|
|
.size main, .Lfunc_end1-.Lfunc_begin1
|
|
|
|
.type x,@object
|
|
.data
|
|
.globl x
|
|
.p2align 2, 0x0
|
|
x:
|
|
.long 1
|
|
.size x, 4
|
|
|
|
.section .init_array.0,"aw",@init_array
|
|
.p2align 3
|
|
.quad static_init
|