reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
  166
  167
  168
  169
  170
  171
  172
  173
  174
  175
  176
  177
  178
  179
  180
  181
  182
  183
  184
  185
  186
  187
  188
  189
  190
  191
  192
  193
  194
  195
  196
  197
  198
  199
  200
  201
  202
  203
  204
  205
  206
  207
  208
  209
  210
  211
  212
  213
// 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
	//APP
	ldr x0, :got:var_got
	//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
// CHECK: R_AARCH64_GOT_LD_PREL19 var_got

	.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