nickysn
|
f65f0b125a
+ optimize sar(0,x) to 0 and sar(-1,x) to -1
|
8 years ago |
nickysn
|
c028362f31
* added the missing pop directive after the push directive in handle_const_rox
|
8 years ago |
nickysn
|
855cd616f0
+ optimize rol(0, x) and ror(0, x) to 0; also optimize the case with all ones,
|
8 years ago |
nickysn
|
29429cca3c
+ mask the shift/rotate count value in the rol/ror/sar inline nodes, before
|
8 years ago |
nickysn
|
b17d97050f
+ also simplify rol(x,0) and ror(x,0) to x
|
8 years ago |
nickysn
|
8ac84ce43a
+ simplify sar(x,0) to x
|
8 years ago |
nickysn
|
d8ec0eff8e
+ implemented inline code generation for 64-bit sar (the SarInt64 intrinsic) on
|
8 years ago |
nickysn
|
5393daa994
+ added compile time const evaluation for Bsf/Bsr(const) as well
|
8 years ago |
nickysn
|
32395bbcbb
+ added compile time const evaluation optimization for PopCnt(const)
|
8 years ago |
nickysn
|
d7c8a081a1
+ enable using the cg64 ops OP_SHR/OP_SHL/OP_SAR on i386 for implementing the
|
8 years ago |
nickysn
|
b14f277e8f
+ use rtl helpers for 64-bit shl/shr/sar/rol/ror modify in place operations, on
|
8 years ago |
nickysn
|
f514657e45
+ implemented the sar/shl/shr/rol/ror inline modify-in-place nodes; the actual
|
8 years ago |
nickysn
|
8d885ffde6
+ write the inlinenumber of inline nodes in the node tree
|
8 years ago |
nickysn
|
256dc546ac
+ implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
|
8 years ago |
nickysn
|
fc59649a98
+ added inline nodes for handling and/or/xor in place (i.e. x:=x op y, where
|
8 years ago |
florian
|
6d6a45c034
* add/sub nodes with nf_internal set should not do overflow checking, resolves #30889
|
8 years ago |
florian
|
a705525e9b
* allow prec/succ on non-consecutive enums if pred/succ are generated internally
|
8 years ago |
florian
|
0bc1e7e23b
* "inherit" the nf_internal flag in tinlinenode.getaddsub_for_incdec
|
8 years ago |
florian
|
64e2c2b914
+ simplify succ/pred(<const>/x+/-x<const>)
|
8 years ago |
florian
|
000cffa8e3
* make more use of nf_internal to avoid range check errors
|
8 years ago |
florian
|
e4d60b2048
* factored out tinlinenode.getaddsub_for_incdec from first_IncDec so it can be used independently
|
8 years ago |
florian
|
9c81e90e08
+ extension to iso mode: reset/rewrite can take a file name as a second parameter
|
8 years ago |
nickysn
|
d6007d650a
* use tpointerdef.pointer_arithmetic_int/uint_type in tinlinenode.pass_typecheck
|
8 years ago |
nickysn
|
e847971477
* use the actual ValSInt type from the system unit, instead of ptrsinttype when
|
8 years ago |
svenbarth
|
26a2ddd3d6
+ extend Delete() intrinsics with Delphi compatible support for dynamic arrays. Also fixes Mantis #30306
|
9 years ago |
svenbarth
|
17bb29ddc3
Check for tf_winlikewidestring in the target's flags instead of relying on the target being a Windows system when determining whether the system as the WideString type that's separate from UnicodeString
|
9 years ago |
svenbarth
|
aaff6d0b97
Allow Delete() and Insert() to be used with generic types as arguments.
|
9 years ago |
svenbarth
|
a2c9c75e97
Convert Insert() and Delete() to intrinsics in preparation for dynamic array support for these two procedures.
|
9 years ago |
svenbarth
|
8c96fbed8f
Fix for Mantis #28832
|
9 years ago |
Jonas Maebe
|
abe8d44f37
* changed allocating a temp with type sinttype and size sinttype*dims for
|
9 years ago |