- Correct OUTER join: there is no separate OUTER JOIN; the syntax is FULL JOIN or FULL OUTER JOIN
- Support for optional OUTER in LEFT OUTER and RIGHT OUTER JOIN
git-svn-id: trunk@27910 -
- cosmetic changes (capitalization, comments)
- add tests for SET TERM, symbol literal parsing introduced in r27907
- Lazarus test project: default+debug build mode: no optimalization, more checks enabled
git-svn-id: trunk@27908 -
The code generator gets two new methods, a_mul_reg_reg_pair and g_div_const_reg_reg. The first one is basically 32x32 to 64 bits multiplication (or any other size, with result having twice the size of arguments), which must be implemented for every target. The second one actually does the job, its default implementation taken from powerpc64 and is sufficiently good for all three-address targets.
+ Enabled optimized division for MIPS target, target-specific changes are under 30 lines.
git-svn-id: trunk@27904 -
as well. Even though, in these models, the stack is dynamically allocated
(because it goes on top of the heap, but the heap is variable size), there are
still benefits:
1) the program will run on a larger stack during initialization, before the
actual stack (and heap) are ready
2) in cases, when the system is extremely low on memory, DOS will reject to
load the program if there's not enough memory for the stack the program
requires. This way the startup code can be further simplified by omitting
the 'not enough memory' check in the future (when we add the minimum heap
size to the executable reserved space as well).
git-svn-id: trunk@27903 -
"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 -
* "Shift" parameter for signed calculation changed from aint to byte, since it only holds values up to 63. It is consistent with unsigned routine.
git-svn-id: trunk@27883 -
pdecobj.pas, object_dec:
* Always check for genericdef and genericlist and not genericdef and ifnot then genericlist.
+ added test
git-svn-id: trunk@27877 -
ninl.pas, tinlinenode.pass_typecheck:
* if the first parameter of an Assert is a undefineddef node then accept it as well if the node is part of a generic function/method
+ added test
git-svn-id: trunk@27875 -
ptype.pas, read_named_type:
* array_dec & procvar_dec: set df_generic of the array/procvar if parse_generic was originally set
+ added test
git-svn-id: trunk@27874 -
ptype.pas:
* read_named_type: change hadtypetoken from a value to a var parameter and set it to false if a type helper is parsed so that calling code does not handle it as unique
* read_anon_type: handle that hadtypetoken is now a var parameter
pgenutil.pas, generate_specialization:
* handle that hadtypetoken of read_named_type is now a var parameter
+ added test
git-svn-id: trunk@27870 -