Nikolay Nikolov
|
41609a226b
+ check whether all br instructions, generated by goto point to a pascal goto label
|
2 anos atrás |
Nikolay Nikolov
|
22f2a4a665
* refactored the taicpu_wasm_structured_instruction descendants to use a wstyp enum variable, instead of using the 'is' operator to determine the class type
|
2 anos atrás |
Nikolay Nikolov
|
4bad2a153d
* fixed and enabled the is_pascal_goto_target check
|
2 anos atrás |
Nikolay Nikolov
|
307e4ac9c4
* refactor: wasm_convert_to_flat_asmlist and wasm_convert_to_structured_asmlist now accept a single var parameter
|
2 anos atrás |
Nikolay Nikolov
|
d2c94a3c26
* fixed the label resolution for asmlists with WebAssembly native exceptions
|
2 anos atrás |
Nikolay Nikolov
|
995f8f32d7
* fixed branch ordering in resolve_labels_via_state_machine
|
2 anos atrás |
Nikolay Nikolov
|
ebb4926c8e
* fixes to the mangling of the entry and exit code during the state machine label resolution
|
2 anos atrás |
Nikolay Nikolov
|
22d939583b
+ added label resolution via state machine
|
2 anos atrás |
Nikolay Nikolov
|
55c33fdc23
+ add the extra allocated locals before inserting the locals list in wasm32 tcpuprocinfo.postprocess_code
|
2 anos atrás |
Nikolay Nikolov
|
679a510b12
* strip block instructions
|
2 anos atrás |
Nikolay Nikolov
|
a20d6413a5
* convert loop..end_loop blocks to flat list + branch instruction
|
2 anos atrás |
Nikolay Nikolov
|
92ef537167
* convert if structured instructions to br_if + labels
|
2 anos atrás |
Nikolay Nikolov
|
1eadfd5192
* set the last=true property of the last tai_local in the locals list in the
|
2 anos atrás |
Nikolay Nikolov
|
913cea9b97
* insert the wasm locals asm list after resolve_labels_complex, since it will (in the future) be able to allocate more locals, in order to resolve the branches and goto
|
2 anos atrás |
Nikolay Nikolov
|
d1168bab0c
* moved the insertion of the wasm locals asmlist to a local subroutine
|
2 anos atrás |
Nikolay Nikolov
|
0f0501d6ef
* moved the preparation of the locals asm list in tcpuprocinfo.postprocess_code to a local subroutine
|
2 anos atrás |
Nikolay Nikolov
|
c457f2ba32
* Local var templist renamed localslist. No functional changes.
|
2 anos atrás |
Nikolay Nikolov
|
e2d17a202e
+ added and implemented tcpuprocinfo.AllocWasmLocal
|
2 anos atrás |
Nikolay Nikolov
|
5438771a97
+ convert wasm structured list to flat list
|
2 anos atrás |
Nikolay Nikolov
|
b141ba7f83
* moved the code that converts branch numbers to labels in the cpupi unit and call it from resolve_labels_complex
|
2 anos atrás |
Nikolay Nikolov
|
3742cc2fcf
+ always call resolve_labels_complex, if DEBUG_WASM_GOTO is defined.
|
2 anos atrás |
Nikolay Nikolov
|
533901f324
+ in case of unresolved labels, call resolve_labels_complex, which will eventually implement the stackifier algorithm. Currently, it converts the asmlist to structured.
|
2 anos atrás |
Nikolay Nikolov
|
e74797d411
* replaced several internal errors, related to the WebAssembly labels
|
3 anos atrás |
Nikolay Nikolov
|
7f1050464a
+ added 'else' tracking for the if..end_if blocks
|
4 anos atrás |
Nikolay Nikolov
|
7bef4d827d
* keep track of the block stack, when resolving labels and check whether the
|
4 anos atrás |
Nikolay Nikolov
|
12a2c56461
- removed thlcgwasm.incblock, .decblock and br_blocks, as branching is now done
|
4 anos atrás |
Nikolay Nikolov
|
6fe647ee3d
* moved the default procedure CurrRaiseLabel to the end of the procedure, not
|
4 anos atrás |
Nikolay Nikolov
|
470e77a572
+ added sanity check when resolving labels to ensure we don't get any jumps with
|
4 anos atrás |
Nikolay Nikolov
|
5a0956d805
* use WebAssembly asm labels for the raise branch instruction in branchful
|
4 anos atrás |
Nikolay Nikolov
|
4e3a6aa5a8
* match the label to the wider block, if it is adjacent to both the brevious
|
4 anos atrás |