Commit Graph

27451 Commits

Author SHA1 Message Date
florian
ac6dc582be + also add x86-64 as cpu type (gcc compatibility) 2024-02-03 22:40:54 +01:00
J. Gareth "Curious Kit" Moreton
3882066f23 * Speed optimisations for peephole register tracking functions 2024-02-03 20:30:46 +00:00
J. Gareth "Curious Kit" Moreton
05d6e20acc * New Boolean "SetAndTest" utility function 2024-02-03 20:30:46 +00:00
florian
d44cae14f5 * decide more sophisticately if a temp. var is needed for fixing #40618 2024-02-02 22:00:22 +01:00
Sven/Sarah Barth
27a2a04279 * fix #40618: apply adjusted patch by Евгений Савин (@jack128a) so that a non-load case expression is loaded into a temp first when converting a single range branch into an if-clause
+ added test
2024-02-02 15:55:40 +01:00
florian
f8dbb09a46 * fixed some issues with the x86-64 instruction versions
* use more of the constants
2024-02-01 22:08:27 +01:00
Nikolay Nikolov
e53620ebdb * fix warnings 2024-02-01 01:20:15 +02:00
florian
ae465fa8dc + introduce x86-64 microarchitecture levels for cpu and fpu flags 2024-01-31 22:32:57 +01:00
Nikolay Nikolov
5e0dcfb49b + introduced TWasmValidationStacks.Unreachable 2024-01-31 02:57:19 +02:00
Nikolay Nikolov
24315a7f28 + introduced TWasmValidationStacks.label_types 2024-01-31 02:45:43 +02:00
Nikolay Nikolov
f3e667da42 + introduced TWasmValidationStacks.PopCtrl 2024-01-31 02:38:09 +02:00
Nikolay Nikolov
4cb97dcdb3 * fixed warning 2024-01-31 02:33:31 +02:00
Nikolay Nikolov
4cc5cf4d0e + introduced TWasmValidationStacks.PushCtrl 2024-01-31 02:25:44 +02:00
Nikolay Nikolov
18c6e13f45 * fixed warning 2024-01-31 02:19:03 +02:00
Nikolay Nikolov
064adbf3f8 + introduced TWasmValidationStacks.PopVals 2024-01-31 02:15:09 +02:00
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