Commit Graph

69185 Commits

Author SHA1 Message Date
Nikolay Nikolov
946fc370e9 * set TWasmObjSection.MainFuncSymbol in the wasm object reader 2023-12-31 23:32:51 +02:00
Nikolay Nikolov
ac0c187b56 + WebAssembly exe writer: write the code section 2023-12-31 23:29:33 +02:00
Nikolay Nikolov
d9a67bb16d + generate the import section in the wasm exe writer 2023-12-31 22:52:03 +02:00
Nikolay Nikolov
2c72b62a0e + generate and write the Type section in the WebAssembly internal exe writer 2023-12-31 22:47:07 +02:00
Nikolay Nikolov
3c4a1087f3 * writing of the type wasm object section extracted to a method TWasmFuncTypeTable.WriteTo, so it can be reused in the exe writer 2023-12-31 22:43:44 +02:00
Nikolay Nikolov
a387accf81 * WriteWasmBasicType and WriteWasmResultType converted to global functions to allow reuse in the exe writer 2023-12-31 22:39:35 +02:00
Nikolay Nikolov
5583781f47 + initialize TWasmExeOutput.FWasmSections 2023-12-31 22:36:45 +02:00
Nikolay Nikolov
7d6158d5f4 + added and implemented TWasmExeOutput.WriteWasmSection 2023-12-31 22:35:44 +02:00
Nikolay Nikolov
c342a5f473 * converted some helper methods from TWasmObjOutput to global functions, so they can be reused in the exe writer 2023-12-31 22:28:53 +02:00
Nikolay Nikolov
b2f31c4112 + added a section array to the wasm exe writer 2023-12-31 22:27:05 +02:00
Nikolay Nikolov
16c4e0300c + WebAssembly internal linker, exe writer: keep track of exe import functions. Add and fill TWasmObjSymbolLinkingData.ExeFunctionIndex 2023-12-31 22:17:51 +02:00
Nikolay Nikolov
da8ccd64ef + also write the functype of imported functions in the linker map file 2023-12-31 21:50:18 +02:00
Nikolay Nikolov
52f0ec579e + added TWasmFuncType.ToString implementation 2023-12-31 21:49:35 +02:00
Nikolay Nikolov
4f4beb6225 + store the functype in TWasmObjSymbolLinkingData 2023-12-31 21:40:34 +02:00
Nikolay Nikolov
880eb3658a + process the module imports and write them to the map file in TWasmExeOutput.AfterUnusedSectionRemoval 2023-12-31 21:27:21 +02:00
Nikolay Nikolov
541bd66a6c + implemented TWasmExeOutput.GenerateLibraryImports 2023-12-31 21:04:04 +02:00
Nikolay Nikolov
b88b8efbce + WebAssembly object reader: create symbols for imports that have the
WASM_SYM_EXPLICIT_NAME flag set. Save the import module and name info inside
  a new field TWasmObjSymbol.LinkingData.
2023-12-31 20:39:01 +02:00
Nikolay Nikolov
f83223c8b2 * SymbolTable.ObjSym type changed from TObjSymbol to TWasmObjSymbol 2023-12-31 20:28:44 +02:00
Nikolay Nikolov
f30a41359d + added a TWasmFuncTypeTable instance to TWasmExeOutput 2023-12-31 16:50:00 +02:00
Nikolay Nikolov
e695edff98 + initialize TWasmObjData.FFuncTypes in TWasmObjData's constructor 2023-12-31 15:54:52 +02:00
Nikolay Nikolov
0be3fe9ab4 - removed TWasmObjData.AddFuncType, instead call directly [F]FuncTypes.AddOrGetFuncType 2023-12-31 15:52:27 +02:00
Nikolay Nikolov
eb046b07d0 * TWasmFuncTypeTable.AddFuncType renamed .AddOrGetFuncType 2023-12-31 15:49:26 +02:00
Nikolay Nikolov
7266981c6c + Extracted the func list maintenance functionality from the WebAssembly object
writer to a new TWasmFuncTypeTable class. This will allow for it to be reused
  in the WebAssembly exe writer as well.
