Nikolay Nikolov
890b899842
+ support the <= and >= operators for smallsets on the Z80
2021-10-03 18:33:00 +03:00
Nikolay Nikolov
b00c0e44a5
+ support equality comparison of smallsets on the Z80
2021-10-03 18:16:45 +03:00
Jonas Maebe
3fb0fab410
Fix bitpacking 62/63 bit fields on 64 bit targets
...
As reported on the lazarus forum:
* https://forum.lazarus.freepascal.org/index.php?topic=56341.new
* https://forum.lazarus.freepascal.org/index.php/topic,56339.msg418608/topicseen.html
Also optimized nextpowerof2 in the compiler
2021-10-03 14:00:50 +02:00
Nikolay Nikolov
41db71c21c
+ implemented the <= operator for smallsets for WebAssembly
2021-10-03 04:37:13 +03:00
Nikolay Nikolov
5adec3ca98
+ workaround for WebAssembly treating the stack parameter of the store and load
...
instructions as unsigned. This caused an 'out of bounds memory access' trap
when accessing arrays with negative offset index, e.g. in test/cg/tvec.pp
2021-10-03 03:16:34 +03:00
Nikolay Nikolov
0a383d8c0f
* fixed WebAssembly method pointer assignment
2021-10-03 02:27:19 +03:00
Nikolay Nikolov
6f88919f37
- don't set casmdata in wasm32/aasmcpu.pas, so that the aasmdef unit can override it
2021-10-03 00:59:11 +03:00
Nikolay Nikolov
c1eeb8beda
+ use the aasmdef unit in wasm32/cpunode.pas
2021-10-03 00:49:53 +03:00
Nikolay Nikolov
020a58b075
+ added system_wasm32_embedded to systems_embedded
2021-10-02 23:14:24 +03:00
Nikolay Nikolov
c450b63f1c
+ enabled compilation of the fpintres unit for the WASI target and enabled tf_has_winlike_resources for the target
2021-10-02 22:43:05 +03:00
J. Gareth "Kit" Moreton
4b39f7dea0
x86: Missed logic with CMP and MOV optimisations
2021-10-02 19:32:44 +00:00
Nikolay Nikolov
cc2fa67dfa
* fixed OS_S8 to OS_16 conversion for WebAssembly. This fixes test/cg/tcnvint6
2021-10-02 22:10:34 +03:00
Nikolay Nikolov
3258937d97
+ implemented move() for WebAssembly via the memory.copy instruction
2021-10-02 21:33:28 +03:00
Nikolay Nikolov
2e3e3edb5f
+ implemented FillChar for WebAssembly via the memory.fill instruction
2021-10-02 20:31:37 +03:00
Nikolay Nikolov
85207e94f8
+ added inline numbers for a memory.copy and a memory.fill intrinsic
2021-10-02 19:40:36 +03:00
Nikolay Nikolov
026d23632a
+ added the memory.copy and memory.fill WebAssembly instructions
2021-10-02 19:35:26 +03:00
florian
cc5ee6b868
+ comments
2021-10-02 16:24:47 +02:00
florian
39164ad732
* cleanup
2021-10-02 16:15:19 +02:00
florian
c1d8e32eae
+ Aarch64: Ldr<Postfix>Mov2Ldr<Postfix> optimization
2021-10-02 16:07:00 +02:00
florian
b5c7997c88
+ Aarch64: AndCmpB.E/NE2Tbnz/Tbz optimization
2021-10-02 15:46:37 +02:00
florian
177b38dfe9
* modified (cosmetics) patch by Rika: replace DJB2 with MurmurHash3, resolves #39377
2021-10-01 23:06:31 +02:00
Nikolay Nikolov
d2726c2406
* fixed WebAssembly code generation for not(cbool64)
2021-10-01 05:17:12 +03:00
Nikolay Nikolov
4fc763ac50
* fixed WebAssembly cbool support for OP_NOT
2021-10-01 04:54:17 +03:00
Nikolay Nikolov
baf5ff4e05
* another WebAssembly cbool fix in twasmtypeconvnode.second_int_to_bool
2021-10-01 04:40:50 +03:00
Nikolay Nikolov
968e23546c
* fixed second_int_to_bool for cbool types for WebAssembly
2021-10-01 04:20:02 +03:00
Nikolay Nikolov
188a21bbfd
* fixed 'not(boolean64)' for WebAssembly
2021-10-01 03:01:55 +03:00
Nikolay Nikolov
c6a549eb48
* int64/boolean64 fix in twasmtypeconvnode.second_int_to_bool
2021-10-01 02:57:04 +03:00
Nikolay Nikolov
2e5b895d70
* fixed WebAssembly code generation for 'if boolean64 then ... else ...'
2021-10-01 02:47:08 +03:00
Nikolay Nikolov
4d571a1928
* fixed code generation for 'boolean64 and/or boolean64' for WebAssembly
2021-10-01 02:43:55 +03:00
florian
abd494624b
* properly search in GetMMRegisterBetween and GetIntRegisterBetween for usable
...
volatile registers (low(<set>) .. high(<set) just searched all possible elements
and not only the included ones)
2021-09-29 22:30:51 +02:00
J. Gareth "Kit" Moreton
1f19b11398
x86_64: Fix to tw8573 overflow bug under -Cg option
2021-09-29 18:32:31 +00:00
flyingsheep
6c6cb13a5e
* Fix for issue #39379 by bart broersma
2021-09-29 17:21:57 +02:00
Nikolay Nikolov
91d8009b53
+ implemented round(real) for WebAssembly via the fXX.nearest and i64.trunc_fXX_s instructions
2021-09-29 05:27:27 +03:00
Nikolay Nikolov
835bc62e2a
+ implemented trunc(real) for WebAssembly via the i64.trunc_f32_s and i64.trunc_f64_s instructions
2021-09-29 05:07:43 +03:00
Nikolay Nikolov
f6b4a54f7d
* fixed output of 32-bit floating point constants in the llvm-mc asm output
2021-09-29 04:57:19 +03:00
Nikolay Nikolov
d84a7d1bde
+ implemented int(real) for WebAssembly via the f32.trunc and f64.trunc instructions
2021-09-29 04:19:10 +03:00
Nikolay Nikolov
8822be8a1f
+ implemented abs(real) for WebAssembly via the f32.abs and f64.abs instructions
2021-09-29 04:04:03 +03:00
Nikolay Nikolov
f42817d1a2
* fixed opcode generation for the f32.const in the WebAssembly internal asm
2021-09-29 03:56:13 +03:00
Nikolay Nikolov
95243ed6ed
+ implemented sqrt via the f32.sqrt and f64.sqrt instructions
2021-09-29 03:48:31 +03:00
Nikolay Nikolov
6e6c946e0f
* the fpc_Catches result test code was inverted
2021-09-29 00:17:17 +03:00
florian
7ce1a7c6a0
* x86_64-linux doesn't need .data.rel.ro either
2021-09-28 23:13:35 +02:00
Nikolay Nikolov
99dbbcadcd
+ generate functype directives for all functions in all used units, regardless
...
of whether they have paraloc info created. This fixes linking of WebAssembly
programs that declare their own classes, because that causes the compiler to
generate a VMT, containing references to virtual methods, and these don't
necessarily have paraloc info (if they're not called from within the program)
2021-09-29 00:04:23 +03:00
Nikolay Nikolov
6e7f0744ca
+ implemented the 'on' node for WebAssembly in native exceptions mode
2021-09-28 23:55:10 +03:00
Nikolay Nikolov
0e647a073e
+ override the 'on' node for WebAssembly
2021-09-28 21:23:49 +03:00
Nikolay Nikolov
ef738f01cf
* fixed warning
2021-09-28 20:39:47 +03:00
Nikolay Nikolov
f2abce7ea5
+ initial implementation of try..except..end in wasm native exceptions mode.
...
The 'on' statements are not implemented yet.
2021-09-28 20:23:27 +03:00
Nikolay Nikolov
99e449eaa1
* decblock moved after end_try, instead of after catch
2021-09-28 04:11:16 +03:00
Nikolay Nikolov
0c3e179652
- get rid of fpc_PushExceptAddr and fpc_PopAddrStack entirely, when compiling in
...
wasm native exceptions mode - these helper routines aren't necessary in this
mode
2021-09-28 03:59:38 +03:00
Nikolay Nikolov
c9fd115ec5
* fixes to the try..finally code generation in wasm native exceptions mode
2021-09-28 03:29:45 +03:00
Nikolay Nikolov
21fd8cd5d3
* updated ppudump with the new asm symbol types and binding types
2021-09-28 03:01:09 +03:00