SimpleJitProfilingHelpers.h 1.8 KB

123456789101112131415161718192021222324252627282930313233
  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. #pragma once
  6. namespace Js
  7. {
  8. namespace SimpleJitHelpers
  9. {
  10. void ProfileParameters(void* framePtr);
  11. void CleanImplicitCallFlags(FunctionBody* body);
  12. void ProfileCall_DefaultInlineCacheIndex(void* framePtr, ProfileId profileId, Var retval, JavascriptFunction* callee, CallInfo info);
  13. void ProfileCall(void* framePtr, ProfileId profileId, InlineCacheIndex inlineCacheIndex, Var retval, Var callee, CallInfo info);
  14. void ProfileReturnTypeCall(void* framePtr, ProfileId profileId, Var retval, JavascriptFunction*callee, CallInfo info);
  15. Var ProfiledLdLen_A(FunctionBody* body, DynamicObject * instance, ProfileId profileId);
  16. Var ProfiledStrictLdThis(Var thisVar, FunctionBody* functionBody);
  17. Var ProfiledLdThis(Var thisVar, int moduleID, FunctionBody* functionBody);
  18. Var ProfiledSwitch(FunctionBody* functionBody,ProfileId profileId, Var exp);
  19. Var ProfiledDivide(FunctionBody* functionBody, ProfileId profileId, Var aLeft, Var aRight);
  20. Var ProfiledRemainder(FunctionBody* functionBody, ProfileId profileId, Var aLeft, Var aRight);
  21. void StoreArrayHelper(Var arr, uint32 index, Var value);
  22. void StoreArraySegHelper(Var arr, uint32 index, Var value);
  23. LoopEntryPointInfo* GetScheduledEntryPoint(void* framePtr, uint loopnum);
  24. bool IsLoopCodeGenDone(LoopEntryPointInfo* info);
  25. void RecordLoopImplicitCallFlags(void* framePtr, uint loopNum, int restoreCallFlags);
  26. }
  27. }