AsmJsBuiltInNames.h 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. // Default all macros to nothing
  6. #ifndef ASMJS_MATH_FUNC_NAMES
  7. #define ASMJS_MATH_FUNC_NAMES(name, propertyName)
  8. #endif
  9. #ifndef ASMJS_MATH_CONST_NAMES
  10. #define ASMJS_MATH_CONST_NAMES(name, propertyName)
  11. #endif
  12. #ifndef ASMJS_ARRAY_NAMES
  13. #define ASMJS_ARRAY_NAMES(name, propertyName)
  14. #endif
  15. #ifndef ASMJS_SIMD_NAMES
  16. #define ASMJS_SIMD_NAMES(name, propertyName)
  17. #endif
  18. ASMJS_MATH_FUNC_NAMES(sin, sin)
  19. ASMJS_MATH_FUNC_NAMES(cos, cos)
  20. ASMJS_MATH_FUNC_NAMES(tan, tan)
  21. ASMJS_MATH_FUNC_NAMES(asin, asin)
  22. ASMJS_MATH_FUNC_NAMES(acos, acos)
  23. ASMJS_MATH_FUNC_NAMES(atan, atan)
  24. ASMJS_MATH_FUNC_NAMES(ceil, ceil)
  25. ASMJS_MATH_FUNC_NAMES(floor, floor)
  26. ASMJS_MATH_FUNC_NAMES(exp, exp)
  27. ASMJS_MATH_FUNC_NAMES(log, log)
  28. ASMJS_MATH_FUNC_NAMES(pow, pow)
  29. ASMJS_MATH_FUNC_NAMES(sqrt, sqrt)
  30. ASMJS_MATH_FUNC_NAMES(abs, abs)
  31. ASMJS_MATH_FUNC_NAMES(atan2, atan2)
  32. ASMJS_MATH_FUNC_NAMES(imul, imul)
  33. ASMJS_MATH_FUNC_NAMES(fround, fround)
  34. ASMJS_MATH_FUNC_NAMES(min, min)
  35. ASMJS_MATH_FUNC_NAMES(max, max)
  36. ASMJS_MATH_FUNC_NAMES(clz32, clz32)
  37. ASMJS_MATH_CONST_NAMES(e, E)
  38. ASMJS_MATH_CONST_NAMES(ln10, LN10)
  39. ASMJS_MATH_CONST_NAMES(ln2, LN2)
  40. ASMJS_MATH_CONST_NAMES(log2e, LOG2E)
  41. ASMJS_MATH_CONST_NAMES(log10e, LOG10E)
  42. ASMJS_MATH_CONST_NAMES(pi, PI)
  43. ASMJS_MATH_CONST_NAMES(sqrt1_2, SQRT1_2)
  44. ASMJS_MATH_CONST_NAMES(sqrt2, SQRT2)
  45. ASMJS_MATH_CONST_NAMES(infinity, Infinity)
  46. ASMJS_MATH_CONST_NAMES(nan, NaN)
  47. ASMJS_ARRAY_NAMES(Uint8Array, Uint8Array)
  48. ASMJS_ARRAY_NAMES(Int8Array, Int8Array)
  49. ASMJS_ARRAY_NAMES(Uint16Array, Uint16Array)
  50. ASMJS_ARRAY_NAMES(Int16Array, Int16Array)
  51. ASMJS_ARRAY_NAMES(Uint32Array, Uint32Array)
  52. ASMJS_ARRAY_NAMES(Int32Array, Int32Array)
  53. ASMJS_ARRAY_NAMES(Float32Array, Float32Array)
  54. ASMJS_ARRAY_NAMES(Float64Array, Float64Array)
  55. ASMJS_ARRAY_NAMES(byteLength, byteLength)
  56. ASMJS_SIMD_NAMES(Int32x4, Int32x4)
  57. ASMJS_SIMD_NAMES(int32x4_check, check)
  58. ASMJS_SIMD_NAMES(int32x4_splat, splat)
  59. ASMJS_SIMD_NAMES(int32x4_fromFloat64x2, fromFloat64x2)
  60. ASMJS_SIMD_NAMES(int32x4_fromFloat64x2Bits, fromFloat64x2Bits)
  61. ASMJS_SIMD_NAMES(int32x4_fromFloat32x4, fromFloat32x4)
  62. ASMJS_SIMD_NAMES(int32x4_fromFloat32x4Bits, fromFloat32x4Bits)
  63. ASMJS_SIMD_NAMES(int32x4_neg, neg)
  64. ASMJS_SIMD_NAMES(int32x4_add, add)
  65. ASMJS_SIMD_NAMES(int32x4_sub, sub)
  66. ASMJS_SIMD_NAMES(int32x4_mul, mul)
  67. ASMJS_SIMD_NAMES(int32x4_extractLane, extractLane)
  68. ASMJS_SIMD_NAMES(int32x4_replaceLane, replaceLane)
  69. ASMJS_SIMD_NAMES(int32x4_swizzle, swizzle)
  70. ASMJS_SIMD_NAMES(int32x4_shuffle, shuffle)
  71. ASMJS_SIMD_NAMES(int32x4_lessThan, lessThan)
  72. ASMJS_SIMD_NAMES(int32x4_equal, equal)
  73. ASMJS_SIMD_NAMES(int32x4_greaterThan, greaterThan)
  74. ASMJS_SIMD_NAMES(int32x4_select, select)
  75. ASMJS_SIMD_NAMES(int32x4_and, and_)
  76. ASMJS_SIMD_NAMES(int32x4_or, or_)
  77. ASMJS_SIMD_NAMES(int32x4_xor, xor_)
  78. ASMJS_SIMD_NAMES(int32x4_not, not_)
  79. // ToDo: Enable after fix in lib
  80. //ASMJS_SIMD_NAMES(int32x4_shiftLeftByScalar, shiftLeftByScalar)
  81. //ASMJS_SIMD_NAMES(int32x4_shiftRightLogicalByScalar, shiftRightLogicalByScalar)
  82. //ASMJS_SIMD_NAMES(int32x4_shiftRightArithmeticByScalar, shiftRightArithmeticByScalar)
  83. ASMJS_SIMD_NAMES(int32x4_load, load)
  84. ASMJS_SIMD_NAMES(int32x4_load1, load1)
  85. ASMJS_SIMD_NAMES(int32x4_load2, load2)
  86. ASMJS_SIMD_NAMES(int32x4_load3, load3)
  87. ASMJS_SIMD_NAMES(int32x4_store, store)
  88. ASMJS_SIMD_NAMES(int32x4_store1, store1)
  89. ASMJS_SIMD_NAMES(int32x4_store2, store2)
  90. ASMJS_SIMD_NAMES(int32x4_store3, store3)
  91. ASMJS_SIMD_NAMES(Float32x4, Float32x4)
  92. ASMJS_SIMD_NAMES(float32x4_check, check)
  93. ASMJS_SIMD_NAMES(float32x4_splat, splat)
  94. ASMJS_SIMD_NAMES(float32x4_fromFloat64x2, fromFloat64x2)
  95. ASMJS_SIMD_NAMES(float32x4_fromFloat64x2Bits, fromFloat64x2Bits)
  96. ASMJS_SIMD_NAMES(float32x4_fromInt32x4, fromInt32x4)
  97. ASMJS_SIMD_NAMES(float32x4_fromInt32x4Bits, fromInt32x4Bits)
  98. ASMJS_SIMD_NAMES(float32x4_abs, abs)
  99. ASMJS_SIMD_NAMES(float32x4_neg, neg)
  100. ASMJS_SIMD_NAMES(float32x4_add, add)
  101. ASMJS_SIMD_NAMES(float32x4_sub, sub)
  102. ASMJS_SIMD_NAMES(float32x4_mul, mul)
  103. ASMJS_SIMD_NAMES(float32x4_div, div)
  104. ASMJS_SIMD_NAMES(float32x4_clamp, clamp)
  105. ASMJS_SIMD_NAMES(float32x4_min, min)
  106. ASMJS_SIMD_NAMES(float32x4_max, max)
  107. ASMJS_SIMD_NAMES(float32x4_reciprocal, reciprocalApproximation)
  108. ASMJS_SIMD_NAMES(float32x4_reciprocalSqrt, reciprocalSqrtApproximation)
  109. ASMJS_SIMD_NAMES(float32x4_sqrt, sqrt)
  110. ASMJS_SIMD_NAMES(float32x4_swizzle, swizzle)
  111. ASMJS_SIMD_NAMES(float32x4_shuffle, shuffle)
  112. ASMJS_SIMD_NAMES(float32x4_extractLane, extractLane)
  113. ASMJS_SIMD_NAMES(float32x4_replaceLane, replaceLane)
  114. ASMJS_SIMD_NAMES(float32x4_lessThan, lessThan)
  115. ASMJS_SIMD_NAMES(float32x4_lessThanOrEqual, lessThanOrEqual)
  116. ASMJS_SIMD_NAMES(float32x4_equal, equal)
  117. ASMJS_SIMD_NAMES(float32x4_notEqual, notEqual)
  118. ASMJS_SIMD_NAMES(float32x4_greaterThan, greaterThan)
  119. ASMJS_SIMD_NAMES(float32x4_greaterThanOrEqual, greaterThanOrEqual)
  120. ASMJS_SIMD_NAMES(float32x4_select, select)
  121. ASMJS_SIMD_NAMES(float32x4_and, and_)
  122. ASMJS_SIMD_NAMES(float32x4_or, or_)
  123. ASMJS_SIMD_NAMES(float32x4_xor, xor_)
  124. ASMJS_SIMD_NAMES(float32x4_not, not_)
  125. ASMJS_SIMD_NAMES(float32x4_load, load)
  126. ASMJS_SIMD_NAMES(float32x4_load1, load1)
  127. ASMJS_SIMD_NAMES(float32x4_load2, load2)
  128. ASMJS_SIMD_NAMES(float32x4_load3, load3)
  129. ASMJS_SIMD_NAMES(float32x4_store, store)
  130. ASMJS_SIMD_NAMES(float32x4_store1, store1)
  131. ASMJS_SIMD_NAMES(float32x4_store2, store2)
  132. ASMJS_SIMD_NAMES(float32x4_store3, store3)
  133. ASMJS_SIMD_NAMES(Float64x2, Float64x2)
  134. ASMJS_SIMD_NAMES(float64x2_check, check)
  135. ASMJS_SIMD_NAMES(float64x2_splat, splat)
  136. ASMJS_SIMD_NAMES(float64x2_fromFloat32x4, fromFloat32x4)
  137. ASMJS_SIMD_NAMES(float64x2_fromFloat32x4Bits, fromFloat32x4Bits)
  138. ASMJS_SIMD_NAMES(float64x2_fromInt32x4, fromInt32x4)
  139. ASMJS_SIMD_NAMES(float64x2_fromInt32x4Bits, fromInt32x4Bits)
  140. ASMJS_SIMD_NAMES(float64x2_abs, abs)
  141. ASMJS_SIMD_NAMES(float64x2_neg, neg)
  142. ASMJS_SIMD_NAMES(float64x2_add, add)
  143. ASMJS_SIMD_NAMES(float64x2_sub, sub)
  144. ASMJS_SIMD_NAMES(float64x2_mul, mul)
  145. ASMJS_SIMD_NAMES(float64x2_div, div)
  146. ASMJS_SIMD_NAMES(float64x2_clamp, clamp)
  147. ASMJS_SIMD_NAMES(float64x2_min, min)
  148. ASMJS_SIMD_NAMES(float64x2_max, max)
  149. ASMJS_SIMD_NAMES(float64x2_reciprocal, reciprocalApproximation)
  150. ASMJS_SIMD_NAMES(float64x2_reciprocalSqrt, reciprocalSqrtApproximation)
  151. ASMJS_SIMD_NAMES(float64x2_sqrt, sqrt)
  152. ASMJS_SIMD_NAMES(float64x2_swizzle, swizzle)
  153. ASMJS_SIMD_NAMES(float64x2_shuffle, shuffle)
  154. ASMJS_SIMD_NAMES(float64x2_lessThan, lessThan)
  155. ASMJS_SIMD_NAMES(float64x2_lessThanOrEqual, lessThanOrEqual)
  156. ASMJS_SIMD_NAMES(float64x2_equal, equal)
  157. ASMJS_SIMD_NAMES(float64x2_notEqual, notEqual)
  158. ASMJS_SIMD_NAMES(float64x2_greaterThan, greaterThan)
  159. ASMJS_SIMD_NAMES(float64x2_greaterThanOrEqual, greaterThanOrEqual)
  160. ASMJS_SIMD_NAMES(float64x2_select, select)
  161. ASMJS_SIMD_NAMES(float64x2_load, load)
  162. ASMJS_SIMD_NAMES(float64x2_load1, load1)
  163. ASMJS_SIMD_NAMES(float64x2_store, store)
  164. ASMJS_SIMD_NAMES(float64x2_store1, store1)
  165. // help the caller to undefine all the macros
  166. #undef ASMJS_MATH_FUNC_NAMES
  167. #undef ASMJS_MATH_CONST_NAMES
  168. #undef ASMJS_ARRAY_NAMES
  169. #undef ASMJS_SIMD_NAMES