brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · aa8c917 Raw
53 lines · plain
1# RUN: rm -rf %t && mkdir -p %t/thumbv7m && mkdir -p %t/thumbv72#3# RUN: llvm-mc -triple=thumbv7m-linux-gnueabi -arm-add-build-attributes \4# RUN:         -filetype=obj -o %t/thumbv7m/out.o %s5# RUN: llvm-jitlink -noexec -slab-address 0x76ff0000 \6# RUN:              -slab-allocate 10Kb -slab-page-size 4096 \7# RUN:              -abs ext=0x76bbe880 -check %s %t/thumbv7m/out.o8#9# RUN: llvm-mc -triple=thumbv7-linux-gnueabi -arm-add-build-attributes \10# RUN:         -filetype=obj -o %t/thumbv7/out.o %s11# RUN: llvm-jitlink -noexec -slab-address 0x76ff0000 \12# RUN:              -slab-allocate 10Kb -slab-page-size 4096 \13# RUN:              -abs ext=0x76bbe880 -check %s %t/thumbv7/out.o14 15 16	.text17	.syntax unified18 19# Check that calls/jumps to external functions trigger the generation of20# branch-range extension stubs. These stubs don't follow the default PLT model21# where the branch-target address is loaded from a GOT entry. Instead, they22# hard-code it in the immediate field.23#24# jitlink-check: decode_operand(test_external_call, 2) = stub_addr(out.o, ext) - next_pc(test_external_call)25# jitlink-check: decode_operand(test_external_jump, 0) = stub_addr(out.o, ext) - next_pc(test_external_jump)26	.globl  test_external_call27	.type	test_external_call,%function28	.p2align	129	.code	1630	.thumb_func31test_external_call:32	bl	ext33	.size test_external_call, .-test_external_call34 35	.globl  test_external_jump36	.type	test_external_jump,%function37	.p2align	138	.code	1639	.thumb_func40test_external_jump:41	b	ext42	.size test_external_jump, .-test_external_jump43 44# Empty main function for jitlink to be happy45	.globl	main46	.type	main,%function47	.p2align	148	.code	1649	.thumb_func50main:51	bx	lr52	.size	main,	.-main53