Commit Graph

27436 Commits

Author SHA1 Message Date
Nikolay Nikolov
4d5479741d + introduced TWasmValidationStacks.PushVals 2024-01-31 02:11:59 +02:00
Nikolay Nikolov
2d5c1d43cf + introduced TWasmValidationStacks.PopVal(expect) 2024-01-31 02:10:05 +02:00
Nikolay Nikolov
d575aa5240 + introduced TWasmBasicTypeList 2024-01-31 01:55:38 +02:00
Nikolay Nikolov
1786875319 + implemented TWasmValueStack.GetCount
+ implemented TWasmControlStack.GetCount
+ implemented TWasmValidationStacks.PopVal
2024-01-31 01:52:05 +02:00
Nikolay Nikolov
3f0853692c + implemented methods in TWasmControlStack: Push, Pop, GetItems, SetItems 2024-01-31 01:20:24 +02:00
Nikolay Nikolov
506634f261 * TWasmControlFrame changed to a record 2024-01-31 01:05:02 +02:00
florian
ff3b4adc27 + more CPU and FPU flags added 2024-01-30 22:55:42 +01:00
Pierre Muller
529b64790b Avoid 'false' warning: Local variable "gap_index" does not seem to be initialized on cycle with -O3 option 2024-01-29 18:15:28 +01:00
J. Gareth "Curious Kit" Moreton
bac4ca19e7 * Fixed internal error 2022041701 number clash (LLVM changed to 2022041730) 2024-01-28 09:34:14 +00:00
florian
b32573d1eb * inserting $result into the symtables should never trigger a duplicate symbol error, resolves #40608 2024-01-27 22:05:31 +01:00
J. Gareth "Curious Kit" Moreton
b514e979bd * Fixed issue where OptPass2CMP and OptPass2TEST didn't drop out on labels etc. 2024-01-27 19:00:50 +00:00
J. Gareth "Curious Kit" Moreton
2e441609be * Fixed issue where TryCmpCMovOpts produced bad
code if the last MOV got moved.
2024-01-27 19:00:50 +00:00
Pierre Muller
11b0b9dc57 Use reverse_byte to write constant sets in cross-endian configuration 2024-01-25 11:04:42 +00:00
Pierre Muller
5eda6e027d * Add internal_endian field to tppudumpfile class
* Check that this new field is indeed set, once only, by
    header flags.
  * Use this flag to extract high and low parts of floatx80
    record for soft floatx80 support.
