Sven/Sarah Barth
bc4eb00a7a
* apply patch by Blaise.ru: proper code generation for assigning class non-static methods, accessed via a class reference type, to method pointers
...
+ added test
2022-05-26 21:42:55 +02:00
Sven/Sarah Barth
6e7a82440e
* apply patch by Blaise.ru: avoid internal error when assigning class methods, accessed via a class reference type, to incompatible procvars
...
+ added tests
2022-05-26 21:42:55 +02:00
Sven/Sarah Barth
a8cf67d73b
* apply patch by Blaise.ru: reject assignments of instance methods, accessed via a type, to method pointers
...
+ add tests
2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
acee4eb27a
- apply patch by Blaise.ru: pdflags are no longer required in generate_specialization_phase2() after parse_proc_directives() was done, so remove its unused modification after that call
2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
e5df46722e
* apply part of patch by Blaise.ru: reduce code duplication when parsing anonymous procvar types
2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
bd226c00f1
* apply part of patch by Blaise.ru: check only once whether writable consts are enabled or not by determining the type of the assembly list earlier (it's only not needed in an error case anyway)
2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
e5ac99a4c9
* apply patch by Blaise.ru: parse_object_proc_directives() and parse_object_record_directives() should only be called with procdefs, so change the parameter from tabstractprocdef to tprocdef to make this explicit
2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
9c9c6cc81b
* apply patch by Blaise.ru:
...
- all call sites of parse_var_proc_directives() have the tprocvardef easily available, so use parse_proctype_directives() directly
- remove the now no longer required parse_var_proc_directives()
2022-05-26 21:42:53 +02:00
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