t_wasm.pas 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. unit t_wasm;
  2. interface
  3. uses
  4. systems,
  5. export, aasmdata, aasmcpu,
  6. link,
  7. i_wasm, tgcpu;
  8. type
  9. { texportlibwasm }
  10. texportlibwasm=class(texportlib)
  11. procedure preparelib(const s : string);override;
  12. procedure exportprocedure(hp : texported_item);override;
  13. procedure exportvar(hp : texported_item);override;
  14. procedure generatelib;override;
  15. end;
  16. { tlinkerjvm }
  17. tlinkerwasm=class(texternallinker)
  18. constructor Create;override;
  19. //function MakeExecutable:boolean;override;
  20. function MakeSharedLibrary:boolean;override;
  21. end;
  22. implementation
  23. { tlinkerwasm }
  24. constructor tlinkerwasm.Create;
  25. begin
  26. inherited Create;
  27. end;
  28. function tlinkerwasm.MakeSharedLibrary: boolean;
  29. begin
  30. writeln('tlinkerwasm.MakeSharedLibrary');
  31. Result := true;
  32. //Result:=inherited MakeSharedLibrary;
  33. end;
  34. { texportlibwasm }
  35. procedure texportlibwasm.preparelib(const s: string);
  36. begin
  37. writeln('preparelib: ', s);
  38. //nothing to happen. wasm files are modules
  39. //inherited preparelib(s);
  40. end;
  41. procedure texportlibwasm.exportprocedure(hp: texported_item);
  42. begin
  43. current_asmdata.asmlists[al_exports].Concat( tai_impexp.create(hp.name^, hp.sym.RealName, ie_Func));
  44. end;
  45. procedure texportlibwasm.exportvar(hp: texported_item);
  46. begin
  47. writeln('exportvar: ', PtrUInt(hp));
  48. //inherited exportvar(hp);
  49. end;
  50. procedure texportlibwasm.generatelib;
  51. begin
  52. writeln('gen lib');
  53. //inherited generatelib;
  54. end;
  55. initialization
  56. RegisterTarget(system_wasm_info);
  57. RegisterExport(system_wasm_wasm32, texportlibwasm);
  58. RegisterLinker(ld_wasm, tlinkerwasm);
  59. end.