Commit Graph

24574 Commits

Author SHA1 Message Date
nickysn
a84b091b5e * makefiles regenerated after fpcmake update
git-svn-id: branches/wasm@47985 -
2021-01-02 22:15:42 +00:00
nickysn
05d66eddfc * synchronized with trunk
git-svn-id: branches/wasm@47982 -
2021-01-02 22:06:17 +00:00
florian
7de94e7a1d * properly fold string+string const+string const., resolves #38267
git-svn-id: trunk@47977 -
2021-01-02 17:18:54 +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
fc95e7f22d * fixes in thlcgwasm.resize_stack_int_val
git-svn-id: branches/wasm@47974 -
2021-01-02 14:42:10 +00:00
nickysn
189c4025c2 - removed spurious decstack/incstack in thlcgwasm.resize_stack_int_val
git-svn-id: branches/wasm@47972 -
2021-01-02 13:47:53 +00:00
nickysn
0e23b9288c * fixed thlcgwasm.a_load_loc_stack for LOC_REFERENCE
git-svn-id: branches/wasm@47971 -
2021-01-02 13:39:16 +00:00
nickysn
5a2a9f1dcc * simplified a_call_name and avoid internal errors, inherited from the jvm code generator
git-svn-id: branches/wasm@47969 -
2021-01-02 12:44:34 +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
56f65799d3 + functype creation moved to tcpuprocdef.create_functype
git-svn-id: branches/wasm@47964 -
2021-01-02 12:06:05 +00:00
nickysn
763ca253c1 + introduced the TWasmFuncType class - used to hold a Wasm function signature
git-svn-id: branches/wasm@47963 -
2021-01-02 11:54:41 +00:00
nickysn
80fd387a51 - removed the tcpupropertysym overrides from the jvm, because they're not needed for wasm
git-svn-id: branches/wasm@47959 -
2021-01-02 08:59:12 +00:00
nickysn
b01a0a7018 + define the CPUWASM32 system macro for wasm32
git-svn-id: branches/wasm@47955 -
2021-01-02 07:54:53 +00:00
nickysn
017b7903cf + added validation for the base and index registers in taicpu.op_ref
git-svn-id: branches/wasm@47951 -
2021-01-02 07:26:43 +00:00
nickysn
64a02834ff - commented out thlcgwasm.g_copyvalueparas
git-svn-id: branches/wasm@47950 -
2021-01-02 07:22:01 +00:00
nickysn
91ed9f12ac - removed unused local var from thlcgwasm.prepare_stack_for_ref
git-svn-id: branches/wasm@47949 -
2021-01-02 06:55:44 +00:00
nickysn
c24446c037 * copy all wasm parameters to the local stack, so that their address can be taken
git-svn-id: branches/wasm@47947 -
2021-01-02 06:36:20 +00:00
nickysn
40e4dadcdf - removed wrong comment from tcpuparamanager.create_paraloc_info_intern
git-svn-id: branches/wasm@47946 -
2021-01-02 06:23:41 +00:00
nickysn
c470e851ba + generic implementation of thlcgwasm.a_loadaddr_ref_reg that should handle all possible combinations of base, index
and scalefactor

git-svn-id: branches/wasm@47945 -
2021-01-02 06:08:38 +00:00
nickysn
e4f4f25c44 + handle any base and no index in the second if case in thlcgwasm.a_loadaddr_ref_reg
git-svn-id: branches/wasm@47944 -
2021-01-02 05:52:19 +00:00
nickysn
2084fede95 + handle all constant address (regardless of whether they are relative to a symbol or not) in thlcgwasm.a_loadaddr_ref_reg
git-svn-id: branches/wasm@47943 -
2021-01-02 05:48:40 +00:00
nickysn
ded9afb787 + check and generate an internal error if you attempt to take the address of a reference that exists in the local
stack in thlcgwasm.a_loadaddr_ref_reg

