Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
4.9 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. codeseq.h
  5. Abstract:
  6. This header file contains the function prototypes for all fragments
  7. in codeseq.c
  8. Author:
  9. Barry Bond (barrybo) creation-date 23-Sept-1996
  10. Revision History:
  11. --*/
  12. #undef FRAGMENT
  13. #undef PATCH_FRAGMENT
  14. #undef OP_FRAGMENT
  15. #if _ALPHA_
  16. #define FRAGMENT(name) \
  17. ULONG \
  18. Gen##name ( \
  19. IN PULONG CodeLocation, \
  20. IN ULONG CurrentECU, \
  21. IN PINSTRUCTION Instruction \
  22. );
  23. #define PATCH_FRAGMENT(name) \
  24. ULONG \
  25. Gen##name ( \
  26. IN PULONG CodeLocation, \
  27. IN ULONG fCompiling, \
  28. IN ULONG CurrentECU, \
  29. IN ULONG Param1, \
  30. IN ULONG Param2 \
  31. );
  32. #else
  33. #define FRAGMENT(name) \
  34. ULONG \
  35. Gen##name ( \
  36. IN PULONG CodeLocation, \
  37. IN PINSTRUCTION Instruction \
  38. );
  39. #define PATCH_FRAGMENT(name) \
  40. ULONG \
  41. Gen##name ( \
  42. IN PULONG CodeLocation, \
  43. IN ULONG fCompiling, \
  44. IN ULONG Param1, \
  45. IN ULONG Param2 \
  46. );
  47. #endif
  48. #define OP_FRAGMENT(name) \
  49. ULONG \
  50. Gen##name ( \
  51. IN PULONG CodeLocation, \
  52. IN POPERAND Operand, \
  53. IN ULONG OperandNumber \
  54. );
  55. FRAGMENT(AddFragNoFlags32)
  56. FRAGMENT(AddFragNoFlags32A)
  57. FRAGMENT(AndFragNoFlags32)
  58. FRAGMENT(AndFragNoFlags32A)
  59. FRAGMENT(DecFragNoFlags32)
  60. FRAGMENT(DecFragNoFlags32A)
  61. FRAGMENT(IncFragNoFlags32)
  62. FRAGMENT(IncFragNoFlags32A)
  63. FRAGMENT(OrFragNoFlags32)
  64. FRAGMENT(OrFragNoFlags32A)
  65. FRAGMENT(SubFragNoFlags32)
  66. FRAGMENT(SubFragNoFlags32A)
  67. FRAGMENT(XorFragNoFlags32)
  68. FRAGMENT(XorFragNoFlags32A)
  69. FRAGMENT(StartBasicBlock)
  70. FRAGMENT(JumpToNextCompilationUnit)
  71. PATCH_FRAGMENT(JumpToNextCompilationUnit2)
  72. FRAGMENT(CallCFrag)
  73. FRAGMENT(CallCFragNoCpu)
  74. FRAGMENT(CallCFragLoadEip)
  75. FRAGMENT(CallCFragLoadEipNoCpu)
  76. FRAGMENT(CallCFragLoadEipNoCpuSlow)
  77. FRAGMENT(CallCFragLoadEipSlow)
  78. FRAGMENT(CallCFragSlow)
  79. FRAGMENT(CallCFragNoCpuSlow)
  80. FRAGMENT(JaFrag)
  81. FRAGMENT(JaeFrag)
  82. FRAGMENT(JbeFrag)
  83. FRAGMENT(JbFrag)
  84. FRAGMENT(JeFrag)
  85. FRAGMENT(JgFrag)
  86. FRAGMENT(JlFrag)
  87. FRAGMENT(JleFrag)
  88. FRAGMENT(JneFrag)
  89. FRAGMENT(JnlFrag)
  90. FRAGMENT(JnoFrag)
  91. FRAGMENT(JnpFrag)
  92. FRAGMENT(JnsFrag)
  93. FRAGMENT(JoFrag)
  94. FRAGMENT(JpFrag)
  95. FRAGMENT(JsFrag)
  96. FRAGMENT(JecxzFrag)
  97. FRAGMENT(JcxzFrag)
  98. FRAGMENT(LoopFrag32)
  99. FRAGMENT(LoopFrag16)
  100. FRAGMENT(LoopneFrag32)
  101. FRAGMENT(LoopneFrag16)
  102. FRAGMENT(LoopeFrag32)
  103. FRAGMENT(LoopeFrag16)
  104. FRAGMENT(JxxBody)
  105. PATCH_FRAGMENT(JxxBody2)
  106. FRAGMENT(JxxStartSlow)
  107. FRAGMENT(JxxBodySlow)
  108. PATCH_FRAGMENT(JxxBodySlow2)
  109. FRAGMENT(JxxBodyFwd)
  110. PATCH_FRAGMENT(JxxBodyFwd2)
  111. FRAGMENT(CallJmpDirect)
  112. PATCH_FRAGMENT(CallJmpDirect2)
  113. FRAGMENT(CallJmpDirectSlow)
  114. PATCH_FRAGMENT(CallJmpDirectSlow2)
  115. FRAGMENT(CallJmpFwdDirect)
  116. PATCH_FRAGMENT(CallJmpFwdDirect2)
  117. FRAGMENT(CallJmpfDirect)
  118. PATCH_FRAGMENT(CallJmpfDirect2)
  119. FRAGMENT(CallJmpIndirect)
  120. FRAGMENT(CallJmpfIndirect)
  121. FRAGMENT(CallRetIndirect)
  122. FRAGMENT(CallDirect)
  123. PATCH_FRAGMENT(CallDirect2)
  124. PATCH_FRAGMENT(CallDirect3)
  125. FRAGMENT(CallfDirect)
  126. PATCH_FRAGMENT(CallfDirect2)
  127. PATCH_FRAGMENT(CallfDirect3)
  128. FRAGMENT(CallIndirect)
  129. FRAGMENT(CallfIndirect)
  130. PATCH_FRAGMENT(CallIndirect2)
  131. PATCH_FRAGMENT(CallfIndirect2)
  132. FRAGMENT(Movsx8To32)
  133. FRAGMENT(Movsx8To32Slow)
  134. FRAGMENT(Movsx16To32)
  135. FRAGMENT(Movsx16To32Slow)
  136. FRAGMENT(Movsx8To16)
  137. FRAGMENT(Movsx8To16Slow)
  138. FRAGMENT(Movzx8To32)
  139. FRAGMENT(Movzx8To32Slow)
  140. FRAGMENT(Movzx16To32)
  141. FRAGMENT(Movzx16To32Slow)
  142. FRAGMENT(Movzx8To16)
  143. FRAGMENT(Movzx8To16Slow)
  144. FRAGMENT(EndCompilationUnit)
  145. FRAGMENT(EndMovSlow)
  146. #if _ALPHA_
  147. OP_FRAGMENT(OperandMovRegToReg8B)
  148. OP_FRAGMENT(OperandMovToMem8D)
  149. OP_FRAGMENT(OperandMovToMem16D)
  150. #endif
  151. OP_FRAGMENT(OperandMovToMem32B)
  152. OP_FRAGMENT(OperandMovToMem32D)
  153. OP_FRAGMENT(OperandMovToMem16B)
  154. OP_FRAGMENT(OperandMovToMem16W)
  155. OP_FRAGMENT(OperandMovToMem8B)
  156. OP_FRAGMENT(OperandMovToReg)
  157. OP_FRAGMENT(OperandMovRegToReg32)
  158. OP_FRAGMENT(OperandMovRegToReg16)
  159. OP_FRAGMENT(OperandMovRegToReg8)
  160. OP_FRAGMENT(OperandImm)
  161. OP_FRAGMENT(OperandRegRef)
  162. OP_FRAGMENT(OperandRegVal)
  163. OP_FRAGMENT(LoadCacheReg)
  164. ULONG GenOperandAddr(
  165. PULONG CodeLocation,
  166. POPERAND Operand,
  167. ULONG OperandNumber,
  168. ULONG FsOverride
  169. );
  170. #undef FRAGMENT
  171. #undef PATCH_FRAGMENT
  172. #undef OP_FRAGMENT