forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
// RUN: llvm-mc -filetype=obj -triple i686-pc-mingw32 %s | llvm-readobj -S --sr --sd | FileCheck %s
 | 
						|
 | 
						|
// COFF resolves differences between labels in the same section, unless that
 | 
						|
// label is declared with function type.
 | 
						|
 | 
						|
.section baz, "xr"
 | 
						|
	.globl	X
 | 
						|
X:
 | 
						|
	mov	Y-X+42,	%eax
 | 
						|
	retl
 | 
						|
 | 
						|
	.globl	Y
 | 
						|
Y:
 | 
						|
	retl
 | 
						|
 | 
						|
	.def	 _foobar;
 | 
						|
	.scl	2;
 | 
						|
	.type	32;
 | 
						|
	.endef
 | 
						|
	.text
 | 
						|
	.long   0
 | 
						|
	.globl	_foobar
 | 
						|
	.align	16, 0x90
 | 
						|
_foobar:                                # @foobar
 | 
						|
# %bb.0:
 | 
						|
	ret
 | 
						|
 | 
						|
	.globl	_baz
 | 
						|
_baz:
 | 
						|
	calll	_foobar
 | 
						|
	retl
 | 
						|
 | 
						|
	.data
 | 
						|
	.globl	_rust_crate             # @rust_crate
 | 
						|
	.align	4
 | 
						|
_rust_crate:
 | 
						|
	.long   0
 | 
						|
	.long   _foobar
 | 
						|
	.long	_foobar-_rust_crate
 | 
						|
	.long	_foobar-_rust_crate
 | 
						|
 | 
						|
// Even though _baz and _foobar are in the same .text section, we keep the
 | 
						|
// relocation for compatibility with the VC linker's /guard:cf and /incremental
 | 
						|
// flags, even on mingw.
 | 
						|
 | 
						|
// CHECK:        Name: .text
 | 
						|
// CHECK:        Relocations [
 | 
						|
// CHECK-NEXT:     0x12 IMAGE_REL_I386_REL32 _foobar
 | 
						|
// CHECK-NEXT:   ]
 | 
						|
 | 
						|
// CHECK:        Name: .data
 | 
						|
// CHECK:        Relocations [
 | 
						|
// CHECK-NEXT:     0x4 IMAGE_REL_I386_DIR32 _foobar
 | 
						|
// CHECK-NEXT:     0x8 IMAGE_REL_I386_REL32 _foobar
 | 
						|
// CHECK-NEXT:     0xC IMAGE_REL_I386_REL32 _foobar
 | 
						|
// CHECK-NEXT:   ]
 | 
						|
// CHECK:        SectionData (
 | 
						|
// CHECK-NEXT:     0000: 00000000 00000000 0C000000 10000000
 | 
						|
// CHECK-NEXT:   )
 | 
						|
 | 
						|
// CHECK:        Name: baz
 | 
						|
// CHECK:        Relocations [
 | 
						|
// CHECK-NEXT:   ]
 | 
						|
// CHECK:        SectionData (
 | 
						|
// CHECK-NEXT:     0000: A1300000 00C3C3
 | 
						|
// CHECK-NEXT:   )
 |