Commit Graph

69 Commits

Author SHA1 Message Date
Pierre Muller
290c597878 Remove llvm-mc-10 support in agllvmmc unit 2025-05-28 08:03:12 +00:00
Nikolay Nikolov
c515d45026 + added new target to the compiler: wasm32-wasip2. Not working, yet. 2025-03-10 21:53:40 +02:00
Nikolay Nikolov
d1dbbc0a35 + also handle system_wasm32_wasip1threads in the compiler anywhere system_wasm32_wasip1 is handled 2025-02-28 15:12:21 +02:00
Nikolay Nikolov
e20466ffd1 * system_wasm32_wasi renamed system_wasm32_wasip1 2025-02-28 15:12:19 +02:00
Nikolay Nikolov
293ddffebd + disable the WebAssembly type checker for all LLVM-MC versions since version 13 2024-09-01 21:20:43 +03:00
Nikolay Nikolov
6ab6d613e0 + add explicit support for LLVM-MC versions 15..18 2024-09-01 20:10:54 +03:00
Nikolay Nikolov
a76ca8f60e + pass '--no-type-check' to llvm-mc-13, because its type checking is broken 2024-09-01 20:03:29 +03:00
Nikolay Nikolov
5e327453a8 + WebAssembly external asm writer: workaround for the 'missing functype' error,
produced by LLVM-MC versions 13 and above
2024-09-01 19:52:50 +03:00
Nikolay Nikolov
21cc89f1e3 + added a second TWasmFuncType parameter to the CALL WebAssembly instruction. It
is not part of the WebAssembly syntax and binary encoding, but it helps
  WebAssembly stack tracking and validation.
2024-02-25 04:48:17 +02:00
Nikolay Nikolov
8bd18fc6d3 Merge remote-tracking branch 'origin/main' into wasm_js_promise_integration 2023-06-17 17:11:23 +03:00
Pierre Muller
ad1812f90a Handle the specific NaN pattern of mips floating-point unit 2023-06-11 15:56:54 +01:00
Nikolay Nikolov
48556ab039 + enable the reference types extension in llvm-mc via a command line option 2023-06-07 03:30:40 +03:00
Nikolay Nikolov
557e823734 + introduced trefaddr.addr_got_tls, to be used for generating WebAssembly threadvar access, when WASM multithreading is turned on 2022-07-14 00:28:03 +03:00
Nikolay Nikolov
b821b9d502 + WebAssembly multithreading: also declare threadvar sections as TLS and prefix their name with '.tbss' when using the external assembler 2022-07-13 23:50:48 +03:00
Pierre Muller
2307dc8f26 Try to fix real constant problems for llvm compiler 2022-06-07 23:51:27 +02: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
ddab39dbdc + enable the atomics extension on the llvm-mc command line (extension appears
to be recognized since LLVM 8.0, so it should be safe to always enable this
  from the llvm-mc command line)
2022-05-13 21:15:54 +03:00
Nikolay Nikolov
026d23632a + added the memory.copy and memory.fill WebAssembly instructions 2021-10-02 19:35:26 +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
8226233aa3 * introduced the tai_globaltype asm directive, use that to declare the stack
pointer global symbol
2021-09-27 02:39:43 +03:00
Nikolay Nikolov
a1c8e92904 * emit a tai_tagtype for __FPC_exception instead of hardcoding the asm output
directly when wasm native exceptions are enabled
2021-09-27 00:33:57 +03:00
Nikolay Nikolov
54481d7218 * moved the imports/funcdef writing from the llvm-mc assembler writer to
twasmnodeutils.InsertObjectInfo. This way, the info it produces will be
  shared with the internal wasm object writer as well.
