Commit Graph

65217 Commits

Author SHA1 Message Date
Sven/Sarah Barth
0bbfad1add * apply patch by Blaise.ru:
- avoid creation of a dummy typesym just to call parse_var_proc_directives() by introducing a new parse_proctype_directives() that takes a tprocvardef instead of a symbol like the former does
  - have parse_var_proc_directives() call parse_proctype_directives() to avoid duplicated code
2022-05-26 21:42:53 +02:00
Sven/Sarah Barth
542c3f0c4c * use tproc_parse_flags in parse_proc_dec_finish as well 2022-05-26 21:42:53 +02:00
Sven/Sarah Barth
9664ad4138 * use tparse_proc_flags for parse_proc_head as well 2022-05-26 21:42:53 +02:00
Sven/Sarah Barth
ee187f78f4 * have read_body return the created procdef 2022-05-26 21:42:53 +02:00
Sven/Sarah Barth
f6a444c6fc * combine the Boolean parameters of read_proc and read_proc_dec into a set 2022-05-26 21:42:53 +02:00
Sven/Sarah Barth
934e3bba63 * set proctypeoption for procvars 2022-05-26 21:42:52 +02:00
Sven/Sarah Barth
4bc957a1aa * extend procvar_dec so that procvars don't have to be registered 2022-05-26 21:42:52 +02:00
Sven/Sarah Barth
3aebcccdf2 * allow procvars to not be registered right away 2022-05-26 21:42:52 +02:00
Sven/Sarah Barth
a764c035b2 * if the symbol belongs to the current def also consider it a specialization if it's a nameless type symbol from an implicit function specialization as their owner gets changed to the function itself 2022-05-26 21:42:52 +02:00
Sven/Sarah Barth
6a6a17717a + add a new symoption for symbols created for nameless types during implicit function specialization so that they can be recognized 2022-05-26 21:42:52 +02:00
Sven/Sarah Barth
8bef91d1de * declare the type symbol of an internal def as sp_internal 2022-05-26 21:42:52 +02:00
Sven/Sarah Barth
30a7199165 * make the VMT symbol and type def of the corresponding class or object instead of having them be global
* bump PPU version to avoid potential compilation errors due to this