2023-12-31 15:39:54 +02:00
Rika Ichinose
8310b169b7 Move ERMS branch into a separate function instead of runtime checks of fast_large_repmovstosb. 2023-12-31 09:54:09 +00:00
Rika Ichinose
f14aced9c5 Attempt to ERMS backward i386 ‘Move’s. 2023-12-31 09:54:09 +00:00
mattias
92e960c49a pas2js: marked allowed writeln 2023-12-30 18:16:31 +01:00
mattias
108ecaff22 fcl-passrc: fixed typo 2023-12-30 18:01:17 +01:00
Michaël Van Canneyt
087b6cadda * Not needed 2023-12-30 17:08:14 +01:00
Michaël Van Canneyt
6ce2662128 * No static versions for 5.6 and 5.7 2023-12-30 17:05:40 +01:00
Jonas Maebe
569b35dfc4 LLVM: enforce line information for invoke instructions
Like with call instructions, when generating debug information LLVM requires
line information for invoke instructions that may be inline
2023-12-30 14:56:38 +01:00
Sven/Sarah Barth
ad61db2ff5 * allow a nested function that calls itself can be converted to a function reference
+ added test
2023-12-30 14:47:38 +01:00
Sven/Sarah Barth
1853d1ddd8 * keep track which nested function definition the new method has been converted from 2023-12-30 14:45:41 +01:00
Sven/Sarah Barth
74833bda09 * split the two error cases of tanonfunc25 into two different tests 2023-12-30 13:58:09 +01:00
Sven/Sarah Barth
b00454bb0e * ensure that nested functions that are assigned to function pointers are considered as captured as well 2023-12-30 13:55:15 +01:00
Sven/Sarah Barth
1606d4e28d * only walk the node tree if there are indeed captured symbols to convert 2023-12-29 21:52:28 +01:00
Sven/Sarah Barth
ab5c5a7e9a * also keep track of captured def (necessary when functions are captured) 2023-12-29 20:26:45 +01:00
Sven/Sarah Barth
b5b7cd54eb * fix typo in comment 2023-12-29 20:24:53 +01:00
Sven/Sarah Barth
787454d5b2 * correctly handle managed function results when converting a global or nested function to a function reference
+ added test
2023-12-29 20:55:37 +01:00
Sven/Sarah Barth
ca0323d4ca * the adjusted nested function needs to access the parent function for the capturer 2023-12-29 20:55:37 +01:00
J. Gareth "Curious Kit" Moreton
af40ae2c91 * x86: Safety check, since after calling DoJumpOptimizations, the input may no longer be the same tai 2023-12-29 14:17:08 +00:00
J. Gareth "Curious Kit" Moreton
3a2342fec4 * GetFinalDestination now calls SkipLabels on an alignment field 2023-12-29 14:17:08 +00:00
J. Gareth "Curious Kit" Moreton
2c89ddf62b * SkipLabels now handles alignment fields correctly 2023-12-29 14:17:08 +00:00
J. Gareth "Curious Kit" Moreton
dbcab9cc29 * SkipAligns method removed 2023-12-29 14:17:08 +00:00
J. Gareth "Curious Kit" Moreton
6fd5b86cff * x86: SkipAligns calls removed. 2023-12-29 14:17:08 +00:00
J. Gareth "Curious Kit" Moreton
72081c803e * a64: SkipAligns calls removed. 2023-12-29 14:17:08 +00:00
J. Gareth "Curious Kit" Moreton
83f383e004 * Fixed bug where the original index of a call
para wasn't copied over during "DoGetCopy"
2023-12-28 20:48:43 +00:00
J. Gareth "Curious Kit" Moreton
d25d094d57 * Fixed bug where a call node's intrinsic code
wasn't copied over during "DoGetCopy"
2023-12-28 20:48:43 +00:00
Nikolay Nikolov
d6c3c74b46 + create relocation objects for R_WASM_FUNCTION_OFFSET_I32 relocations in the wasm object reader 2023-12-28 21:26:12 +02:00
Nikolay Nikolov
73895d3cbc + create relocation objects for R_WASM_TYPE_INDEX_LEB relocations in the wasm object reader 2023-12-28 21:23:08 +02:00
Nikolay Nikolov
ae93f8de91 + create relocation objects for R_WASM_MEMORY_ADDR_I32 relocations in the wasm object reader 2023-12-28 21:15:59 +02:00