brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · b494688 Raw
133 lines · plain
1# RUN: rm -rf %t && mkdir -p %t2# RUN: llvm-mc -triple thumbv7-windows-itanium -filetype obj -o %t/COFF_Thumb.o %s3# RUN: llvm-rtdyld -triple thumbv7-windows \4# RUN:   -dummy-extern ExitProcess=0x54769891 \5# RUN:   -dummy-extern unnamed_addr=0x00001024 -verify -check %s %t/COFF_Thumb.o6 7	.text8	.syntax unified9 10	.def unnamed_addr11		.scl 212		.type 3213	.endef14	.global unnamed_addr15 16	.def branch24t17		.scl 218		.type 3219	.endef20	.global branch24t21	.p2align 122	.code 1623	.thumb_func24branch24t:25@ rel1:26#	b unnamed_addr					@ IMAGE_REL_ARM_BRANCH24T27 28	.def function29		.scl 230		.type 3231	.endef32	.globl function33	.p2align 134	.code 1635	.thumb_func36function:37	push.w {r11, lr}38	mov r11, sp39rel3:							@ IMAGE_REL_ARM_MOV32T40	movw r0, :lower16:string41# rtdyld-check: decode_operand(rel3, 1) = (string&0x0000ffff)42	movt r0, :upper16:string43# TODO rtdyld-check: decode_operand(rel3, 1) = (string&0xffff0000>>16)44	blx r145load_from_dllimport_lo:							@ IMAGE_REL_ARM_MOV32T46	movw r0, :lower16:__imp_ExitProcess47# (1) Check stub content.48# rtdyld-check: *{4}(stub_addr(COFF_Thumb.o/.text, __imp_ExitProcess)) = \49# rtdyld-check:   ExitProcess50#51# (2) Check lo bits of stub address.52# rtdyld-check: decode_operand(load_from_dllimport_lo, 1) = \53# rtdyld-check:   stub_addr(COFF_Thumb.o/.text, __imp_ExitProcess)[15:0]54load_from_dllimport_hi:55	movt r0, :upper16:__imp_ExitProcess56# (3) Check hi bits of stub address.57# rtdyld-check: decode_operand(load_from_dllimport_hi, 2) = \58# rtdyld-check:   stub_addr(COFF_Thumb.o/.text, __imp_ExitProcess)[31:16]59	ldr r1, [r0]60	movs r0, #061	pop.w {r11, lr}62	bx r163 64	.def main65		.scl 266		.type 3267	.endef68	.globl main69	.p2align 170	.code 1671	.thumb_func72main:73	push.w {r11, lr}74	mov r11, sp75rel5:76#	bl function					@ IMAGE_REL_ARM_BLX23T77	movs r0, #078	pop.w {r11, pc}79 80	.section .rdata,"dr"81	.global string82string:83	.asciz "Hello World\n"84 85	.data86 87	.global relocations88relocations:89@ rel8:90	.long function(imgrel)				@ IMAGE_REL_ARM_ADDR32NB91# rtdyld-check: *{4}relocations = function - section_addr(COFF_Thumb.o, .text)92rel9:93	.secidx __imp_ExitProcess		@ IMAGE_REL_ARM_SECTION94# rtdyld-check: *{2}rel9 = 295rel10:96	.long relocations(secrel32)			@ IMAGE_REL_ARM_SECREL97# rtdyld-check: *{4}rel10 = relocations - section_addr(COFF_Thumb.o, .data)98rel11:99	.secrel32 relocations				@ IMAGE_REL_ARM_SECREL100# rtdyld-check: *{4}rel11 = relocations - section_addr(COFF_Thumb.o, .data)101	bx r0102	trap103 104	.text105 106	.p2align 2107 108branch_to_thumb_func:109@ rel14:                                                @ IMAGE_REL_ARM_MOV32T110        movw r0, :lower16:function111# rtdyld-check: decode_operand(branch_to_thumb_func, 1) = (function&0x0000ffff|1)112        movt r0, :upper16:function113# TODO rtdyld-check: decode_operand(branch_to_thumb_func, 1) = (function&0xffff0000>>16)114        bx r0115        trap116 117        .data118 119        .p2align 2120a_data_symbol:121        .long 1073741822122 123        .p2align 2124 125        .text126 127ref_to_data_symbol_addr:128@ rel15:                                                @ IMAGE_REL_ARM_MOV32T129        movw r0, :lower16:a_data_symbol130# rtdyld-check: decode_operand(ref_to_data_symbol_addr, 1) = (a_data_symbol&0x0000ffff)131        movt r0, :upper16:a_data_symbol132# TODO rtdyld-check: decode_operand(ref_to_data_symbol_addr, 1) = (a_data_symbol&0xffff0000>>16)133