Based on code by Blaise.ru
2022-05-26 21:42:51 +02:00
Sven/Sarah Barth
ac4df2b066 * don't check for a duplicate internal symbol in inherited symtables 2022-05-26 21:42:51 +02:00
Sven/Sarah Barth
3ca3c7a606 - remove duplicate paraprintnodetree to ensure that there the right paraprintnodetree is used (namely the one from globals) 2022-05-26 21:42:51 +02:00
Sven/Sarah Barth
7f9428eed5 * add cblock directive so that the test fails for the correct reason 2022-05-26 21:42:51 +02:00
Nikolay Nikolov
6ee4ee960e + added "(experimental)" to the compiler help screen for the WebAssembly compiler options that are still unstable/experimental 2022-05-26 18:20:07 +03:00
Nikolay Nikolov
66b471e516 + support different versions of llvm-mc (version 10 seems to be the earliest that works) 2022-05-26 15:06:35 +03:00
Nikolay Nikolov
3994626cb1 * fixed the message in the previous commit 2022-05-26 14:14:46 +03:00
Nikolay Nikolov
0c6287894b * the WebAssembly internal assembler renamed WASM (previously it was OMF, which was the ID of the MS-DOS .obj writer, which I forgot to rename) 2022-05-26 14:12:10 +03:00
Pierre Muller
7c21b37105 Avoid some range check error and convert internalerror into error messages 2022-05-26 00:28:47 +02:00
Pierre Muller
e0de75224b Add help for -Aomf option for wasm32 CPU and new message for ogwasm binary writer 2022-05-26 00:28:47 +02:00
florian
86b774e792 + some more cpu specfic files for mips64(el) 2022-05-25 22:41:22 +02:00
Nikolay Nikolov
3cb4952745 * AtomicWait marked as inline 2022-05-25 20:18:07 +03:00
Nikolay Nikolov
a916aa36d8 + added AtomicNotify() to the WebAssembly unit 2022-05-25 20:16:50 +03:00
Nikolay Nikolov
19cce3e42e + added AtomicWait() to the WebAssembly unit 2022-05-25 20:11:54 +03:00
Nikolay Nikolov
7cac9d2f02 + added AtomicStore() to the WebAssembly unit 2022-05-25 19:39:17 +03:00
Pierre Muller
f12752372f Regenerate Makefile after: Add implicit units to wasi rtl 2022-05-25 18:34:10 +02:00
Pierre Muller
f4964691b0 Add implicit units to wasi rtl 2022-05-25 18:34:10 +02:00
Nikolay Nikolov
16f5863847 + added WebAssembly atomic store intrinsics 2022-05-25 19:22:45 +03:00
Nikolay Nikolov
219294c02b + added AtomicLoad() to the WebAssembly unit 2022-05-25 19:05:28 +03:00
Nikolay Nikolov
0103964250 + implemented WebAssembly atomic load intrinsics 2022-05-25 18:55:41 +03:00
Nikolay Nikolov
9274f17c52 + reserved inline numbers for the WebAssembly atomic loads and stores 2022-05-24 16:06:05 +03:00
Nikolay Nikolov
7fa8f514af + added AtomicCompareExchange() to the WebAssembly unit 2022-05-24 15:40:13 +03:00
Nikolay Nikolov
9ba01e7aee + added AtomicExchange() to the WebAssembly unit 2022-05-24 15:24:25 +03:00
Nikolay Nikolov
362cabe684 + added AtomicAnd(), AtomicOr() and AtomicXor() to the WebAssembly unit 2022-05-24 15:21:59 +03:00
Nikolay Nikolov
99d66b4c93 + added AtomicAdd() and AtomicSub() intrinsics to the WebAssembly unit 2022-05-24 15:16:40 +03:00
Nikolay Nikolov
585d0cf574 + added unit WebAssembly for WebAssembly-specific stuff. Currently contains
the AtomicFence intrinsic, which emits the atomic.fence instruction.
2022-05-24 14:50:42 +03:00
Nikolay Nikolov
d9781bcebe + added except_branchful.inc as a system unit dependency include file to wasm32/makefile.cpu 2022-05-24 14:10:04 +03:00
Nikolay Nikolov
8c562995d7 * regenerate makefiles with latest fpcmake 2022-05-24 14:01:59 +03:00
Nikolay Nikolov
e74797d411 * replaced several internal errors, related to the WebAssembly labels
resolution with more meaningful error messages, in order to ease the
  debugging of the compiler. Based on patch by Pierre.
2022-05-24 11:44:15 +03:00
Nikolay Nikolov
748f71e5bb + enabled compilation of units variants and rtti, bug #39579 is now fixed 2022-05-24 11:18:52 +03:00
Nikolay Nikolov
6e4e3b8580 * fixed WebAssembly code generation in thlcgwasm.g_overflowCheck_loc (patch by Pierre) 2022-05-24 11:06:59 +03:00
Nikolay Nikolov
8bea5dd41e * WebAssembly code generation fix in thlcgwasm.a_op_reg_reg_reg_checkoverflow, based on patch by Pierre (but simplified, to use a single block) 2022-05-24 11:00:10 +03:00
Nikolay Nikolov
283c213a0c * patch by Pierre, which fixes WebAssembly code generation for signed div/mod with overflow checking 2022-05-24 10:47:38 +03:00
Nikolay Nikolov
0f4340e659 * fix regressions after previous patch by correctly parsing output, which does not contain '##WASI-EXITCODE:' 2022-05-24 10:30:20 +03:00
Nikolay Nikolov
a8b789d183 * patch from Pierre for working around the exitcode <= 125 limitation in wasmtime 2022-05-24 10:15:44 +03:00
florian
32fa0ecaf9 * cleanup 2022-05-23 22:28:59 +02:00
florian
e8e53d13cd * fix #39730 as suggested by Jonas 2022-05-23 22:28:59 +02:00
mattias
172803b2f7 fcl-passrc: fixed compile pas2js 2022-05-23 00:55:46 +02:00
mattias
1b7aefc11d fcl-json: fixed compile pas2js 2022-05-23 00:55:37 +02:00