U compiler/dbgdwarf.pas
--- Recording mergeinfo for merge of r43264 into '.':
U .
--- Merging r45050 into '.':
U compiler/defutil.pas
U compiler/nmat.pas
--- Recording mergeinfo for merge of r45050 into '.':
G .
--- Merging r45051 into '.':
U compiler/scanner.pas
--- Recording mergeinfo for merge of r45051 into '.':
G .
--- Merging r45052 into '.':
G compiler/scanner.pas
--- Recording mergeinfo for merge of r45052 into '.':
G .
--- Merging r45053 into '.':
G compiler/scanner.pas
A tests/tbs/tb0670.pp
--- Recording mergeinfo for merge of r45053 into '.':
G .
--- Merging r47601 into '.':
G compiler/scanner.pas
--- Recording mergeinfo for merge of r47601 into '.':
G .
--- Merging r47602 into '.':
U compiler/scandir.pas
U tests/tbs/tb0596.pp
--- Recording mergeinfo for merge of r47602 into '.':
G .
git-svn-id: branches/fixes_3_2@47804 -
C compiler/nmat.pas
--- Recording mergeinfo for merge of r43347 into '.':
G .
--- Merging r43436 into '.':
U compiler/defutil.pas
U compiler/nadd.pas
U compiler/ncnv.pas
U compiler/ncon.pas
U compiler/ngtcon.pas
U compiler/ninl.pas
G compiler/nmat.pas
U compiler/nutils.pas
U compiler/pstatmnt.pas
--- Recording mergeinfo for merge of r43436 into '.':
G .
--- Merging r43438 into '.':
A tests/test/tinlrange1.pp
A tests/test/tinlrange2.pp
A tests/test/tinlrange3.pp
--- Recording mergeinfo for merge of r43438 into '.':
G .
--- Merging r43451 into '.':
U tests/test/tinlrange1.pp
--- Recording mergeinfo for merge of r43451 into '.':
G .
--- Merging r43497 into '.':
C compiler/nmat.pas
A tests/test/tinlrange4.pp
--- Recording mergeinfo for merge of r43497 into '.':
G .
git-svn-id: branches/fixes_3_2@43498 -
* disable fix for #33439 during bootstrapping with 3.0.x, as 3.0.x cannot compile the currency division without the fix above
git-svn-id: trunk@38558 -
tmoddivnode.firstoptimize, replaced tordconstnode(right).value-1 with
tcgint((qword(1) shl power)-1), so that it becomes independent from the sign
of right, so that in the future, we can also apply this optimization for
negative power-of-2 divisors as well (only a unary minus node would have to
be inserted in this case).
git-svn-id: trunk@36845 -
lower CPUs. Instead of the (sar(temp,sizeof(temp)*8-1) and 1) expression, use
the equivalent, but simpler (temp shr (sizeof(temp)*8-1))
git-svn-id: trunk@36839 -
shiftval to left.resultdef.size*8-1, instead of 31, so that it shifts by 15 or
7 on 16-bit and 8-bit CPUs, when the integer type is small.
git-svn-id: trunk@36820 -
* compinnr.inc include file converted to a unit
* inline number field size stored in ppu increased from byte to longint
* inlines in the parse tree (when written with the -vp option) now printed with
their enum name, instead of number
git-svn-id: trunk@36174 -
* tmoddivnode.first_moddivint does not force a 32 bit helper, the used helper depends now on the resultdef type set by tmoddivnode.pass_typecheck
git-svn-id: trunk@31195 -
"sign:=left sar sizeof(left)*8-1; result:=(((left xor sign)-sign) and 2**N-1) xor sign)-sign;"
This solution yields larger code than one suggested by Mantis #21152, however its speed on i386 is approximately the same, and it is also suitable for all operand sizes, all powers of two and all targets.
git-svn-id: trunk@27891 -
side constant with 31 (instead of 15 or 7), because that's how the 16-bit and
8-bit x86 shl/shr instructions behave (even on 16-bit CPUs like 286). The
change does not affect 32-bit and 64-bit platforms, because there the shift
is always done in at least 32 bits.
git-svn-id: trunk@27638 -
nmat.pas:
* correctly disable type checks if one of the arguments for MOD, DIV, SHR, SHL, NOT, -X and +X is a generic type parameter
+ added tests
git-svn-id: trunk@27535 -
* Fixed misplaced parentheses, which were preventing optimization of "unsigned mod power_of_two" into "and" expressions.
* Handling "signed div power_of_two": properly delete the temp node, removes warnings when compiled with "-dEXTDEBUG". This however requires another temp node for storing the result.
* Replaced direct calls to "fpc_sarint64" with inline nodes (in_sar_x_y), allowing target-specific optimizations to take place.
git-svn-id: trunk@25877 -