trampoline-x86.asm 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. ; This file is generated from a similarly-named Perl script in the BoringSSL
  2. ; source tree. Do not edit by hand.
  3. %ifdef BORINGSSL_PREFIX
  4. %include "boringssl_prefix_symbols_nasm.inc"
  5. %endif
  6. %ifidn __OUTPUT_FORMAT__,obj
  7. section code use32 class=code align=64
  8. %elifidn __OUTPUT_FORMAT__,win32
  9. $@feat.00 equ 1
  10. section .text code align=64
  11. %else
  12. section .text code
  13. %endif
  14. global _abi_test_trampoline
  15. align 16
  16. _abi_test_trampoline:
  17. L$_abi_test_trampoline_begin:
  18. push ebp
  19. push ebx
  20. push esi
  21. push edi
  22. mov ecx,DWORD [24+esp]
  23. mov esi,DWORD [ecx]
  24. mov edi,DWORD [4+ecx]
  25. mov ebx,DWORD [8+ecx]
  26. mov ebp,DWORD [12+ecx]
  27. sub esp,44
  28. mov eax,DWORD [72+esp]
  29. xor ecx,ecx
  30. L$000loop:
  31. cmp ecx,DWORD [76+esp]
  32. jae NEAR L$001loop_done
  33. mov edx,DWORD [ecx*4+eax]
  34. mov DWORD [ecx*4+esp],edx
  35. add ecx,1
  36. jmp NEAR L$000loop
  37. L$001loop_done:
  38. call DWORD [64+esp]
  39. add esp,44
  40. mov ecx,DWORD [24+esp]
  41. mov DWORD [ecx],esi
  42. mov DWORD [4+ecx],edi
  43. mov DWORD [8+ecx],ebx
  44. mov DWORD [12+ecx],ebp
  45. pop edi
  46. pop esi
  47. pop ebx
  48. pop ebp
  49. ret
  50. global _abi_test_get_and_clear_direction_flag
  51. align 16
  52. _abi_test_get_and_clear_direction_flag:
  53. L$_abi_test_get_and_clear_direction_flag_begin:
  54. pushfd
  55. pop eax
  56. and eax,1024
  57. shr eax,10
  58. cld
  59. ret
  60. global _abi_test_set_direction_flag
  61. align 16
  62. _abi_test_set_direction_flag:
  63. L$_abi_test_set_direction_flag_begin:
  64. std
  65. ret
  66. global _abi_test_clobber_eax
  67. align 16
  68. _abi_test_clobber_eax:
  69. L$_abi_test_clobber_eax_begin:
  70. xor eax,eax
  71. ret
  72. global _abi_test_clobber_ebx
  73. align 16
  74. _abi_test_clobber_ebx:
  75. L$_abi_test_clobber_ebx_begin:
  76. xor ebx,ebx
  77. ret
  78. global _abi_test_clobber_ecx
  79. align 16
  80. _abi_test_clobber_ecx:
  81. L$_abi_test_clobber_ecx_begin:
  82. xor ecx,ecx
  83. ret
  84. global _abi_test_clobber_edx
  85. align 16
  86. _abi_test_clobber_edx:
  87. L$_abi_test_clobber_edx_begin:
  88. xor edx,edx
  89. ret
  90. global _abi_test_clobber_edi
  91. align 16
  92. _abi_test_clobber_edi:
  93. L$_abi_test_clobber_edi_begin:
  94. xor edi,edi
  95. ret
  96. global _abi_test_clobber_esi
  97. align 16
  98. _abi_test_clobber_esi:
  99. L$_abi_test_clobber_esi_begin:
  100. xor esi,esi
  101. ret
  102. global _abi_test_clobber_ebp
  103. align 16
  104. _abi_test_clobber_ebp:
  105. L$_abi_test_clobber_ebp_begin:
  106. xor ebp,ebp
  107. ret
  108. global _abi_test_clobber_xmm0
  109. align 16
  110. _abi_test_clobber_xmm0:
  111. L$_abi_test_clobber_xmm0_begin:
  112. pxor xmm0,xmm0
  113. ret
  114. global _abi_test_clobber_xmm1
  115. align 16
  116. _abi_test_clobber_xmm1:
  117. L$_abi_test_clobber_xmm1_begin:
  118. pxor xmm1,xmm1
  119. ret
  120. global _abi_test_clobber_xmm2
  121. align 16
  122. _abi_test_clobber_xmm2:
  123. L$_abi_test_clobber_xmm2_begin:
  124. pxor xmm2,xmm2
  125. ret
  126. global _abi_test_clobber_xmm3
  127. align 16
  128. _abi_test_clobber_xmm3:
  129. L$_abi_test_clobber_xmm3_begin:
  130. pxor xmm3,xmm3
  131. ret
  132. global _abi_test_clobber_xmm4
  133. align 16
  134. _abi_test_clobber_xmm4:
  135. L$_abi_test_clobber_xmm4_begin:
  136. pxor xmm4,xmm4
  137. ret
  138. global _abi_test_clobber_xmm5
  139. align 16
  140. _abi_test_clobber_xmm5:
  141. L$_abi_test_clobber_xmm5_begin:
  142. pxor xmm5,xmm5
  143. ret
  144. global _abi_test_clobber_xmm6
  145. align 16
  146. _abi_test_clobber_xmm6:
  147. L$_abi_test_clobber_xmm6_begin:
  148. pxor xmm6,xmm6
  149. ret
  150. global _abi_test_clobber_xmm7
  151. align 16
  152. _abi_test_clobber_xmm7:
  153. L$_abi_test_clobber_xmm7_begin:
  154. pxor xmm7,xmm7
  155. ret