RicardasSim

c2nasm gcc optimization compare (II)

Nov 9th, 2018
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. ----------
  2. C
  3. ----------
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. int main(){
  8.  
  9. #define ARR_ELL_COUNT 0
  10. const char *pTest[] = {0};
  11.  
  12. #if ARR_ELL_COUNT > 0
  13. printf("%s\n", pTest[0]);
  14. #endif
  15.  
  16. return 0;
  17. }
  18.  
  19. --------------
  20. c2nasm
  21. gcc(7.3.0)
  22. gcc -m64 -O3
  23. --------------
  24.  
  25. default rel
  26.  
  27. global main
  28.  
  29. SECTION .text
  30.  
  31. SECTION .data
  32.  
  33. SECTION .bss
  34.  
  35. SECTION .text.startup
  36.  
  37. main:
  38. xor eax, eax
  39. ret
  40.  
  41. --------------
  42. c2nasm
  43. gcc(7.3.0)
  44. gcc -m64 -O0
  45. --------------
  46.  
  47. default rel
  48.  
  49. global main
  50.  
  51. extern __stack_chk_fail
  52. extern _GLOBAL_OFFSET_TABLE_
  53.  
  54. SECTION .text
  55.  
  56. main:
  57. push rbp
  58. mov rbp, rsp
  59. sub rsp, 16
  60.  
  61. mov rax, qword [fs:abs 28H]
  62. mov qword [rbp-8H], rax
  63. xor eax, eax
  64. mov qword [rbp-10H], 0
  65. mov eax, 0
  66. mov rdx, qword [rbp-8H]
  67.  
  68. xor rdx, qword [fs:abs 28H]
  69. jz L_001
  70. call __stack_chk_fail
  71. L_001: leave
  72. ret
  73.  
  74. SECTION .data
  75.  
  76. SECTION .bss
Advertisement
Add Comment
Please, Sign In to add comment