Jonas Maebe
|
7af95cbf06
* LLVM does not support 128 bits arithmetic on 32 bit platforms, which we
|
6 years ago |
Jonas Maebe
|
04d295f186
* first step towards supporting 32 bit targets with the LLVM code generator:
|
6 years ago |
Jonas Maebe
|
d1361ca6ed
* fixed adjustments of lower/upper bounds in range test optimization in case
|
6 years ago |
yury
|
4357caaad8
* Removed unused local vars.
|
6 years ago |
florian
|
116f36fe56
* avoid range check errors
|
6 years ago |
Jonas Maebe
|
0b246f3dbd
* converted Boolean8 to an internal type, and mapped Boolean to the
|
6 years ago |
pierre
|
293973b306
Add missing setting of expectloc for multiplications
|
6 years ago |
florian
|
352fb866ef
* is_range_test returns false if "lower" bound is greater than "upper" bound
|
6 years ago |
florian
|
a34d4e715c
Merged riscv_new branch
|
6 years ago |
florian
|
a21397e356
+ based on a patch by Laksen, optimize (v>=x) and (v<=y) into (v-x)<(y-x)
|
6 years ago |
svenbarth
|
32c307e9ce
* fix for Mantis #34021: if one of the two operators is an array constructor try to use an operator overload for that first before converting it to a set
|
7 years ago |
florian
|
32a58ba7d1
* might_have_sideeffects gets flags: if mhs_exceptions is passed, nodes which might cause an exception are considered as having a side effect
|
7 years ago |
florian
|
52846df241
* fixed condition in getbestreal
|
7 years ago |
florian
|
0c6cf12fbf
+ support for the directive $EXCESSPRECISION
|
7 years ago |
svenbarth
|
fa78bb0e89
* warn if the compiler hides an eventual "+" operator overload if modeswitch ArrayOperators is active
|
7 years ago |
svenbarth
|
97acf24290
+ add a new modeswitch ArrayOperators which is set by default in Delphi modes that enables the internal array operators (currently only "+")
|
7 years ago |
svenbarth
|
9b45f58c0b
+ add flags that allow checking for overloads with isbinaryoverloaded() and isunaryoverloaded() without modifying the passed in node or even checking for normally non-overloadable operators
|
7 years ago |
svenbarth
|
199b5809a3
* optimize "dynarr := dynarr + [elem]" to "Insert(elem, dynarr, High(SizeInt))" and "dynarr := [elem] + dynarr" to "Insert(elem, dynarr, 0)" (we need to do this in the typecheck of taddnode as otherwise the array constructor is already converted)
|
7 years ago |
florian
|
71e71ad267
* fix currency division on non x86 32 bit targets
|
7 years ago |
florian
|
b2825f2467
* scale constants if possible before currency multiplications to avoid overflows, resolves #33439
|
7 years ago |
florian
|
c230f81719
+ support for <dyn. array>+<dyn. array>, resolves #30463
|
7 years ago |
Jonas Maebe
|
1934285c20
* don't convert "int64(sint32) * cardinal_const" into a 32x32->64
|
7 years ago |
pierre
|
59edd81a26
Disable some code using bestrealrec if macro FPC_SOFT_FPUX80 is defined
|
7 years ago |
Károly Balogh
|
b755524c38
made it possible to override the decision from the cgs, if a certain muln needs a helper
|
8 years ago |
nickysn
|
34113b930b
* removed the checkoverflow: boolean parameter of the software mul helpers;
|
8 years ago |
Károly Balogh
|
3e8ee48458
m68k: define cpurox and enabled the rotate-related optimizations on CPUs which support rotate instructionsoptions.pas
|
8 years ago |
nickysn
|
efc5e339d0
* use an enum instead of integer constants to represent inline numbers
|
8 years ago |
florian
|
b1dff29cbf
* removed unused units
|
8 years ago |
nickysn
|
546e993c25
* use resultdef for the type of the resulting zero const from the '0*x' and
|
8 years ago |
nickysn
|
f26a844b19
* only do the '0*x' and '0 and x' optimization if x has no side effects (except
|
8 years ago |