Commit Graph

29 Commits

Author SHA1 Message Date
Nikolay Nikolov
b900be6142 + added WebAssembly intrinsics for reading __tls_size, __tls_align and __tls_base 2022-07-14 04:15:47 +03:00
Nikolay Nikolov
dbba2d2746 + implemented popcnt via the popcnt instruction in WebAssembly 2022-05-27 23:23:27 +03:00
Nikolay Nikolov
16f5863847 + added WebAssembly atomic store intrinsics 2022-05-25 19:22:45 +03:00
Nikolay Nikolov
0103964250 + implemented WebAssembly atomic load intrinsics 2022-05-25 18:55:41 +03:00
Nikolay Nikolov
f1cb5d8f71 + support intrinsic for the memory.atomic.notify WebAssembly instruction 2022-05-21 18:03:14 +03:00
Nikolay Nikolov
86643710c4 + support intrinsics for the WebAssembly memory.atomic.wait32 and memory.atomic.wait64 instructions 2022-05-21 17:53:38 +03:00
Nikolay Nikolov
e03b920520 + added intrinsic support for the WebAssembly cmpxchg atomic operations as well 2022-05-21 02:52:31 +03:00
Nikolay Nikolov
d8f06aa4f1 + added instrinsic support for the all the 2-parameter read-modify-write
WebAssembly atomic operations (add, sub, and, or, xor, xchg). Note that they
  are not implemented in the internal assembler, yet.
2022-05-20 17:36:37 +03:00
Nikolay Nikolov
1d70437017 + added intrinsic (for RTL internal use) that emits the WebAssembly atomic.fence instruction 2022-05-13 22:46:27 +03:00
Nikolay Nikolov
12a2c56461 - removed thlcgwasm.incblock, .decblock and br_blocks, as branching is now done
entirely with labels
2021-10-22 17:42:29 +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
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
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
95243ed6ed + implemented sqrt via the f32.sqrt and f64.sqrt instructions 2021-09-29 03:48:31 +03:00
Nikolay Nikolov
cdf1ceca76 * emit a weak symbol for the exception tag, since that's what the LLVM linker
wants to treat them as shared between .o files
2021-09-28 02:52:40 +03:00
Nikolay Nikolov
f701d2f294 + support in_wasm32_throw_fpcexception in twasminlinenode.pass_typecheck_cpu 2021-09-28 01:11:01 +03:00
Nikolay Nikolov
82b6450f19 + introduced the AT_WASM_EXCEPTION_TAG asm symbol type, use that for specifying
the parameter to the 'throw' and 'catch' instructions
2021-09-27 17:49:30 +03:00
Nikolay Nikolov
c2754eac3f + introduced the wasm32_throw_fpcexception inline function, that emits a
'throw' instruction. This way we'll be able to emit this instruction from
  RTL code (i.e. from fpc_raiseexception, when that is implemented for
  WebAssembly)
2021-09-18 02:39:16 +03:00
nickysn
c42e297bc6 + implemented sqr(real) for the WebAssembly target
git-svn-id: trunk@49430 -
2021-06-01 16:41:39 +00:00
nickysn
947f9af0e5 + fixed code generation for high(dynarray) for the WebAssembly target
git-svn-id: trunk@49217 -
2021-04-17 13:58:55 +00:00
nickysn
4ef1367019 + added wasm32 inline procedure for generating the 'unreachable' instruction
git-svn-id: branches/wasm@48442 -
2021-01-28 12:48:56 +00:00
nickysn
699626ee5c * a_grow_memory asm op renamed a_memory_grow
git-svn-id: branches/wasm@48319 -
2021-01-22 14:52:46 +00:00
nickysn
d0fe45a595 * a_current_memory asm op renamed a_memory_size
git-svn-id: branches/wasm@48318 -
2021-01-22 14:51:55 +00:00
nickysn
54299874d3 + implemented memory.grow and memory.size intrinsics and implemented SysOSAlloc
git-svn-id: branches/wasm@48290 -
2021-01-21 23:13:49 +00:00
nickysn
cc94ab3ab8 + implemented length() code generation for WebAssembly
git-svn-id: branches/wasm@48198 -
2021-01-19 14:32:23 +00:00
nickysn
888af282a4 + override the inline node for WASM
git-svn-id: branches/wasm@48197 -
2021-01-19 14:04:47 +00:00