Commit Graph

285 Commits

Author SHA1 Message Date
Nikolay Nikolov
ad8ed4b48d + write the non-external functions to the symbol table as well 2021-09-25 23:03:09 +03:00
Nikolay Nikolov
2d2906205b + write the externals to the symbol table 2021-09-25 22:45:47 +03:00
Nikolay Nikolov
8c57d20abc + write the linking section (empty for now) 2021-09-25 19:19:12 +03:00
Nikolay Nikolov
12496a638b + add relocation objects for the RELOC_FUNCTION_INDEX_LEB relocation to
the relocation list. They are not written to the object file, yet.
2021-09-25 18:37:10 +03:00
Nikolay Nikolov
a5d1ce26a0 + partial implementation of emitting RELOC_FUNCTION_INDEX_LEB relocations 2021-09-25 18:24:27 +03:00
Nikolay Nikolov
cbf444bbbe + write the actual function code in the code section 2021-09-25 18:08:01 +03:00
Nikolay Nikolov
dbb6f95ea7 * replaced TWasmObjData(Data) with FData in TWasmObjOutput.writeData 2021-09-25 17:49:19 +03:00
Nikolay Nikolov
6d1df899e6 + write the code section (still, without the actual function code, but with
the correct locals)
2021-09-25 17:41:42 +03:00
Nikolay Nikolov
e924dd0d16 + generate and write the functions table in the wasm binary module,
produced by the internal obj writer
2021-09-25 16:53:00 +03:00
Nikolay Nikolov
7e53fecd09 + handle tai_local in the internal asm writer and store the locals in the
wasm obj extra symbol data object
2021-09-25 16:00:09 +03:00
Nikolay Nikolov
050519f16f + handle the import_module and import_name directives in the internal
assembler and store them as obj symbol extra data
2021-09-25 15:44:35 +03:00
Nikolay Nikolov
4ef2a88946 + added method TWasmObjData.AddOrCreateObjSymbolExtraData 2021-09-25 15:35:28 +03:00
Nikolay Nikolov
27675967f8 * store the funcname to functype index in a TFPHashObjectList, instead of
TFPHashList with the index converted to pointer, which was a hack and didn't
  allow adding more fields, which we would need to do for e.g. import_module
  and import_name
2021-09-25 15:24:30 +03:00
Nikolay Nikolov
72a49b68ce * fixed the writing of the external functions in the import table 2021-09-25 00:39:03 +03:00
Nikolay Nikolov
4ca39cf07d + write the import functions in the wasm binary writer 2021-09-23 17:11:24 +03:00
Nikolay Nikolov
78af12b584 + added function name to functype hashlist in the wasm objdata class 2021-09-23 16:19:15 +03:00
Nikolay Nikolov
a58368d20d + avoid duplicate functypes in the types section of the wasm module we produce 2021-09-20 19:33:48 +03:00
Nikolay Nikolov
bb0155141a * fixed warning 2021-09-20 04:25:40 +03:00
Nikolay Nikolov
92592be8e4 + print more symbol properties to the console 2021-09-20 04:16:25 +03:00
Nikolay Nikolov
628fcb9b1c + create the Type wasm section 2021-09-20 03:43:23 +03:00
Nikolay Nikolov
3c3120845a * fixed crash when writing a binary wasm module with a .bss section 2021-09-20 03:07:00 +03:00
Nikolay Nikolov
455f603c8c + debug print the obj symbols to the console 2021-09-20 00:14:45 +03:00
Nikolay Nikolov
12796d176d + added the indirect function table to the imports section 2021-09-20 00:05:28 +03:00
Nikolay Nikolov
905f0b1f78 + add the __stack_pointer global import 2021-09-19 23:56:32 +03:00
Nikolay Nikolov
e8c3f5d6b0 + create the data section and the first entry of the import section 2021-09-19 23:43:45 +03:00
Nikolay Nikolov
2563cb6daa + start writing the wasm sections. The DataCount section is the first section to be implemented. 2021-09-19 22:46:54 +03:00
Nikolay Nikolov
e45d8578e8 + count the number of segments and assign segment indices to the wasm sections 2021-09-19 21:04:55 +03:00
Nikolay Nikolov
eea8f32772 + introduced TWasmObjSection.IsCode and .IsData 2021-09-19 20:56:06 +03:00
Nikolay Nikolov
698b5de389 + added TWasmObjSection class 2021-09-19 20:51:33 +03:00
Nikolay Nikolov
429454c8f4 + write some debug info to the console in the wasm obj writer 2021-09-19 20:47:20 +03:00
Nikolay Nikolov
c200bf5311 * fixed TWasmObjData.sectionname_gas 2021-09-19 19:41:27 +03:00
Nikolay Nikolov
fd4d6b8fc3 + write the wasm binary module header and version 2021-09-19 19:33:33 +03:00
Nikolay Nikolov
ffc5131087 + implemented TWasmObjData.sectionname 2021-09-19 19:24:16 +03:00
Nikolay Nikolov
59ea39ce75 + started the wasmbase unit (similar to elfbase and omfbase) 2021-09-19 18:49:50 +03:00
Nikolay Nikolov
cc314e61a2 + started working on the WebAssembly internal assembler 2021-09-19 16:17:09 +03:00