LinearScanMD.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. class OpHelperBlock;
  7. class LinearScan;
  8. class BailOutRecord;
  9. class BranchBailOutRecord;
  10. class LinearScanMD : public LinearScanMDShared
  11. {
  12. public:
  13. LinearScanMD(Func *func) { }
  14. void Init(LinearScan *linearScan) { __debugbreak(); }
  15. BitVector FilterRegIntSizeConstraints(BitVector regsBv, BitVector sizeUsageBv) const { __debugbreak(); return 0; }
  16. bool FitRegIntSizeConstraints(RegNum reg, BitVector sizeUsageBv) const { __debugbreak(); return 0; }
  17. void InsertOpHelperSpillAndRestores(SList<OpHelperBlock> *opHelperBlockList) { __debugbreak(); }
  18. void EndOfHelperBlock(uint32 helperSpilledLiveranges) { __debugbreak(); }
  19. uint UnAllocatableRegCount(Func *func) const
  20. {
  21. __debugbreak(); return 0;
  22. // return func->GetLocalsPointer() != RegSP ? 5 : 4; //r11(Frame Pointer),r12,sp,pc
  23. }
  24. StackSym *EnsureSpillSymForVFPReg(RegNum reg, Func *func) { __debugbreak(); return 0; }
  25. void LegalizeDef(IR::Instr * instr) { __debugbreak(); }
  26. void LegalizeUse(IR::Instr * instr, IR::Opnd * opnd) { __debugbreak(); }
  27. void LegalizeConstantUse(IR::Instr * instr, IR::Opnd * opnd) { __debugbreak(); }
  28. void GenerateBailOut(IR::Instr * instr, StackSym ** registerSaveSyms, uint registerSaveSymsCount) { __debugbreak(); }
  29. IR::Instr *GenerateBailInForGeneratorYield(IR::Instr * resumeLabelInstr, BailOutInfo * bailOutInfo) { __debugbreak(); return nullptr; }
  30. public:
  31. static void SaveAllRegistersAndBailOut(BailOutRecord *const bailOutRecord) { __debugbreak(); }
  32. static void SaveAllRegistersAndBranchBailOut(BranchBailOutRecord *const bailOutRecord, const BOOL condition) { __debugbreak(); }
  33. static RegNum GetParamReg(IR::SymOpnd *symOpnd, Func *func) { /* TODO */ return RegNOREG; }
  34. bool IsAllocatable(RegNum reg, Func *func) const { __debugbreak(); return 0; }
  35. static uint GetRegisterSaveSlotCount() {
  36. return RegisterSaveSlotCount ;
  37. }
  38. static uint GetRegisterSaveIndex(RegNum reg) { __debugbreak(); return 0; }
  39. static RegNum GetRegisterFromSaveIndex(uint offset) { __debugbreak(); return RegNum(0); }
  40. static const uint RegisterSaveSlotCount = RegNumCount + VFP_REGCOUNT;
  41. };