Commit Graph

63332 Commits

Author SHA1 Message Date
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
Jonas Maebe
fcb646bc3b obcpas: fix categories implementing protocols
Allocate the ImplementedInterfaces array for them and save to/load from ppu

Solves #39375
2021-09-25 16:15:45 +02: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
54481d7218 * moved the imports/funcdef writing from the llvm-mc assembler writer to
twasmnodeutils.InsertObjectInfo. This way, the info it produces will be
  shared with the internal wasm object writer as well.
2021-09-25 00:16:53 +03:00
Nikolay Nikolov
d19919aa13 * TLLVMMachineCodePlaygroundAssembler.WriteImports now uses just a single TAsmList 2021-09-25 00:02:14 +03:00
florian
f56aa9abe7 * set expectloc properly for x87 on x86 2021-09-24 22:27:44 +02:00
Nikolay Nikolov
a6e75d52f7 + introduced tai_import_module and tai_import_name that represent the
.import_module and .import_name assembler directives
2021-09-24 22:14:32 +03:00
Nikolay Nikolov
459bb0fa18 * override twasmnodeutils.InsertObjectInfo 2021-09-24 21:52:57 +03:00
florian
a3666aa8c9 o manually applied merge request 46 by J. Gareth "Kit" Moreton:
+ x86_64: XMM-based block move optimisation
2021-09-24 20:10:38 +02:00
Nikolay Nikolov
860e4487c3 + added WebAssembly node utils 2021-09-24 16:44:33 +03:00
florian
5abfe21f39 + apply unary minus optimizations also to /
* test extended
2021-09-23 22:44:16 +02:00
mattias
8ae1b6eace pastojs: clone multi dim static array 2021-09-23 17:59:21 +02:00
mattias
cc8f8dbde8 fcl-js: fixed typo 2021-09-23 17:58:59 +02: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
florian
01d6358f93 * some fixes for expectloc 2021-09-22 22:09:19 +02:00
mattias
a0c0a8fa8c pas2js: fixed rtl.tTypeMemberProperty 2021-09-22 13:10:05 +02:00
florian
69d5d648a9 + more unary minus optimizations
* test extended
2021-09-21 23:09:33 +02:00
mattias
781da5e60d pas2js: nil typeinfo Module, Attr and params 2021-09-21 12:21:42 +02:00
florian
3e760b33c7 + more unary minus optimizations
* test extended
2021-09-20 22:31:16 +02: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
3e2a9b6ceb + handle the call instruction in the wasm binary writer 2021-09-20 05:03:38 +03:00
Nikolay Nikolov
ab0d7697c3 + added the TWasmLinkingSubsectionType enum 2021-09-20 04:47:51 +03:00
Nikolay Nikolov
b97570c8b3 + added the TWasmRelocationType enum 2021-09-20 04:39:10 +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
fced051f5f + implemented binary encoding of a_i32_load and a_i32_store without symbol 2021-09-20 03:00:37 +03:00
Nikolay Nikolov
b975317c51 + implemented the encoding of the block instruction without operands 2021-09-20 02:37:40 +03:00
Nikolay Nikolov
079e5ae151 + encode the end_function dummy instruction 2021-09-20 02:24:28 +03:00
Nikolay Nikolov
b7c638a717 + implemented binary encoding of the global.get and global.set instructions 2021-09-20 02:19:18 +03:00
Nikolay Nikolov
4a886e2019 * simplified operand access via the 'with' operator 2021-09-20 02:09:42 +03:00
Nikolay Nikolov
4dd44427c0 + implemented instruction encoding for local.get, local.set and local.tee 2021-09-20 02:03:47 +03:00
Nikolay Nikolov
2954588e4d + implemented binary output for the i32.const and i64.const with top_const parameter 2021-09-20 01:46:07 +03:00
Nikolay Nikolov
5b3efc4b38 + implemented encoding of the most simple wasm instructions 2021-09-20 01:24:39 +03:00
Nikolay Nikolov
455f603c8c + debug print the obj symbols to the console 2021-09-20 00:14:45 +03:00
florian
8cb92fd49a * simplify real expressions involving unary minus
+ test
2021-09-19 23:08:32 +02: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