trampoline-x86.S 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. // This file is generated from a similarly-named Perl script in the BoringSSL
  2. // source tree. Do not edit by hand.
  3. #if defined(__i386__)
  4. #if defined(BORINGSSL_PREFIX)
  5. #include <boringssl_prefix_symbols_asm.h>
  6. #endif
  7. .text
  8. .globl _abi_test_trampoline
  9. .private_extern _abi_test_trampoline
  10. .align 4
  11. _abi_test_trampoline:
  12. L_abi_test_trampoline_begin:
  13. pushl %ebp
  14. pushl %ebx
  15. pushl %esi
  16. pushl %edi
  17. movl 24(%esp),%ecx
  18. movl (%ecx),%esi
  19. movl 4(%ecx),%edi
  20. movl 8(%ecx),%ebx
  21. movl 12(%ecx),%ebp
  22. subl $44,%esp
  23. movl 72(%esp),%eax
  24. xorl %ecx,%ecx
  25. L000loop:
  26. cmpl 76(%esp),%ecx
  27. jae L001loop_done
  28. movl (%eax,%ecx,4),%edx
  29. movl %edx,(%esp,%ecx,4)
  30. addl $1,%ecx
  31. jmp L000loop
  32. L001loop_done:
  33. call *64(%esp)
  34. addl $44,%esp
  35. movl 24(%esp),%ecx
  36. movl %esi,(%ecx)
  37. movl %edi,4(%ecx)
  38. movl %ebx,8(%ecx)
  39. movl %ebp,12(%ecx)
  40. popl %edi
  41. popl %esi
  42. popl %ebx
  43. popl %ebp
  44. ret
  45. .globl _abi_test_get_and_clear_direction_flag
  46. .private_extern _abi_test_get_and_clear_direction_flag
  47. .align 4
  48. _abi_test_get_and_clear_direction_flag:
  49. L_abi_test_get_and_clear_direction_flag_begin:
  50. pushfl
  51. popl %eax
  52. andl $1024,%eax
  53. shrl $10,%eax
  54. cld
  55. ret
  56. .globl _abi_test_set_direction_flag
  57. .private_extern _abi_test_set_direction_flag
  58. .align 4
  59. _abi_test_set_direction_flag:
  60. L_abi_test_set_direction_flag_begin:
  61. std
  62. ret
  63. .globl _abi_test_clobber_eax
  64. .private_extern _abi_test_clobber_eax
  65. .align 4
  66. _abi_test_clobber_eax:
  67. L_abi_test_clobber_eax_begin:
  68. xorl %eax,%eax
  69. ret
  70. .globl _abi_test_clobber_ebx
  71. .private_extern _abi_test_clobber_ebx
  72. .align 4
  73. _abi_test_clobber_ebx:
  74. L_abi_test_clobber_ebx_begin:
  75. xorl %ebx,%ebx
  76. ret
  77. .globl _abi_test_clobber_ecx
  78. .private_extern _abi_test_clobber_ecx
  79. .align 4
  80. _abi_test_clobber_ecx:
  81. L_abi_test_clobber_ecx_begin:
  82. xorl %ecx,%ecx
  83. ret
  84. .globl _abi_test_clobber_edx
  85. .private_extern _abi_test_clobber_edx
  86. .align 4
  87. _abi_test_clobber_edx:
  88. L_abi_test_clobber_edx_begin:
  89. xorl %edx,%edx
  90. ret
  91. .globl _abi_test_clobber_edi
  92. .private_extern _abi_test_clobber_edi
  93. .align 4
  94. _abi_test_clobber_edi:
  95. L_abi_test_clobber_edi_begin:
  96. xorl %edi,%edi
  97. ret
  98. .globl _abi_test_clobber_esi
  99. .private_extern _abi_test_clobber_esi
  100. .align 4
  101. _abi_test_clobber_esi:
  102. L_abi_test_clobber_esi_begin:
  103. xorl %esi,%esi
  104. ret
  105. .globl _abi_test_clobber_ebp
  106. .private_extern _abi_test_clobber_ebp
  107. .align 4
  108. _abi_test_clobber_ebp:
  109. L_abi_test_clobber_ebp_begin:
  110. xorl %ebp,%ebp
  111. ret
  112. .globl _abi_test_clobber_xmm0
  113. .private_extern _abi_test_clobber_xmm0
  114. .align 4
  115. _abi_test_clobber_xmm0:
  116. L_abi_test_clobber_xmm0_begin:
  117. pxor %xmm0,%xmm0
  118. ret
  119. .globl _abi_test_clobber_xmm1
  120. .private_extern _abi_test_clobber_xmm1
  121. .align 4
  122. _abi_test_clobber_xmm1:
  123. L_abi_test_clobber_xmm1_begin:
  124. pxor %xmm1,%xmm1
  125. ret
  126. .globl _abi_test_clobber_xmm2
  127. .private_extern _abi_test_clobber_xmm2
  128. .align 4
  129. _abi_test_clobber_xmm2:
  130. L_abi_test_clobber_xmm2_begin:
  131. pxor %xmm2,%xmm2
  132. ret
  133. .globl _abi_test_clobber_xmm3
  134. .private_extern _abi_test_clobber_xmm3
  135. .align 4
  136. _abi_test_clobber_xmm3:
  137. L_abi_test_clobber_xmm3_begin:
  138. pxor %xmm3,%xmm3
  139. ret
  140. .globl _abi_test_clobber_xmm4
  141. .private_extern _abi_test_clobber_xmm4
  142. .align 4
  143. _abi_test_clobber_xmm4:
  144. L_abi_test_clobber_xmm4_begin:
  145. pxor %xmm4,%xmm4
  146. ret
  147. .globl _abi_test_clobber_xmm5
  148. .private_extern _abi_test_clobber_xmm5
  149. .align 4
  150. _abi_test_clobber_xmm5:
  151. L_abi_test_clobber_xmm5_begin:
  152. pxor %xmm5,%xmm5
  153. ret
  154. .globl _abi_test_clobber_xmm6
  155. .private_extern _abi_test_clobber_xmm6
  156. .align 4
  157. _abi_test_clobber_xmm6:
  158. L_abi_test_clobber_xmm6_begin:
  159. pxor %xmm6,%xmm6
  160. ret
  161. .globl _abi_test_clobber_xmm7
  162. .private_extern _abi_test_clobber_xmm7
  163. .align 4
  164. _abi_test_clobber_xmm7:
  165. L_abi_test_clobber_xmm7_begin:
  166. pxor %xmm7,%xmm7
  167. ret
  168. #endif