2021-09-25 00:16:53 +03:00
Nikolay Nikolov
d19919aa13 * TLLVMMachineCodePlaygroundAssembler.WriteImports now uses just a single TAsmList 2021-09-25 00:02:14 +03:00
Nikolay Nikolov
a6e75d52f7 + introduced tai_import_module and tai_import_name that represent the
.import_module and .import_name assembler directives
2021-09-24 22:14:32 +03:00
Nikolay Nikolov
ac2f299d04 + declare __FPC_exception as a label, otherwise wasm-ld crashes 2021-09-18 01:47:28 +03:00
Nikolay Nikolov
288f79cb3b + declare the __FPC_exception tag, when compiling with native WebAssembly
exceptions
2021-09-17 23:46:38 +03:00
Nikolay Nikolov
d8665f8a51 * write the .globaltype directive and the imports in the beginning of the
assembly file, because that appears to be required by llvm-mc from git
2021-09-17 23:46:38 +03:00
Nikolay Nikolov
d36e239f45 + enabled the exception handling instructions in the llvm-mc command line 2021-09-17 21:20:14 +03:00
nickysn
715de4547a * fixed WASI dll imports that are declared in a different unit
git-svn-id: trunk@49537 -
2021-06-23 20:36:52 +00:00
pierre
570af33fa9 Add a second handling of NIL entries in deflist
git-svn-id: trunk@49270 -
2021-04-26 21:12:02 +00:00
pierre
e6045673ee Handle NIL entries in deflist after commit 48986
git-svn-id: trunk@49230 -
2021-04-18 15:44:07 +00:00
nickysn
4f828929a3 * fixed the support for infinity and nan float literal values in the webassembly
llvm-mc asm writer

git-svn-id: trunk@49213 -
2021-04-16 23:40:11 +00:00
nickysn
d090af4abe * skip nil values in current_module.deflist in TLLVMMachineCodePlaygroundAssembler.WriteImports
git-svn-id: trunk@48985 -
2021-03-15 18:12:36 +00:00
nickysn
807c743e35 * system identifier system_wasm32_wasm renamed system_wasm32_embedded
git-svn-id: branches/wasm@48362 -
2021-01-24 01:01:39 +00:00
nickysn
9908a9d82a + add functypes for the unit init and finalization code procedures
git-svn-id: branches/wasm@48285 -
2021-01-21 22:12:15 +00:00
nickysn
4e57c4d89e + enable smartlink sections for the llvm-mc assembler
git-svn-id: branches/wasm@48255 -
2021-01-21 03:50:24 +00:00
nickysn
8697fb4822 * write the WebAssembly procdefs in the standard way, instead of using the special JVM way
git-svn-id: branches/wasm@48251 -
2021-01-21 02:44:43 +00:00
nickysn
f83ef3c610 * avoid creating threadvar sections in the LLVM-MC WebAssembly output
git-svn-id: branches/wasm@48246 -
2021-01-20 23:13:14 +00:00
nickysn
ca3cf821f3 * fixed writing of floating point constants for the LLVM-MC assembler
git-svn-id: branches/wasm@48244 -
2021-01-20 23:00:52 +00:00
nickysn
b6735179ed * use a functype operand for a_if, instead of hardcoding
git-svn-id: branches/wasm@48028 -
2021-01-04 11:01:18 +00:00
nickysn
07c1783e24 * refactored call_indirect to use a 'functype' operand type. This type will be reused for block instructions as well.
git-svn-id: branches/wasm@48027 -
2021-01-04 10:50:06 +00:00
nickysn
6ef60815b8 * fixed the 'if' instruction syntax in the llvm-mc asm writer
git-svn-id: branches/wasm@48026 -
2021-01-04 10:11:29 +00:00
nickysn
4ea7d8dffb + enable the sign extension wasm32 instructions
git-svn-id: branches/wasm@47975 -
2021-01-02 15:07:38 +00:00
nickysn
8c05ba538d * fixed formatting in wasm32 instr writer write instruction
git-svn-id: branches/wasm@47968 -
2021-01-02 12:28:00 +00:00
nickysn
5dfdaf870f - removed redundant code from wasm32 instruction writer
git-svn-id: branches/wasm@47967 -
2021-01-02 12:26:04 +00:00
nickysn
09ae46cfdd - removed unused code from TWASM32InstrWriter.WriteInstruction
git-svn-id: branches/wasm@47966 -
2021-01-02 12:25:12 +00:00
nickysn
35489718f3 * fixed call_indirect for the llvm-mc asm writer
git-svn-id: branches/wasm@47965 -
2021-01-02 12:21:30 +00:00
nickysn
da87a9e48d + write proctype of procedures in other units as well
git-svn-id: branches/wasm@47184 -
2020-10-24 20:23:51 +00:00
nickysn
64b2d8ef85 * wasm base and index reference access fixes
git-svn-id: branches/wasm@47177 -
2020-10-24 17:28:43 +00:00
nickysn
1d8c5edbcc + write references with registers for debugging purposes (to support asm output with -sr) in the LLVM-MC asm writer
git-svn-id: branches/wasm@47173 -
2020-10-24 15:41:41 +00:00