.text .file "threadtest.c" .globl theThread # -- Begin function theThread .p2align 2 .type theThread,@function .section .opd,"aw",@progbits theThread: # @theThread .p2align 3 .quad .Lfunc_begin0 .quad .TOC.@tocbase .quad 0 .text .Lfunc_begin0: # %bb.0: # %entry mflr 0 std 31, -8(1) std 0, 16(1) stdu 1, -176(1) mr 31, 1 std 29, 152(31) # 8-byte Folded Spill std 30, 160(31) # 8-byte Folded Spill std 3, 144(31) bl pthread_getthreadid_np nop addis 4, 2, .L.str@toc@ha addi 4, 4, .L.str@toc@l std 3, 120(31) # 8-byte Folded Spill mr 3, 4 ld 4, 120(31) # 8-byte Folded Reload bl printf nop # kill: def %x3 killed %x3 ld 3, 144(31) std 3, 128(31) ld 3, 128(31) lwz 5, 0(3) addis 3, 2, TLS_data1@got@tlsgd@ha addi 3, 3, TLS_data1@got@tlsgd@l stw 5, 116(31) # 4-byte Folded Spill bl __tls_get_addr(TLS_data1@tlsgd) nop lwz 30, 116(31) # 4-byte Folded Reload stw 30, 0(3) ld 3, 128(31) lwz 29, 4(3) addis 3, 2, TLS_data2@got@tlsgd@ha addi 3, 3, TLS_data2@got@tlsgd@l bl __tls_get_addr(TLS_data2@tlsgd) nop stw 29, 0(3) bl foo nop li 3, 0 ld 30, 160(31) # 8-byte Folded Reload ld 29, 152(31) # 8-byte Folded Reload addi 1, 1, 176 ld 0, 16(1) ld 31, -8(1) mtlr 0 blr .long 0 .quad 0 .Lfunc_end0: .size theThread, .Lfunc_end0-.Lfunc_begin0 # -- End function .globl foo # -- Begin function foo .p2align 2 .type foo,@function .section .opd,"aw",@progbits foo: # @foo .p2align 3 .quad .Lfunc_begin1 .quad .TOC.@tocbase .quad 0 .text .Lfunc_begin1: # %bb.0: # %entry mflr 0 std 31, -8(1) std 0, 16(1) stdu 1, -176(1) mr 31, 1 std 25, 120(31) # 8-byte Folded Spill std 26, 128(31) # 8-byte Folded Spill std 27, 136(31) # 8-byte Folded Spill std 28, 144(31) # 8-byte Folded Spill std 29, 152(31) # 8-byte Folded Spill std 30, 160(31) # 8-byte Folded Spill bl pthread_getthreadid_np nop mr 4, 3 addis 3, 2, TLS_data1@got@tlsgd@ha addi 3, 3, TLS_data1@got@tlsgd@l stw 4, 116(31) # 4-byte Folded Spill bl __tls_get_addr(TLS_data1@tlsgd) nop lwz 30, 0(3) addis 3, 2, TLS_data2@got@tlsgd@ha addi 3, 3, TLS_data2@got@tlsgd@l bl __tls_get_addr(TLS_data2@tlsgd) nop lwz 29, 0(3) addis 3, 2, .L.str.1@toc@ha addi 3, 3, .L.str.1@toc@l lwz 28, 116(31) # 4-byte Folded Reload extsw 27, 28 extsw 26, 30 extsw 25, 29 mr 4, 27 mr 5, 26 mr 6, 25 bl printf nop # kill: def %x3 killed %x3 bl bar nop ld 30, 160(31) # 8-byte Folded Reload ld 29, 152(31) # 8-byte Folded Reload ld 28, 144(31) # 8-byte Folded Reload ld 27, 136(31) # 8-byte Folded Reload ld 26, 128(31) # 8-byte Folded Reload ld 25, 120(31) # 8-byte Folded Reload addi 1, 1, 176 ld 0, 16(1) ld 31, -8(1) mtlr 0 blr .long 0 .quad 0 .Lfunc_end1: .size foo, .Lfunc_end1-.Lfunc_begin1 # -- End function .globl bar # -- Begin function bar .p2align 2 .type bar,@function .section .opd,"aw",@progbits bar: # @bar .p2align 3 .quad .Lfunc_begin2 .quad .TOC.@tocbase .quad 0 .text .Lfunc_begin2: # %bb.0: # %entry mflr 0 std 31, -8(1) std 0, 16(1) stdu 1, -176(1) mr 31, 1 std 25, 120(31) # 8-byte Folded Spill std 26, 128(31) # 8-byte Folded Spill std 27, 136(31) # 8-byte Folded Spill std 28, 144(31) # 8-byte Folded Spill std 29, 152(31) # 8-byte Folded Spill std 30, 160(31) # 8-byte Folded Spill bl pthread_getthreadid_np nop mr 4, 3 addis 3, 2, TLS_data1@got@tlsgd@ha addi 3, 3, TLS_data1@got@tlsgd@l stw 4, 116(31) # 4-byte Folded Spill bl __tls_get_addr(TLS_data1@tlsgd) nop lwz 30, 0(3) addis 3, 2, TLS_data2@got@tlsgd@ha addi 3, 3, TLS_data2@got@tlsgd@l bl __tls_get_addr(TLS_data2@tlsgd) nop lwz 29, 0(3) addis 3, 2, .L.str.2@toc@ha addi 3, 3, .L.str.2@toc@l lwz 28, 116(31) # 4-byte Folded Reload extsw 27, 28 extsw 26, 30 extsw 25, 29 mr 4, 27 mr 5, 26 mr 6, 25 bl printf nop # kill: def %x3 killed %x3 ld 30, 160(31) # 8-byte Folded Reload ld 29, 152(31) # 8-byte Folded Reload ld 28, 144(31) # 8-byte Folded Reload ld 27, 136(31) # 8-byte Folded Reload ld 26, 128(31) # 8-byte Folded Reload ld 25, 120(31) # 8-byte Folded Reload addi 1, 1, 176 ld 0, 16(1) ld 31, -8(1) mtlr 0 blr .long 0 .quad 0 .Lfunc_end2: .size bar, .Lfunc_end2-.Lfunc_begin2 # -- End function .globl main # -- Begin function main .p2align 2 .type main,@function .section .opd,"aw",@progbits main: # @main .p2align 3 .quad .Lfunc_begin3 .quad .TOC.@tocbase .quad 0 .text .Lfunc_begin3: # %bb.0: # %entry mflr 0 std 31, -8(1) std 0, 16(1) stdu 1, -192(1) mr 31, 1 mr 5, 3 li 6, 0 stw 6, 180(31) stw 5, 176(31) std 4, 168(31) stw 6, 148(31) ld 3, 168(31) ld 4, 0(3) addis 3, 2, .L.str.3@toc@ha addi 3, 3, .L.str.3@toc@l bl printf nop # kill: def %x3 killed %x3 addis 3, 2, .L.str.4@toc@ha addi 3, 3, .L.str.4@toc@l bl printf nop # kill: def %x3 killed %x3 li 5, 0 stw 5, 144(31) .LBB3_1: # %for.cond # =>This Inner Loop Header: Depth=1 lwz 3, 144(31) cmpwi 3, 2 bge 0, .LBB3_6 # %bb.2: # %for.body # in Loop: Header=BB3_1 Depth=1 li 4, 0 addis 3, 2, .LC0@toc@ha ld 5, .LC0@toc@l(3) addi 3, 31, 128 lwa 3, 144(31) sldi 6, 3, 3 addi 7, 31, 128 stwx 3, 7, 6 lwa 3, 144(31) mr 8, 3 slwi 8, 8, 1 addi 8, 8, 2 sldi 3, 3, 3 add 3, 7, 3 stw 8, 4(3) lwa 3, 144(31) sldi 3, 3, 3 addi 6, 31, 152 add 6, 6, 3 add 3, 7, 3 std 3, 120(31) # 8-byte Folded Spill mr 3, 6 ld 6, 120(31) # 8-byte Folded Reload bl pthread_create nop stw 3, 148(31) lwz 3, 148(31) cmpwi 3, 0 beq 0, .LBB3_4 # %bb.3: # %if.then lwz 3, 148(31) addis 4, 2, .L.str.5@toc@ha addi 4, 4, .L.str.5@toc@l extsw 5, 3 addis 6, 2, .L.str.6@toc@ha addi 6, 6, .L.str.6@toc@l mr 3, 4 mr 4, 5 mr 5, 6 bl printf nop # kill: def %x3 killed %x3 li 7, 1 extsw 3, 7 bl exit nop .LBB3_4: # %if.end # in Loop: Header=BB3_1 Depth=1 b .LBB3_5 .LBB3_5: # %for.inc # in Loop: Header=BB3_1 Depth=1 lwz 3, 144(31) addi 3, 3, 1 stw 3, 144(31) b .LBB3_1 .LBB3_6: # %for.end addis 3, 2, .L.str.7@toc@ha addi 3, 3, .L.str.7@toc@l bl printf nop # kill: def %x3 killed %x3 li 4, 0 stw 4, 144(31) .LBB3_7: # %for.cond12 # =>This Inner Loop Header: Depth=1 lwz 3, 144(31) cmpwi 3, 2 bge 0, .LBB3_12 # %bb.8: # %for.body14 # in Loop: Header=BB3_7 Depth=1 li 4, 0 addi 3, 31, 152 lwa 3, 144(31) sldi 3, 3, 3 addi 5, 31, 152 add 3, 5, 3 ld 3, 0(3) bl pthread_join nop stw 3, 148(31) lwz 3, 148(31) cmpwi 3, 0 beq 0, .LBB3_10 # %bb.9: # %if.then19 lwz 3, 148(31) addis 4, 2, .L.str.5@toc@ha addi 4, 4, .L.str.5@toc@l extsw 5, 3 addis 6, 2, .L.str.8@toc@ha addi 6, 6, .L.str.8@toc@l mr 3, 4 mr 4, 5 mr 5, 6 bl printf nop # kill: def %x3 killed %x3 li 7, 1 extsw 3, 7 bl exit nop .LBB3_10: # %if.end21 # in Loop: Header=BB3_7 Depth=1 b .LBB3_11 .LBB3_11: # %for.inc22 # in Loop: Header=BB3_7 Depth=1 lwz 3, 144(31) addi 3, 3, 1 stw 3, 144(31) b .LBB3_7 .LBB3_12: # %for.end24 addis 3, 2, .L.str.9@toc@ha addi 3, 3, .L.str.9@toc@l bl printf nop # kill: def %x3 killed %x3 li 3, 0 addi 1, 1, 192 ld 0, 16(1) ld 31, -8(1) mtlr 0 blr .long 0 .quad 0 .Lfunc_end3: .size main, .Lfunc_end3-.Lfunc_begin3 # -- End function .section .toc,"aw",@progbits .LC0: .tc theThread[TC],theThread .type .L.str,@object # @.str .section .rodata.str1.1,"aMS",@progbits,1 .L.str: .asciz "Thread %.16llx: Entered\n" .size .L.str, 25 .type TLS_data1,@object # @TLS_data1 .section .tbss,"awT",@nobits .globl TLS_data1 .p2align 2 TLS_data1: .long 0 # 0x0 .size TLS_data1, 4 .type TLS_data2,@object # @TLS_data2 .globl TLS_data2 .p2align 2 TLS_data2: .long 0 # 0x0 .size TLS_data2, 4 .type .L.str.1,@object # @.str.1 .section .rodata.str1.1,"aMS",@progbits,1 .L.str.1: .asciz "Thread %.16llx: foo(), TLS data=%d %d\n" .size .L.str.1, 39 .type .L.str.2,@object # @.str.2 .L.str.2: .asciz "Thread %.16llx: bar(), TLS data=%d %d\n" .size .L.str.2, 39 .type .L.str.3,@object # @.str.3 .L.str.3: .asciz "Enter Testcase - %s\n" .size .L.str.3, 21 .type .L.str.4,@object # @.str.4 .L.str.4: .asciz "Create/start threads\n" .size .L.str.4, 22 .type .L.str.5,@object # @.str.5 .L.str.5: .asciz "Failed with %d at %s" .size .L.str.5, 21 .type .L.str.6,@object # @.str.6 .L.str.6: .asciz "pthread_create()\n" .size .L.str.6, 18 .type .L.str.7,@object # @.str.7 .L.str.7: .asciz "Wait for the threads to complete, and release their resources\n" .size .L.str.7, 63 .type .L.str.8,@object # @.str.8 .L.str.8: .asciz "pthread_join()\n" .size .L.str.8, 16 .type .L.str.9,@object # @.str.9 .L.str.9: .asciz "Main completed\n" .size .L.str.9, 16 .ident "clang version 6.0.1 (tags/RELEASE_601/final)" .section ".note.GNU-stack","",@progbits