EmptyWasmByteCodeWriter.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft Corporation and contributors. 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. #ifdef ENABLE_WASM
  7. namespace Js
  8. {
  9. struct EmptyWasmByteCodeWriter : public IWasmByteCodeWriter
  10. {
  11. virtual void Create() override {}
  12. virtual void Begin(FunctionBody* functionWrite, ArenaAllocator* alloc) override {}
  13. virtual void End() override {}
  14. virtual void Reset() override {}
  15. virtual ByteCodeLabel DefineLabel() override {return 0;}
  16. virtual void InitData(ArenaAllocator* alloc, int32 initCodeBufferSize) override {}
  17. virtual void MarkAsmJsLabel(ByteCodeLabel labelID) override {}
  18. virtual void EmptyAsm(OpCodeAsmJs op) override {}
  19. virtual void Conv(OpCodeAsmJs op, RegSlot R0, RegSlot R1) override {}
  20. virtual void AsmReg1IntConst1(OpCodeAsmJs op, RegSlot R0, int C1) override {}
  21. virtual void AsmInt1Const1(OpCodeAsmJs op, RegSlot R0, int C1) override {}
  22. virtual void AsmLong1Const1(OpCodeAsmJs op, RegSlot R0, int64 C1) override {}
  23. virtual void AsmFloat1Const1(OpCodeAsmJs op, RegSlot R0, float C1) override {}
  24. virtual void AsmDouble1Const1(OpCodeAsmJs op, RegSlot R0, double C1) override {}
  25. virtual void AsmReg1(OpCodeAsmJs op, RegSlot R0) override {}
  26. virtual void AsmReg2(OpCodeAsmJs op, RegSlot R0, RegSlot R1) override {}
  27. virtual void AsmReg3(OpCodeAsmJs op, RegSlot R0, RegSlot R1, RegSlot R2) override {}
  28. virtual void AsmSlot(OpCodeAsmJs op, RegSlot value, RegSlot instance, int32 slotId) override {}
  29. virtual void AsmBr(ByteCodeLabel labelID, OpCodeAsmJs op = OpCodeAsmJs::AsmBr) override {}
  30. virtual void AsmBrReg1(OpCodeAsmJs op, ByteCodeLabel labelID, RegSlot R1) override {}
  31. virtual void AsmBrReg1Const1(OpCodeAsmJs op, ByteCodeLabel labelID, RegSlot R1, int C1) override {}
  32. virtual void WasmMemAccess(OpCodeAsmJs op, RegSlot value, uint32 slotIndex, uint32 offset, ArrayBufferView::ViewType viewType) override {}
  33. virtual uint32 EnterLoop(ByteCodeLabel loopEntrance) override {return 0;}
  34. virtual void ExitLoop(uint32 loopId) override {}
  35. virtual void AsmStartCall(OpCodeAsmJs op, ArgSlot ArgCount, bool isPatching = false) override {}
  36. virtual void AsmCall(OpCodeAsmJs op, RegSlot returnValueRegister, RegSlot functionRegister, ArgSlot givenArgCount, AsmJsRetType retType) override {}
  37. };
  38. }
  39. #endif