git-svn-id: branches/wasm@47942 -
2021-01-02 05:44:19 +00:00
nickysn
a1f5b57070 + also check for ref.index and ref.symbol in the NR_LOCAL_FRAME_POINTER_REG base case in thlcgwasm.a_loadaddr_ref_reg
git-svn-id: branches/wasm@47941 -
2021-01-02 05:40:17 +00:00
nickysn
46bf123fcd + also ensure that ref.base and ref.index are not set for symbols in thlcgwasm.a_loadaddr_ref_reg
git-svn-id: branches/wasm@47940 -
2021-01-02 05:35:31 +00:00
nickysn
15387514b4 * changed the formatting in thlcgwasm.a_loadaddr_ref_reg to fit the style of the other compiler code
git-svn-id: branches/wasm@47939 -
2021-01-02 05:30:22 +00:00
nickysn
88d42344db - removed comment thlcgwasm.a_loadaddr_ref_reg that is not true for wasm
git-svn-id: branches/wasm@47938 -
2021-01-02 05:25:32 +00:00
nickysn
f87f9969a7 * synchronized with trunk
git-svn-id: branches/wasm@47937 -
2021-01-02 04:55:50 +00:00
florian
e6037961e3 * refactored constant folding code
git-svn-id: trunk@47935 -
2021-01-01 21:58:12 +00:00
florian
97abf6b495 * first part of fixing #38267: do not bail out early during constant folding
if the constant is 1 or -1

git-svn-id: trunk@47933 -
2021-01-01 15:26:13 +00:00
nickysn
acb13602ea * fixed getting the address of local variables
git-svn-id: branches/wasm@47929 -
2020-12-31 18:36:45 +00:00
nickysn
31bc357c1b * fixed internal error 2019083002 with e.g. inc(local)
git-svn-id: branches/wasm@47927 -
2020-12-31 18:23:49 +00:00
florian
b4a6c22234 * do not check inlined exit nodes for unset results, resolves #38259
git-svn-id: trunk@47926 -
2020-12-31 15:52:02 +00:00
florian
3482121831 * patch by Christo Crause: Fix missed optimization opportunities, resolves #38285
git-svn-id: trunk@47925 -
2020-12-31 15:33:39 +00:00
nickysn
46a09bd8e4 * fixed thlcgwasm.a_load_ref_ref for NR_EVAL_STACK_BASE source references
git-svn-id: branches/wasm@47921 -
2020-12-31 08:11:55 +00:00
nickysn
361594bafd * synchronized with trunk
git-svn-id: branches/wasm@47920 -
2020-12-31 04:00:04 +00:00
joost
32999fbaba * Fixed missing slash in fppkg.cfg when installed in the root
git-svn-id: trunk@47913 -
2020-12-30 15:41:44 +00:00
nickysn
253e64f66b + allocate 'noreuse' locals in allocbasepointer and allocframepointer
git-svn-id: branches/wasm@47898 -
2020-12-30 04:02:43 +00:00
nickysn
158da03691 + introduced TWasmLocal.allocnoreuse
git-svn-id: branches/wasm@47897 -
2020-12-30 03:46:32 +00:00
nickysn
57b976535f * synchronized with trunk
git-svn-id: branches/wasm@47896 -
2020-12-29 23:50:34 +00:00
florian
edfbf2ce30 * correctly handle inlined exits in dfa, resolves #38259
git-svn-id: trunk@47894 -
2020-12-29 22:35:33 +00:00
florian
eb7702bea4 + implement align directive for records, resolves #28927
git-svn-id: trunk@47892 -
2020-12-29 18:19:35 +00:00
Jonas Maebe
2fc672452d * fixed error in load_fpu_location triggered by round() (fixes webtbs/tw32671
on i386 after r47854)

git-svn-id: trunk@47890 -
2020-12-29 13:07:41 +00:00
nickysn
08580ed628 + introduced ttgwasm(tg).allocframepointer and .allocbasepointer
git-svn-id: branches/wasm@47888 -
2020-12-29 06:08:40 +00:00
nickysn
dc151465c5 * replace NR_LOCAL_FRAME_POINTER_REG with tcpuprocdef(current_procinfo.procdef).frame_pointer_ref in tcpuprocinfo.postprocess_code instead of inside the register allocator
git-svn-id: branches/wasm@47887 -
2020-12-29 05:52:36 +00:00
nickysn
4d0909d4d3 * replace NR_LOCAL_FRAME_POINTER_REG with tcpuprocdef(current_procinfo.procdef).frame_pointer_ref in the wasm32 register allocator
git-svn-id: branches/wasm@47884 -
2020-12-29 04:48:03 +00:00
nickysn
4a1c295955 - removed the ttgwasm.getlocal override, so that local variables are allocated on the linear stack
git-svn-id: branches/wasm@47883 -
2020-12-29 03:20:55 +00:00
nickysn
96de6c4b96 * synchronize with trunk
git-svn-id: branches/wasm@47877 -
2020-12-28 18:45:24 +00:00