You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			210 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
		
		
			
		
	
	
			210 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
|   | // RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj -mattr=+fp-armv8 < %s | llvm-objdump -r - | FileCheck %s | ||
|  | 
 | ||
|  | 	.file	"<stdin>" | ||
|  | 	.text | ||
|  | 	.globl	test_inline_modifier_L
 | ||
|  | 	.type	test_inline_modifier_L,@function
 | ||
|  | test_inline_modifier_L:                 // @test_inline_modifier_L
 | ||
|  | // %bb.0: | ||
|  | 	//APP | ||
|  | 	add x0, x0, #:lo12:var_simple | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr x0, [x0, #:got_lo12:var_got] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x0, x0, #:tlsdesc_lo12:var_tlsgd | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x0, x0, #:dtprel_lo12:var_tlsld | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr x0, [x0, #:gottprel_lo12:var_tlsie] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x0, x0, #:tprel_lo12:var_tlsle | ||
|  | 	//NO_APP | ||
|  | 	ret | ||
|  | .Ltmp0: | ||
|  | 	.size	test_inline_modifier_L, .Ltmp0-test_inline_modifier_L | ||
|  | 
 | ||
|  | // CHECK: R_AARCH64_ADD_ABS_LO12_NC var_simple | ||
|  | // CHECK: R_AARCH64_LD64_GOT_LO12_NC var_got | ||
|  | // CHECK: R_AARCH64_TLSDESC_ADD_LO12 var_tlsgd | ||
|  | // CHECK: R_AARCH64_TLSLD_ADD_DTPREL_LO12 var_tlsld | ||
|  | // CHECK: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC var_tlsie | ||
|  | // CHECK: R_AARCH64_TLSLE_ADD_TPREL_LO12 var_tlsle | ||
|  | 
 | ||
|  | 	.globl	test_inline_modifier_G
 | ||
|  | 	.type	test_inline_modifier_G,@function
 | ||
|  | test_inline_modifier_G:                 // @test_inline_modifier_G
 | ||
|  | // %bb.0: | ||
|  | 	//APP | ||
|  | 	add x0, x0, #:dtprel_hi12:var_tlsld, lsl #12 | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x0, x0, #:tprel_hi12:var_tlsle, lsl #12 | ||
|  | 	//NO_APP | ||
|  | 	ret | ||
|  | .Ltmp1: | ||
|  | 	.size	test_inline_modifier_G, .Ltmp1-test_inline_modifier_G | ||
|  | 
 | ||
|  | // CHECK: R_AARCH64_TLSLD_ADD_DTPREL_HI12 var_tlsld | ||
|  | // CHECK: R_AARCH64_TLSLE_ADD_TPREL_HI12 var_tlsle | ||
|  | 
 | ||
|  | 	.globl	test_inline_modifier_A
 | ||
|  | 	.type	test_inline_modifier_A,@function
 | ||
|  | test_inline_modifier_A:                 // @test_inline_modifier_A
 | ||
|  | // %bb.0: | ||
|  | 	//APP | ||
|  | 	adrp x0, var_simple | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	adrp x0, :got:var_got | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	adrp x0, :tlsdesc:var_tlsgd | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	adrp x0, :gottprel:var_tlsie | ||
|  | 	//NO_APP | ||
|  | 	ret | ||
|  | .Ltmp2: | ||
|  | 	.size	test_inline_modifier_A, .Ltmp2-test_inline_modifier_A | ||
|  | // CHECK: R_AARCH64_ADR_PREL_PG_HI21 var_simple | ||
|  | // CHECK: R_AARCH64_ADR_GOT_PAGE var_got | ||
|  | // CHECK: R_AARCH64_TLSDESC_ADR_PAGE21 var_tlsgd | ||
|  | // CHECK: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 var_tlsie | ||
|  | 
 | ||
|  | 	.globl	test_inline_modifier_wx
 | ||
|  | 	.type	test_inline_modifier_wx,@function
 | ||
|  | test_inline_modifier_wx:                // @test_inline_modifier_wx
 | ||
