2
0

gprt0.as 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. .file "crt1.c"
  2. #APP
  3. .ident "$FreeBSD: src/lib/csu/common/crtbrand.c,v 1.4 2003/10/17 15:43:13 peter Exp $"
  4. #NO_APP
  5. .section .note.ABI-tag,"a",@progbits
  6. .p2align 2
  7. .type abitag, @object
  8. .size abitag, 24
  9. abitag:
  10. .long 8
  11. .long 4
  12. .long 1
  13. .string "FreeBSD"
  14. .long 502110
  15. .section .rodata
  16. .LC0:
  17. .string ""
  18. .globl __progname
  19. .data
  20. .p2align 3
  21. .type __progname, @object
  22. .size __progname, 8
  23. __progname:
  24. .quad .LC0
  25. .text
  26. .p2align 2,,3
  27. .globl _start
  28. .type _start, @function
  29. _start:
  30. .LFB9:
  31. pushq %rbp
  32. .LCFI0:
  33. movq %rsp, %rbp
  34. .LCFI1:
  35. subq $48, %rsp
  36. .LCFI2:
  37. movq %rdi, -8(%rbp)
  38. movq %rsi, -16(%rbp)
  39. movq -8(%rbp), %rax
  40. movl (%rax), %eax
  41. movl %eax, -20(%rbp)
  42. movl %eax, operatingsystem_parameter_argc(%rip)
  43. movq -8(%rbp), %rax
  44. addq $8, %rax
  45. movq %rax, -32(%rbp)
  46. movq %rax, operatingsystem_parameter_argv(%rip)
  47. movl -20(%rbp), %eax
  48. cltq
  49. salq $3, %rax
  50. addq -8(%rbp), %rax
  51. addq $16, %rax
  52. movq %rax, -40(%rbp)
  53. movq %rax, operatingsystem_parameter_envp(%rip)
  54. movq -40(%rbp), %rax
  55. movq %rax, environ(%rip)
  56. cmpl $0, -20(%rbp)
  57. jle .L5
  58. movq -32(%rbp), %rax
  59. cmpq $0, (%rax)
  60. je .L5
  61. movq -32(%rbp), %rax
  62. movq (%rax), %rax
  63. movq %rax, __progname(%rip)
  64. movq __progname(%rip), %rax
  65. movq %rax, -48(%rbp)
  66. .L6:
  67. movq -48(%rbp), %rax
  68. cmpb $0, (%rax)
  69. jne .L9
  70. jmp .L5
  71. .L9:
  72. movq -48(%rbp), %rax
  73. cmpb $47, (%rax)
  74. jne .L8
  75. movq -48(%rbp), %rax
  76. incq %rax
  77. movq %rax, __progname(%rip)
  78. .L8:
  79. leaq -48(%rbp), %rax
  80. incq (%rax)
  81. jmp .L6
  82. .L5:
  83. # movl $_DYNAMIC, %eax
  84. # testq %rax, %rax
  85. # je .L11
  86. # movq -16(%rbp), %rdi
  87. # call atexit
  88. .L11:
  89. # movl $_fini, %edi
  90. # call atexit
  91. # call _init
  92. # movq -40(%rbp), %rdx #env
  93. # movq -32(%rbp), %rsi #argv
  94. # movl -20(%rbp), %edi # argc
  95. xorq %rbp,%rbp
  96. call main
  97. movl %eax, %edi
  98. call exit
  99. .LFE9:
  100. .size _start, .-_start
  101. #APP
  102. .ident "$FreeBSD: src/lib/csu/amd64/crt1.c,v 1.13 2003/04/30 19:27:07 peter Exp $"
  103. #NO_APP
  104. .comm environ,8,8
  105. .weak _DYNAMIC
  106. .section .eh_frame,"a",@progbits
  107. .Lframe1:
  108. .long .LECIE1-.LSCIE1
  109. .LSCIE1:
  110. .long 0x0
  111. .byte 0x1
  112. .string ""
  113. .uleb128 0x1
  114. .sleb128 -8
  115. .byte 0x10
  116. .byte 0xc
  117. .uleb128 0x7
  118. .uleb128 0x8
  119. .byte 0x90
  120. .uleb128 0x1
  121. .p2align 3
  122. .LECIE1:
  123. .LSFDE1:
  124. .long .LEFDE1-.LASFDE1
  125. .LASFDE1:
  126. .long .LASFDE1-.Lframe1
  127. .quad .LFB9
  128. .quad .LFE9-.LFB9
  129. .byte 0x4
  130. .long .LCFI0-.LFB9
  131. .byte 0xe
  132. .uleb128 0x10
  133. .byte 0x86
  134. .uleb128 0x2
  135. .byte 0x4
  136. .long .LCFI1-.LCFI0
  137. .byte 0xd
  138. .uleb128 0x6
  139. .p2align 3
  140. .LEFDE1:
  141. .ident "GCC: (GNU) 3.3.3 [FreeBSD] 20031106"