# RUN: llvm-objdump --macho -d --no-show-raw-insn --section-headers %t/main | FileCheck %s --check-prefix=DYLIB
# STATIC-LABEL: _main:
-# STATIC-NEXT: adrp x8, [[#]] ; 0x[[#%x,PAGE:]]
-# STATIC-NEXT: add x8, x8, #[[#%u,FOO_OFF:]]
-# STATIC-NEXT: adrp x8, [[#]] ; 0x[[#PAGE]]
-# STATIC-NEXT: add x8, x8, #[[#%u,BAR_OFF:]]
+# STATIC-NEXT: adrp x8, [[#]] ; 0x[[#%x,PAGE:]]
+# STATIC-NEXT: add x8, x8, #[[#%u,FOO_OFF:]]
+# STATIC-NEXT: adrp x8, [[#]] ; 0x[[#PAGE]]
+# STATIC-NEXT: add x8, x8, #[[#%u,BAR_OFF:]]
# STATIC-NEXT: ret
# STATIC-LABEL: SYMBOL TABLE:
# STATIC-DAG: {{0*}}[[#%x,PAGE+BAR_OFF]] g F __TEXT,__text _bar
# DYLIB-LABEL: _main:
-# DYLIB-NEXT: adrp x8, [[#]] ; 0x[[#%x,GOT:]]
-# DYLIB-NEXT: ldr x8, [x8, #8] ; literal pool symbol address: _foo
-# DYLIB-NEXT: adrp x8, [[#]] ; 0x[[#GOT]]
-# DYLIB-NEXT: ldr x8, [x8] ; literal pool symbol address: _bar
+# DYLIB-NEXT: adrp x8, [[#]] ; 0x[[#%x,GOT:]]
+# DYLIB-NEXT: ldr x8, [x8, #8] ; literal pool symbol address: _foo
+# DYLIB-NEXT: adrp x8, [[#]] ; 0x[[#GOT]]
+# DYLIB-NEXT: ldr x8, [x8] ; literal pool symbol address: _bar
# DYLIB-NEXT: ret
# DYLIB-NEXT: Sections:
# DYLIB-NEXT: Idx Name Size VMA Type
.globl _main, _foo, _bar
.p2align 2
_main:
- adrp x8, _foo@GOTPAGE
- ldr x8, [x8, _foo@GOTPAGEOFF]
- adrp x8, _bar@GOTPAGE
- ldr x8, [x8, _bar@GOTPAGEOFF]
+ adrp x8, _foo@GOTPAGE
+ ldr x8, [x8, _foo@GOTPAGEOFF]
+ adrp x8, _bar@GOTPAGE
+ ldr x8, [x8, _bar@GOTPAGEOFF]
ret
#--- foobar.s
## POINTER_TO_GOT, we should still be able to relax this GOT_LOAD reference to
## it.
# CHECK: _main:
-# CHECK-NEXT: adrp x8, [[#]] ;
-# CHECK-NEXT: ldr x8, [x8] ; literal pool symbol address: _foo
-# CHECK-NEXT: ret
+# CHECK-NEXT: adrp x8, [[#]] ;
+# CHECK-NEXT: ldr x8, [x8] ; literal pool symbol address: _foo
+# CHECK-NEXT: ret
# CHECK: Idx Name Size VMA Type
# CHECK: [[#]] __got 00000008 0000000100004000 DATA
# CHECK-LABEL: _foo:
## BRANCH26 relocations are 4-byte aligned, so 123 is truncated to 120
-# CHECK-NEXT: bl 0x[[#BAR+120]]
+# CHECK-NEXT: bl 0x[[#BAR+120]]
## PAGE21 relocations are aligned to 4096 bytes
-# CHECK-NEXT: adrp x2, [[#]] ; 0x[[#BAZ+4096-128]]
-# CHECK-NEXT: ldr x2, [x2, #128]
-# CHECK-NEXT: adrp x3, 8 ; 0x8000
-# CHECK-NEXT: ldr q0, [x3, #144]
+# CHECK-NEXT: adrp x2, [[#]] ; 0x[[#BAZ+4096-128]]
+# CHECK-NEXT: ldr x2, [x2, #128]
+# CHECK-NEXT: adrp x3, 8 ; 0x8000
+# CHECK-NEXT: ldr q0, [x3, #144]
# CHECK-NEXT: ret
# CHECK-LABEL: Contents of (__DATA_CONST,__const) section
-# CHECK: [[#PTR_1]] {{0*}}[[#BAZ]] 00000000 00000000 00000000
-# CHECK: [[#PTR_2]] {{0*}}[[#BAZ+123]] 00000000 00000000 00000000
+# CHECK: [[#PTR_1]] {{0*}}[[#BAZ]] 00000000 00000000 00000000
+# CHECK: [[#PTR_2]] {{0*}}[[#BAZ+123]] 00000000 00000000 00000000
.text
.globl _foo, _bar, _baz, _quux
# CHECK: (__TEXT,__text) section
# CHECK-NEXT: _main:
-# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _foo
-# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _bar
-# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _foo_tlv
-# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _bar_tlv
-# CHECK-NEXT: callq {{.*}} ## symbol stub for: _foo_fn
-# CHECK-NEXT: callq {{.*}} ## symbol stub for: _bar_fn
+# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _foo
+# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _bar
+# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _foo_tlv
+# CHECK-NEXT: movq {{.*}}(%rip), %rax ## literal pool symbol address: _bar_tlv
+# CHECK-NEXT: callq {{.*}} ## symbol stub for: _foo_fn
+# CHECK-NEXT: callq {{.*}} ## symbol stub for: _bar_fn
# CHECK-NEXT: retq
# CHECK: Indirect symbols for (__TEXT,__stubs) 2 entries
# CHECK: error: GOT_LOAD relocation requires that variable not be thread-local for `_foo' in [[FILE]]:(__text)
#--- libtlv.s
-.section __DATA,__thread_vars,thread_local_variables
+.section __DATA,__thread_vars,thread_local_variables
.globl _foo
_foo:
_main:
ret
-.section __DATA,__thread_vars,thread_local_variables
-.globl _foo, _bar
+.section __DATA,__thread_vars,thread_local_variables
+.globl _foo, _bar
_foo:
movq _bar@GOTPCREL(%rip), %rax
leaq _foo@TLVP(%rip), %rax
ret
-.section __DATA,__thread_vars,thread_local_variables
+.section __DATA,__thread_vars,thread_local_variables
_foo:
; RUN: llvm-objdump -d --section="__text" --no-leading-addr --no-show-raw-insn %t.dylib | FileCheck %s --check-prefix=NO-FMA
; FMA: <_foo>:
-; FMA-NEXT: vrcpss %xmm0, %xmm0, %xmm1
-; FMA-NEXT: vfmsub213ss 7(%rip), %xmm1, %xmm0
-; FMA-NEXT: vfnmadd132ss %xmm1, %xmm1, %xmm0
-; FMA-NEXT: retq
+; FMA-NEXT: vrcpss %xmm0, %xmm0, %xmm1
+; FMA-NEXT: vfmsub213ss 7(%rip), %xmm1, %xmm0
+; FMA-NEXT: vfnmadd132ss %xmm1, %xmm1, %xmm0
+; FMA-NEXT: retq
; NO-FMA: <_foo>:
-; NO-FMA-NEXT: vrcpss %xmm0, %xmm0, %xmm1
-; NO-FMA-NEXT: vmulss %xmm1, %xmm0, %xmm0
-; NO-FMA-NEXT: vmovss 16(%rip), %xmm2
-; NO-FMA-NEXT: vsubss %xmm0, %xmm2, %xmm0
-; NO-FMA-NEXT: vmulss %xmm0, %xmm1, %xmm0
-; NO-FMA-NEXT: vaddss %xmm0, %xmm1, %xmm0
+; NO-FMA-NEXT: vrcpss %xmm0, %xmm0, %xmm1
+; NO-FMA-NEXT: vmulss %xmm1, %xmm0, %xmm0
+; NO-FMA-NEXT: vmovss 16(%rip), %xmm2
+; NO-FMA-NEXT: vsubss %xmm0, %xmm2, %xmm0
+; NO-FMA-NEXT: vmulss %xmm0, %xmm1, %xmm0
+; NO-FMA-NEXT: vaddss %xmm0, %xmm1, %xmm0
; NO-FMA-NEXT: retq
target triple = "x86_64-apple-darwin"
_OBJC_CLASS_$_MyObject:
#--- has-objc-category.s
-.section __DATA,__objc_catlist
+.section __DATA,__objc_catlist
.quad 0x1234
#--- has-swift.s
-.section __TEXT,__swift
+.section __TEXT,__swift
.quad 0x1234
#--- no-objc.s
# CHECK-DAG: __DATA_CONST __got 0x{{0*}}[[#%x, BAZ]] pointer 0 libtlv _baz
#--- libtlv.s
-.section __DATA,__thread_vars,thread_local_variables
+.section __DATA,__thread_vars,thread_local_variables
.globl _foo, _bar, _baz
_foo:
_bar:
mov _bar@TLVP(%rip), %rax
ret
-.section __DATA,__thread_data,thread_local_regular
+.section __DATA,__thread_data,thread_local_regular
_foo$tlv$init:
.quad 123
-.section __DATA,more_thread_data,thread_local_regular
+.section __DATA,more_thread_data,thread_local_regular
_bar$tlv$init:
.quad 123
-.section __DATA,__thread_vars,thread_local_variables
-.globl _foo, _bar
+.section __DATA,__thread_vars,thread_local_variables
+.globl _foo, _bar
_foo:
- .quad __tlv_bootstrap
- .quad 0
- .quad _foo$tlv$init
+ .quad __tlv_bootstrap
+ .quad 0
+ .quad _foo$tlv$init
_bar:
- .quad __tlv_bootstrap
- .quad 0
- .quad _bar$tlv$init
+ .quad __tlv_bootstrap
+ .quad 0
+ .quad _bar$tlv$init
#--- tbss.s
.tbss _baz$tlv$init, 8, 3
.tbss _qux$tlv$init, 8, 3
-.section __DATA,__thread_vars,thread_local_variables
+.section __DATA,__thread_vars,thread_local_variables
_baz:
- .quad __tlv_bootstrap
- .quad 0
- .quad _baz$tlv$init
+ .quad __tlv_bootstrap
+ .quad 0
+ .quad _baz$tlv$init
_qux:
- .quad __tlv_bootstrap
- .quad 0
- .quad _qux$tlv$init
+ .quad __tlv_bootstrap
+ .quad 0
+ .quad _qux$tlv$init
# CHECK-NEXT: {{[0-9a-f]+}} {{[0-9a-f ]*[1-9a-f]+[0-9a-f ]*}}
# CHECK: <_main>:
-# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_DY_GOT_ADDR:]]
-# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_EXT_GOT_ADDR:]]
-# CHECK-NEXT: leaq [[#]](%rip), %rax # [[#%X,WEAK_INT_GOT_ADDR:]]
-# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_TLV_ADDR:]]
-# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_DY_TLV_ADDR:]]
-# CHECK-NEXT: leaq [[#]](%rip), %rax # [[#%X,WEAK_INT_TLV_ADDR:]]
+# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_DY_GOT_ADDR:]]
+# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_EXT_GOT_ADDR:]]
+# CHECK-NEXT: leaq [[#]](%rip), %rax # [[#%X,WEAK_INT_GOT_ADDR:]]
+# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_TLV_ADDR:]]
+# CHECK-NEXT: movq [[#]](%rip), %rax # [[#%X,WEAK_DY_TLV_ADDR:]]
+# CHECK-NEXT: leaq [[#]](%rip), %rax # [[#%X,WEAK_INT_TLV_ADDR:]]
# CHECK-NEXT: callq 0x{{[0-9a-f]*}}
# CHECK-NEXT: callq 0x{{[0-9a-f]*}}
# CHECK-NEXT: callq 0x{{[0-9a-f]*}}
_weak_foo:
_weak_foo_fn:
-.section __DATA,__thread_vars,thread_local_variables
+.section __DATA,__thread_vars,thread_local_variables
.globl _foo_tlv
_foo_tlv:
# WHYOBJCALLFORCE-DAG: -force_load forced load of lib.a(objc.o)
#--- objc.s
-.section __DATA,__objc_catlist
+.section __DATA,__objc_catlist
.quad 0x1234
#--- foo.s
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o
# RUN: %lld -o %t %t.o
# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
-# CHECK: leaq [[#]](%rip), %rax # {{.*}} <_foo>
+# CHECK: leaq [[#]](%rip), %rax # {{.*}} <_foo>
.globl _main, _foo