2024-01-25 11:00:28 +00:00
Pierre Muller
71ba76532b * Fix writing of 'comp' type depending on FPC_COMP_IS_INT64 macro.
* Fix writing of floatx80 on systems with gaps due to alignment requirements.
2024-01-25 10:17:11 +00:00
Pierre Muller
8ae28b4846 Fix writing of low qword of floatx80 real type into 10-byte array on big endian systems 2024-01-25 10:13:21 +00:00
Pierre Muller
3db060e47a Use writeUInt32LE/writeUInt16LE method to write multi-byte integer in importlib method in t_win unit (as all supported CPUs are little endian) 2024-01-25 01:01:06 +00:00
florian
c4fc5fc916 * disable OptPass2Test and OptPass2CMP for now as it seems to result in buggy code 2024-01-23 22:11:59 +01:00
Sven/Sarah Barth
981ec64666 * fix #40594: when assigning a nested function to a function reference don't check for the nested procvars parameter, because nested functions can be treated like anonymous functions here
+ added test
2024-01-22 22:27:33 +01:00
Sven/Sarah Barth
feb79e0068 - the setter for tloadnode.procdef is not used, so remove it so that that tloadnode.setprocdef can be extended 2024-01-22 22:27:33 +01:00
J. Gareth "Curious Kit" Moreton
46fa168d43 * Code that checks for divisions against -1 is now not inserted if
it's not necessary (e.g. no downsizing)
2024-01-22 21:17:05 +00:00
J. Gareth "Curious Kit" Moreton
0943458713 * More efficient if-statement construction in tmoddivnode.simplify 2024-01-22 21:17:05 +00:00
Sven/Sarah Barth
47c21fd1bc * fix #40593: don't check for a static method when assigning a methodpointer to a function reference
+ added test
2024-01-22 19:44:36 +01:00
Nikolay Nikolov
6aa49038a5 * inverted the indices of TWasmValueStack, so that item 0 is top of stack 2024-01-22 11:02:32 +02:00
Nikolay Nikolov
fadf43a33b + added TWasmControlStack and frame. Not used, yet. Will be used in the future
for WebAssembly stack tracking and validation.
2024-01-22 10:15:43 +02:00
J. Gareth "Curious Kit" Moreton
0962578511 * Streamlined label referencing 2024-01-21 16:45:38 +00:00
Charles Averill
bb2e2f83e9 Add struct field names to subscriptn nodes in parse tree output 2024-01-21 16:39:09 +00:00
Charles Averill
cd9ed54d35 Add string constant values to stringconstn nodes in parse tree output 2024-01-21 16:39:09 +00:00
florian
7bbd33bcd6 * last commit was not complete, fixed 2024-01-21 15:26:21 +01:00
florian
79f6ee538d * fix compilation on 32 bit hosts 2024-01-21 15:25:36 +01:00
J. Gareth "Curious Kit" Moreton
74625648cf * Vectors of string constants are now simplified into ordinal constants 2024-01-21 11:56:09 +00:00
Pierre Muller
7595dd3624 Also swap word/dword in case of cross-endian compilation 2024-01-20 21:35:24 +01:00
Pierre Muller
9648463eb5 Add MaybeSwap for coffsectionrec records (needed for cross-endian compilation) 2024-01-20 21:35:24 +01:00
florian
615e9bdafd * copyright year for compiler logo updated 2024-01-20 20:54:52 +01:00
Onur ERÇELEN
44af9d87de Upload New File 2024-01-20 19:50:44 +00:00
Nikolay Nikolov
42f447257d + introduced TWasmValueStack for tracking the state of the WebAssembly stack. Not used, yet, but will be in the future. 2024-01-17 11:21:48 +02:00
Nikolay Nikolov
04a077707c * fix warning 2024-01-17 09:43:51 +02:00
Nikolay Nikolov
03fc5d2323 + added a zero/unitialized/unknown value to TWasmBasicType: wbt_Unknown 2024-01-17 08:32:10 +02:00
florian
4867d48e99 + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
Nikolay Nikolov
f65e4f2385 * fixed bug in the handling of WebAssembly goto 2024-01-16 08:44:06 +02:00
Sven/Sarah Barth
1ffef6ed41 * print the whole symbol name for hint messages 2024-01-15 22:29:47 +01:00
Pierre Muller
4c330f2799 Issue internal error in def type is errordef 2024-01-15 19:54:04 +01:00
florian
5f42443db3 * several issues with the in_val_x optimization fixed 2024-01-14 18:58:08 +01:00
J. Gareth "Curious Kit" Moreton
01246e4d30 * Fixed issue where Val shortcutting would not compile under 32-bit systems 2024-01-14 03:43:39 +00:00
J. Gareth "Curious Kit" Moreton
6597f02ebc * The "Val" intrinsic is now simplified for string constants akin to a
pure function.
2024-01-13 22:24:08 +00:00
Nikolay Nikolov
a9316b1953 - removed the DEBUG_WASM_GOTO define from the .lpi file 2024-01-14 00:21:40 +02:00
Nikolay Nikolov
1fecb46c52 - removed the ENABLE_WASM_INTERNAL_LINKER define from the .lpi file 2024-01-12 21:17:49 +02:00
Pierre Muller
637c34571e Avoid range check error in AddNormalStringDef 2024-01-10 23:24:46 +01:00
Nikolay Nikolov
a8b4c0772c * fixed bug that caused 'c in ['a'..'z']' to fail on the WebAssembly target, when code is compiled with {$packset 1} 2024-01-10 03:11:13 +02:00
Karoly Balogh
19fe377455 m68k: fix tw40182 test 2024-01-09 10:57:11 +01:00