Commit Graph

63354 Commits

Author SHA1 Message Date
Nikolay Nikolov
ab0d7697c3 + added the TWasmLinkingSubsectionType enum 2021-09-20 04:47:51 +03:00
Nikolay Nikolov
b97570c8b3 + added the TWasmRelocationType enum 2021-09-20 04:39:10 +03:00
Nikolay Nikolov
bb0155141a * fixed warning 2021-09-20 04:25:40 +03:00
Nikolay Nikolov
92592be8e4 + print more symbol properties to the console 2021-09-20 04:16:25 +03:00
Nikolay Nikolov
628fcb9b1c + create the Type wasm section 2021-09-20 03:43:23 +03:00
Nikolay Nikolov
3c3120845a * fixed crash when writing a binary wasm module with a .bss section 2021-09-20 03:07:00 +03:00
Nikolay Nikolov
fced051f5f + implemented binary encoding of a_i32_load and a_i32_store without symbol 2021-09-20 03:00:37 +03:00
Nikolay Nikolov
b975317c51 + implemented the encoding of the block instruction without operands 2021-09-20 02:37:40 +03:00
Nikolay Nikolov
079e5ae151 + encode the end_function dummy instruction 2021-09-20 02:24:28 +03:00
Nikolay Nikolov
b7c638a717 + implemented binary encoding of the global.get and global.set instructions 2021-09-20 02:19:18 +03:00
Nikolay Nikolov
4a886e2019 * simplified operand access via the 'with' operator 2021-09-20 02:09:42 +03:00
Nikolay Nikolov
4dd44427c0 + implemented instruction encoding for local.get, local.set and local.tee 2021-09-20 02:03:47 +03:00
Nikolay Nikolov
2954588e4d + implemented binary output for the i32.const and i64.const with top_const parameter 2021-09-20 01:46:07 +03:00
Nikolay Nikolov
5b3efc4b38 + implemented encoding of the most simple wasm instructions 2021-09-20 01:24:39 +03:00
Nikolay Nikolov
455f603c8c + debug print the obj symbols to the console 2021-09-20 00:14:45 +03:00
florian
8cb92fd49a * simplify real expressions involving unary minus
+ test
2021-09-19 23:08:32 +02:00
Nikolay Nikolov
12796d176d + added the indirect function table to the imports section 2021-09-20 00:05:28 +03:00
Nikolay Nikolov
905f0b1f78 + add the __stack_pointer global import 2021-09-19 23:56:32 +03:00
Nikolay Nikolov
e8c3f5d6b0 + create the data section and the first entry of the import section 2021-09-19 23:43:45 +03:00
Nikolay Nikolov
2563cb6daa + start writing the wasm sections. The DataCount section is the first section to be implemented. 2021-09-19 22:46:54 +03:00
Nikolay Nikolov
e45d8578e8 + count the number of segments and assign segment indices to the wasm sections 2021-09-19 21:04:55 +03:00
Nikolay Nikolov
eea8f32772 + introduced TWasmObjSection.IsCode and .IsData 2021-09-19 20:56:06 +03:00
Nikolay Nikolov
698b5de389 + added TWasmObjSection class 2021-09-19 20:51:33 +03:00
Nikolay Nikolov
429454c8f4 + write some debug info to the console in the wasm obj writer 2021-09-19 20:47:20 +03:00
Nikolay Nikolov
967b721e4f + enabled the WASM32_INTERNALASM define when compiling with the lazarus project file 2021-09-19 20:09:25 +03:00
Nikolay Nikolov
c200bf5311 * fixed TWasmObjData.sectionname_gas 2021-09-19 19:41:27 +03:00
Nikolay Nikolov
fd4d6b8fc3 + write the wasm binary module header and version 2021-09-19 19:33:33 +03:00
Nikolay Nikolov
ffc5131087 + implemented TWasmObjData.sectionname 2021-09-19 19:24:16 +03:00
Nikolay Nikolov
59ea39ce75 + started the wasmbase unit (similar to elfbase and omfbase) 2021-09-19 18:49:50 +03:00
florian
fc41306c45 * fix alignment issues with -<single/double> when using SSE 2021-09-19 17:44:16 +02:00
mattias
a13694988d pastojs: fixed assign external const to int 2021-09-19 17:27:34 +02:00
mattias
a46261bc15 pastojs: fixed tests 2021-09-19 17:03:20 +02:00
mattias
6c1c4a66e8 pastojs: fixed invalidate directory cache 2021-09-19 16:56:36 +02:00
mattias
0b5c8030e4 pas2js: comment 2021-09-19 16:55:12 +02:00
Nikolay Nikolov
cc314e61a2 + started working on the WebAssembly internal assembler 2021-09-19 16:17:09 +03:00
mattias
f10fae66df pastojs: error on linklib options 2021-09-19 14:11:51 +02:00
mattias
d14c13fc72 pastojs: fixed compile tests 2021-09-19 14:04:29 +02:00
mattias
8a0fe7bc85 fcl-js: less hints 2021-09-19 14:04:07 +02:00
florian
5bcc530707 * handle -<mm reg.> more cleverly if SSE is used 2021-09-18 22:11:03 +02:00
florian
5a2d884fe3 * is_calljmp really means calls and jmp
* is_calljmpuncondret includes ret
2021-09-18 19:24:53 +02:00
florian
f78818e387 * some warnings fixed 2021-09-18 19:24:53 +02:00
Nikolay Nikolov
d3ec8f0d29 * generate an internalerror if there are values remaining on top of stack
at the end of a procedure. If the compiler is compiled with
  DEBUG_WASMSTACK, the previous asm comment message is emitted instead of
  internal error.
2021-09-18 18:10:57 +03:00
Nikolay Nikolov
324382d3a5 * use create_functype to determine accurately the number of parameters to
discard in twasmcallnode.do_release_unused_return_value. This fixes
  various stack tracking bugs when a constructor is invoking another
  constructor, etc.
2021-09-18 17:59:50 +03:00
Nikolay Nikolov
f7cc2d560c + initialize br_blocks in the thlcgwasm constructor 2021-09-18 16:29:19 +03:00
Nikolay Nikolov
a3610bfea1 + also added stack underflow check in thlcgwasm.incstack (in case stack
height was already negative in the beginning, due to previous underflow)
2021-09-18 16:28:14 +03:00
Nikolay Nikolov
d4bd1f1e9b * don't halt with an internal error, but add an asm comment instead, when a
stack underflow is detected in thlcgwasm.decstack and when the compiler is
  compiled with the DEBUG_WASMSTACK define
2021-09-18 16:28:14 +03:00
Nikolay Nikolov
58e4692795 * fixed thlcgwasm.g_adjust_stack_after_call after the removal of discardresult 2021-09-18 16:28:14 +03:00
Nikolay Nikolov
fa36141649 * fixed the stack tracking in twasmcallnode.do_release_unused_return_value for
ret_in_param function calls
2021-09-18 16:28:14 +03:00
florian
d292958665 * + .gitconfig with configuration for better diffing, needs a
git config --local include.path ../.gitconfig
    to be activated
2021-09-18 14:26:18 +02:00
J. Gareth "Kit" Moreton
962c5bd727 x86: MOV constant optimisation 2021-09-18 08:30:50 +00:00