Nikolay Nikolov
2102fbdc97
- removed debug writelns from the wasm internal object writer
2021-09-26 20:13:35 +03:00
Nikolay Nikolov
99c84da071
+ generate the export section in the wasm internal obj writer
2021-09-26 20:02:48 +03:00
Nikolay Nikolov
1c8579da2e
* simplified and integrated the WriteImportExport procedure into the case
...
statement. Use similar statements to write the asm code for the export_name,
like we use for the import_name directive.
2021-09-26 18:40:49 +03:00
Nikolay Nikolov
346b57e238
* tai_impexp renamed tai_export_name
...
* ait_importexport renamed ait_export_name
2021-09-26 18:35:10 +03:00
Nikolay Nikolov
2940d0f45f
- removed unused constructor of tai_impexp, as well as unused member variable extmodule
2021-09-26 18:29:28 +03:00
J. Gareth "Kit" Moreton
79f60923ba
Bug fix to XMM block move optimisation
2021-09-26 14:09:29 +00:00
Nikolay Nikolov
abf831c430
+ fixed the addend in the relocations that point to data
2021-09-26 11:12:08 +03:00
florian
2d1ebe4cb3
+ re-added accidently removed internal error
2021-09-26 09:50:30 +02:00
Nikolay Nikolov
c881d05793
* fixed bug in the code, generated for the RELOC_FUNCTION_INDEX_LEB
...
relocation
2021-09-26 10:29:17 +03:00
Nikolay Nikolov
07461d0fc3
* made the constructor of TObjSymbol virtual, so it can be overriden
2021-09-26 10:17:19 +03:00
Nikolay Nikolov
cb3ac37fb3
* fixed i32.const with large unsigned 32-bit const parameter (>2GB)
2021-09-26 09:50:35 +03:00
Nikolay Nikolov
efd5831742
* generate an internal error if an attempt is made to emit a
...
R_WASM_MEMORY_ADDR_LEB relocation, that points to code, instead of
data
2021-09-26 09:42:12 +03:00
Nikolay Nikolov
392ca81c20
+ add threadvar symbols to the symbol table
2021-09-26 09:40:28 +03:00
Nikolay Nikolov
92fb1d2564
* fixed warning
2021-09-26 08:25:22 +03:00
Nikolay Nikolov
9e0c028142
+ support load/store with op_const
2021-09-26 08:15:04 +03:00
Nikolay Nikolov
7e9607a62c
* fixed warning
2021-09-26 08:07:21 +03:00
Nikolay Nikolov
2e491d1ffa
+ implemented the br and br_if instructions in the wasm internal asm
2021-09-26 07:58:59 +03:00
Nikolay Nikolov
ca70cb05a7
* fixed warning
2021-09-26 07:54:20 +03:00
Nikolay Nikolov
07b71ac6ce
* generate an internal error instead of warning for unsupported opcodes
...
in the internal asm writer for wasm
2021-09-26 07:48:31 +03:00
Nikolay Nikolov
d7b141d70e
+ implemented the if, loop and else instructions
2021-09-26 07:45:14 +03:00
Nikolay Nikolov
6133affad6
+ implemented the f32.const and f64.const instructions in the wasm
...
internal asm
2021-09-26 07:19:36 +03:00
Nikolay Nikolov
0486caeb91
* generate an internal error, instead of warning for i32.const and
...
i64.const instructions with an unknown parameter
2021-09-26 06:58:46 +03:00
Nikolay Nikolov
81b8574bfd
+ implemented all the load/store instructions in the wasm internal asm
...
writer (previously, only i32.load and i32.store were implemented)
2021-09-26 06:49:51 +03:00
Nikolay Nikolov
ea401ccc82
+ support writing R_WASM_MEMORY_ADDR_I32 relocations
2021-09-26 06:27:02 +03:00
Nikolay Nikolov
7f5250bf46
+ implemented support for R_WASM_TABLE_INDEX_SLEB relocations
2021-09-26 06:22:41 +03:00
Nikolay Nikolov
9fa2e2934b
+ support the call_indirect instruction and the R_WASM_TYPE_INDEX_LEB
...
relocation that it requires in the internal wasm object writer
2021-09-26 06:03:18 +03:00
Nikolay Nikolov
bd6bbb6cf4
+ support writing imports from a different module in the wasm binary object writer
2021-09-26 05:36:51 +03:00
Nikolay Nikolov
238d09d875
+ support writing RELOC_FUNCTION_INDEX_LEB relocations to non-external functions
2021-09-26 05:15:50 +03:00
Nikolay Nikolov
bf5048cb5e
+ support generating R_WASM_TABLE_INDEX_I32 relocations
2021-09-26 04:46:46 +03:00
Nikolay Nikolov
acdb65c2a3
+ support tai_symbolpair in the wasm internal obj writer, so that the
...
PASCALMAIN alias of main can be created
2021-09-26 04:19:16 +03:00
Nikolay Nikolov
83f2f7bf37
+ introduced TObjData.SymbolPairDefine, to allow custom handling of symbol
...
pairs in the internal object writer
2021-09-26 03:56:56 +03:00
Nikolay Nikolov
6e7e632682
* fixed another warning
2021-09-26 03:16:01 +03:00
Nikolay Nikolov
4ebf857ffc
* fixed warning
2021-09-26 03:05:00 +03:00
Nikolay Nikolov
b913133152
+ implemented leb and sleb relocations to data symbols
2021-09-26 02:23:31 +03:00
Nikolay Nikolov
67cbb7032e
+ fully implemented the RELOC_FUNCTION_INDEX_LEB relocations
2021-09-26 00:45:52 +03:00
Nikolay Nikolov
4e4910cb84
+ write the relocation tables for the code and data sections (empty for now)
2021-09-25 23:47:30 +03:00
Nikolay Nikolov
217b3ea3cc
+ write the segment info (names and alignment) to the linking custom section
2021-09-25 23:30:43 +03:00
Nikolay Nikolov
5066a7eb24
+ also write the data symbols to the symbol table
2021-09-25 23:20:15 +03:00
Nikolay Nikolov
ad8ed4b48d
+ write the non-external functions to the symbol table as well
2021-09-25 23:03:09 +03:00
florian
2805e44ccb
* Aarch64: taicpu.spilling_get_operation_type with new instructions extended
2021-09-25 22:00:36 +02:00
Nikolay Nikolov
2d2906205b
+ write the externals to the symbol table
2021-09-25 22:45:47 +03:00
Jonas Maebe
3e98429418
Revert " * patch by J. Gareth Moreton: Nothing (NOP) node optimisation, resolves #38194 "
...
This reverts commit c2ff85ac5b
.
That change duplicates the logic of tstatementnode.simplify in
tblocknode.simpify in a very complex way, and in case of issue #39336 results
in adding a non-tstatementnode in a tblocknode, which is illegal. If
tstatementnode.simplify cannot catch all cases, then that one should
preferably be improved instead (and if not possible, we can look into
catching those edge cases in tblocknode.simplify rather than duplicating
everything).
Resolves issue #39336
2021-09-25 21:02:29 +02:00
Nikolay Nikolov
8c57d20abc
+ write the linking section (empty for now)
2021-09-25 19:19:12 +03:00
Nikolay Nikolov
8295173f86
+ added enums for the wasm symbol type and constnats for the bitflags
2021-09-25 19:05:36 +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
Pierre Muller
a7ad65f884
Fix use of svnversion if ../.git does not exist
2021-09-25 17:15:35 +02: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