Advertisement
eXFq7GJ1cC

Untitled

Jul 13th, 2012
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. $ gcc -S 20120713.c -O3 -o - -masm=intel -fno-asynchronous-unwind-tables -fno-dwarf2-cfi-asm
  2. .file "20120713.c"
  3. .intel_syntax noprefix
  4. .text
  5. .p2align 4,,15
  6. .globl interp_switch
  7. .type interp_switch, @function
  8. interp_switch:
  9. mov eax, esi
  10. .p2align 4,,10
  11. .p2align 3
  12. .L2:
  13. cmp BYTE PTR [rdi], 6
  14. jbe .L13
  15. .L3:
  16. rep
  17. ret
  18. .p2align 4,,10
  19. .p2align 3
  20. .L13:
  21. movzx edx, BYTE PTR [rdi]
  22. jmp [QWORD PTR .L10[0+rdx*8]]
  23. .section .rodata
  24. .align 8
  25. .align 4
  26. .L10:
  27. .quad .L3
  28. .quad .L4
  29. .quad .L5
  30. .quad .L6
  31. .quad .L7
  32. .quad .L8
  33. .quad .L9
  34. .text
  35. .p2align 4,,10
  36. .p2align 3
  37. .L8:
  38. add eax, 7
  39. .p2align 4,,10
  40. .p2align 3
  41. .L11:
  42. add rdi, 1
  43. jmp .L2
  44. .p2align 4,,10
  45. .p2align 3
  46. .L7:
  47. mov edx, eax
  48. shr edx, 31
  49. add eax, edx
  50. sar eax
  51. jmp .L11
  52. .p2align 4,,10
  53. .p2align 3
  54. .L6:
  55. add eax, eax
  56. jmp .L11
  57. .p2align 4,,10
  58. .p2align 3
  59. .L5:
  60. sub eax, 1
  61. jmp .L11
  62. .p2align 4,,10
  63. .p2align 3
  64. .L4:
  65. add eax, 1
  66. jmp .L11
  67. .p2align 4,,10
  68. .p2align 3
  69. .L9:
  70. neg eax
  71. jmp .L11
  72. .size interp_switch, .-interp_switch
  73. .p2align 4,,15
  74. .globl interp_cgoto
  75. .type interp_cgoto, @function
  76. interp_cgoto:
  77. movzx eax, BYTE PTR [rdi]
  78. mov rdx, QWORD PTR dispatch_table.1604[0+rax*8]
  79. mov eax, esi
  80. jmp rdx
  81. .p2align 4,,10
  82. .p2align 3
  83. .L16:
  84. rep
  85. ret
  86. .p2align 4,,10
  87. .p2align 3
  88. .L17:
  89. movzx edx, BYTE PTR [rdi+1]
  90. add eax, 1
  91. mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
  92. .p2align 4,,10
  93. .p2align 3
  94. .L18:
  95. add rdi, 1
  96. jmp rdx
  97. .p2align 4,,10
  98. .p2align 3
  99. .L19:
  100. movzx edx, BYTE PTR [rdi+1]
  101. sub eax, 1
  102. mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
  103. add rdi, 1
  104. jmp rdx
  105. .p2align 4,,10
  106. .p2align 3
  107. .L20:
  108. movzx edx, BYTE PTR [rdi+1]
  109. add eax, eax
  110. mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
  111. add rdi, 1
  112. jmp rdx
  113. .p2align 4,,10
  114. .p2align 3
  115. .L21:
  116. mov edx, eax
  117. shr edx, 31
  118. add eax, edx
  119. movzx edx, BYTE PTR [rdi+1]
  120. sar eax
  121. mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
  122. add rdi, 1
  123. jmp rdx
  124. .p2align 4,,10
  125. .p2align 3
  126. .L22:
  127. movzx edx, BYTE PTR [rdi+1]
  128. add eax, 7
  129. mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
  130. add rdi, 1
  131. jmp rdx
  132. .p2align 4,,10
  133. .p2align 3
  134. .L23:
  135. movzx edx, BYTE PTR [rdi+1]
  136. neg eax
  137. mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
  138. add rdi, 1
  139. jmp rdx
  140. .size interp_cgoto, .-interp_cgoto
  141. .section .rodata
  142. .align 32
  143. .type dispatch_table.1604, @object
  144. .size dispatch_table.1604, 56
  145. dispatch_table.1604:
  146. .quad .L16
  147. .quad .L17
  148. .quad .L19
  149. .quad .L20
  150. .quad .L21
  151. .quad .L22
  152. .quad .L23
  153. .ident "GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1"
  154. .section .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement