florian
|
f00a55ae08
+ tinlinenode.createintern
|
hace 10 años |
Jonas Maebe
|
67b8aceaee
* synchronized with privatetrunk till r30095
|
hace 10 años |
Jonas Maebe
|
68303b8df1
* add explicit check that argument of sizeof(x) is a simple load node (this
|
hace 10 años |
florian
|
0dfbba86f3
* properly firstpass nodes when inc(...) is converted into ...:=...+x, resolves #27471
|
hace 10 años |
florian
|
c9ba9665dd
* set nf_internal for if nodes generated by assert, prevent warning for assert(true); resolves #26467
|
hace 10 años |
nickysn
|
a9e1419ee3
* extracted the pass 1 handling of inc/dec to a virtual method first_IncDec
|
hace 10 años |
pierre
|
a77735d7af
Fix bug in in_const_swap_qword handling
|
hace 10 años |
Jonas Maebe
|
e8026ad8d3
* fixed the resultdef of length() intrinsic: it's ossinttype rather than
|
hace 11 años |
sergei
|
04d8e8a5dc
* On 64-bit targets, handle abs(int64) internally, using the same code as for abs(longint), i.e. without branching. Both generic and x86-specific pass 2 code is already suitable for different operand sizes, only type checking needs removal of excessive conversions to 32 bits.
|
hace 11 años |
svenbarth
|
34394d6925
Fix for Mantis #26180. Accept undefineddef as first parameter type of an Assert if it is used inside a generic.
|
hace 11 años |
sergei
|
274c2fc82f
* handle_ln_const: if/else branches were swapped, correct values are: ln(0)=-Inf and ln(-#)=NaN.
|
hace 11 años |
sergei
|
743326dc70
* abs(): when translated to generic fpc_abs_real() helper, typecast result back to original precision, similar to how it is done for sqr and sqrt. Fixes compilation on m68k after r27808 (m86k looks like the only target still needing this generic handling).
|
hace 11 años |
sergei
|
37625211f5
* Fixed sqrt procedure selection on arm-wince after r27809.
|
hace 11 años |
sergei
|
22e099d000
* sqrt(real): for targets with emulated floating point, invoke float64_sqrt or float32_sqrt from softfpu code. Testing on ARM CPU shows that float64_sqrt executes about twice faster and offers better accuracy than fpc_sqrt_real from genmath.inc.
|
hace 11 años |
sergei
|
fc5f45f65c
* sqr(real) and sqrt(real): remove typeconv node inserted by initial call processing (see explanation in comments), allowing these functions to be evaluated using precision of argument. In particular, sqrt(single) and sqrt(double) now emit 'sqrtss' and 'sqrtsd' instructions on x86 targets with -Cfsse3. Non-x86 targets already have the necessary support in code generators.
|
hace 11 años |
florian
|
d88d644925
+ support for FMA intrinsic: if there is no hardware support, the compiler throws an error.
|
hace 11 años |
svenbarth
|
256c852631
Fix for Mantis #23776.
|
hace 11 años |
Jonas Maebe
|
d452686c39
* moved pbestrealtype from symdef to symcpu
|
hace 11 años |
Jonas Maebe
|
b57c95043f
+ support overriding tdef/tsym methods with target-specific functionality:
|
hace 11 años |
Jonas Maebe
|
0edb7b2288
* fixed r27320 for darwin, as its mangled names get prefixed with '_'
|
hace 11 años |
svenbarth
|
a08e8ff982
Fix for Mantis #25929
|
hace 11 años |
florian
|
ab3f5744e0
* skip dec/inc type checking in unspecialized generic methods, resolves #25603
|
hace 11 años |
florian
|
e841027a48
* fixes handling of typed files in iso mode
|
hace 11 años |
nickysn
|
e1332304ef
* when converting Hi() to a shr node, convert the right shr const parameter to
|
hace 11 años |
Jonas Maebe
|
d2b8275b99
+ support for arbitrary encodings in readstr/writestr
|
hace 11 años |
sergei
|
8ecad469a6
* Reverted r26256 since it produced wrong results if argument of inc/dec is actually unaligned. Added description of the issue and slightly increased node complexity at which address is cached, so operations on record/class fields do not take address.
|
hace 11 años |
sergei
|
b376f56bf3
* Use typed pointer to store address of x when processing inc(x)/dec(x) with range checking enabled. This preserves alignment of x and prevents generating unaligned code on alignment-sensitive targets.
|
hace 11 años |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
hace 11 años |
florian
|
412dc6586f
* the writestr helper initializes the target string, so mark it as being written
|
hace 11 años |
sergei
|
9ad98a2c4d
* Handle "SarInt64" always as internal procedure, introduced virtual method tinlinenode.first_sar that by default converts it into call to "fpc_sarint64" unless target CPU is 64-bit. This provides a point to insert target-specific optimizations.
|
hace 11 años |