florian
|
6e1bf4d040
* properly simplify not(<const. cbool>), resolves #25255
|
11 lat temu |
florian
|
cd235d8409
+ simplify shl/shr x, if (x mod bitsizeof(left))=0
|
11 lat temu |
florian
|
27f6fd1c2c
* use new shl/shr constant folding (of r26295) only if forinline is set
|
11 lat temu |
florian
|
89663e499b
* fold shifting of constants equally to cpus
|
11 lat temu |
sergei
|
6a08ca3f0b
* tmoddivnode.firstoptimize improvements/fixes:
|
11 lat temu |
nickysn
|
1312fd72f2
* tmoddivnode.pass_typecheck: in the case of unsigned div/mod positive_const, check also the upper bound of the const, so it doesn't get truncated
|
12 lat temu |
nickysn
|
70a0d2989c
* fixed tmoddivnode.pass_typecheck on 64-bit CPUs; I was wrong about uint64 div uint64 producing int64 on 64-bit CPUs; this fixes make cycle on e.g. x86_64
|
12 lat temu |
nickysn
|
7a15fd0444
* in the case of (uint8 div/mod small_positive_const), convert the const to unsigned, so that we don't do a 16-bit division on 8-bit CPUs
|
12 lat temu |
nickysn
|
3558766390
* first attempt to simplify tmoddivnode.pass_typecheck handling of all cpu native int sizes
|
12 lat temu |
nickysn
|
0dcbb4f1cc
* refactored tunaryplusnode.pass_typecheck as well
|
12 lat temu |
nickysn
|
a3117beb12
* refactored tunaryminusnode.pass_typecheck to handle all native int sizes generically, without ifdefs
|
12 lat temu |
nickysn
|
b79569ed2f
* Borland Pascal compatibility for 16-bit CPUs: int16 shl int32 now produces int32; this fixes writeln(longint) on the i8086-msdos target
|
12 lat temu |
nickysn
|
a9640ad9c6
+ insert type conversion for the div result when cpuneedsdiv32helper is used
|
12 lat temu |
nickysn
|
1dbca4c403
* 16-bit ALU fixes in tmoddivnode.pass_typecheck
|
12 lat temu |
nickysn
|
edc382aa76
* 16-bit ALU fixes in tshlshrnode.pass_typecheck
|
12 lat temu |
nickysn
|
4ac508a2b9
fixed bug in tunaryplusnode.pass_typecheck introduced in my previous commit r23737
|
12 lat temu |
nickysn
|
63ac46c74c
16-bit ALU fixes in tunaryminusnode.pass_typecheck and tunaryplusnode.pass_typecheck
|
12 lat temu |
florian
|
8e5bd14e3a
* overleft newline fix
|
12 lat temu |
sergei
|
12ad6704f6
- Removed a number of unused variables, reduces noise at compilation.
|
12 lat temu |
florian
|
5e1e42ec2b
* fixes support for cpus with cpunodefaultint for unary minus nodes
|
12 lat temu |
Jonas Maebe
|
9e0184884e
* correctly change the signdness information of tordconstnodes that are
|
13 lat temu |
Jonas Maebe
|
aee5380ae0
* merged trunk up to r20882
|
13 lat temu |
pierre
|
7101151b5c
Avoid internal error 2002042430 and check overloading before calling simplify method
|
13 lat temu |
Jonas Maebe
|
3b8ae840c1
* avoid range check errors when inlining not-nodes (mantis #21029)
|
13 lat temu |
florian
|
4765728fc4
* use SarInt64 to optimize 64 bit divs on 32 bit platforms, resolves #20998
|
13 lat temu |
pierre
|
da62249d6b
* Fix code to avoid use of unitialized rv local variable in tmoddivnode.simplify method
|
13 lat temu |
florian
|
6ec0f2549a
* factored load node flags out of node flags to gain space
|
13 lat temu |
Jonas Maebe
|
845f50448c
+ support for qword div/mod via helper (the JVM only supports signed
|
14 lat temu |
florian
|
d35d1ed357
+ initial support for pascal booleans with sizes 2, 4 and 8
|
14 lat temu |
sergei
|
2f7c779fa4
* tmoddivnode.simplify: made result definitely assigned and removed local var
|
14 lat temu |