|  | // %bb.0: | ||
|  | 	mov	 w2, w0 | ||
|  | 	//APP | ||
|  | 	add w2, w2, w2 | ||
|  | 	//NO_APP | ||
|  | 	mov	 w2, w0 | ||
|  | 	//APP | ||
|  | 	add w2, w2, w2 | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x0, x0, x0 | ||
|  | 	//NO_APP | ||
|  | 	mov	 x0, x1 | ||
|  | 	//APP | ||
|  | 	add x0, x0, x0 | ||
|  | 	//NO_APP | ||
|  | 	mov	 x0, x1 | ||
|  | 	//APP | ||
|  | 	add w0, w0, w0 | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x1, x1, x1 | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add w0, wzr, wzr | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	add x0, xzr, xzr | ||
|  | 	//NO_APP | ||
|  | 	ret | ||
|  | .Ltmp3: | ||
|  | 	.size	test_inline_modifier_wx, .Ltmp3-test_inline_modifier_wx | ||
|  | 
 | ||
|  | 	.globl	test_inline_modifier_bhsdq
 | ||
|  | 	.type	test_inline_modifier_bhsdq,@function
 | ||
|  | test_inline_modifier_bhsdq:             // @test_inline_modifier_bhsdq
 | ||
|  | // %bb.0: | ||
|  | 	//APP | ||
|  | 	ldr b0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr h0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr s0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr d0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr q0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr b0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr h0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr s0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr d0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	//APP | ||
|  | 	ldr q0, [sp] | ||
|  | 	//NO_APP | ||
|  | 	ret | ||
|  | .Ltmp4: | ||
|  | 	.size	test_inline_modifier_bhsdq, .Ltmp4-test_inline_modifier_bhsdq | ||
|  | 
 | ||
|  | 	.globl	test_inline_modifier_c
 | ||
|  | 	.type	test_inline_modifier_c,@function
 | ||
|  | test_inline_modifier_c:                 // @test_inline_modifier_c
 | ||
|  | // %bb.0: | ||
|  | 	//APP | ||
|  | 	adr x0, 3 | ||
|  | 	//NO_APP | ||
|  | 	ret | ||
|  | .Ltmp5: | ||
|  | 	.size	test_inline_modifier_c, .Ltmp5-test_inline_modifier_c | ||
|  | 
 | ||
|  | 	.hidden	var_simple              // @var_simple
 | ||
|  | 	.type	var_simple,@object
 | ||
|  | 	.bss | ||
|  | 	.globl	var_simple
 | ||
|  | 	.align	2
 | ||
|  | var_simple: | ||
|  | 	.word	0                       // 0x0 | ||
|  | 	.size	var_simple, 4 | ||
|  | 
 | ||
|  | 	.type	var_got,@object         // @var_got
 | ||
|  | 	.globl	var_got
 | ||
|  | 	.align	2
 | ||
|  | var_got: | ||
|  | 	.word	0                       // 0x0 | ||
|  | 	.size	var_got, 4 | ||
|  | 
 | ||
|  | 	.type	var_tlsgd,@object       // @var_tlsgd
 | ||
|  | 	.section	.tbss,"awT",@nobits
 | ||
|  | 	.globl	var_tlsgd
 | ||
|  | 	.align	2
 | ||
|  | var_tlsgd: | ||
|  | 	.word	0                       // 0x0 | ||
|  | 	.size	var_tlsgd, 4 | ||
|  | 
 | ||
|  | 	.type	var_tlsld,@object       // @var_tlsld
 | ||
|  | 	.globl	var_tlsld
 | ||
|  | 	.align	2
 | ||
|  | var_tlsld: | ||
|  | 	.word	0                       // 0x0 | ||
|  | 	.size	var_tlsld, 4 | ||
|  | 
 | ||
|  | 	.type	var_tlsie,@object       // @var_tlsie
 | ||
|  | 	.globl	var_tlsie
 | ||
|  | 	.align	2
 | ||
|  | var_tlsie: | ||
|  | 	.word	0                       // 0x0 | ||
|  | 	.size	var_tlsie, 4 | ||
|  | 
 | ||
|  | 	.type	var_tlsle,@object       // @var_tlsle
 | ||
|  | 	.globl	var_tlsle
 | ||
|  | 	.align	2
 | ||
|  | var_tlsle: | ||
|  | 	.word	0                       // 0x0 | ||
|  | 	.size	var_tlsle, 4 | ||
|  | 
 | ||
|  | 
 |