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.
|
11 jaren geleden |
florian
|
d88d644925
+ support for FMA intrinsic: if there is no hardware support, the compiler throws an error.
|
11 jaren geleden |
svenbarth
|
256c852631
Fix for Mantis #23776.
|
11 jaren geleden |
Jonas Maebe
|
d452686c39
* moved pbestrealtype from symdef to symcpu
|
11 jaren geleden |
Jonas Maebe
|
b57c95043f
+ support overriding tdef/tsym methods with target-specific functionality:
|
11 jaren geleden |
Jonas Maebe
|
0edb7b2288
* fixed r27320 for darwin, as its mangled names get prefixed with '_'
|
11 jaren geleden |
svenbarth
|
a08e8ff982
Fix for Mantis #25929
|
11 jaren geleden |
florian
|
ab3f5744e0
* skip dec/inc type checking in unspecialized generic methods, resolves #25603
|
11 jaren geleden |
florian
|
e841027a48
* fixes handling of typed files in iso mode
|
11 jaren geleden |
nickysn
|
e1332304ef
* when converting Hi() to a shr node, convert the right shr const parameter to
|
11 jaren geleden |
Jonas Maebe
|
d2b8275b99
+ support for arbitrary encodings in readstr/writestr
|
11 jaren geleden |
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.
|
11 jaren geleden |
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.
|
11 jaren geleden |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
11 jaren geleden |
florian
|
412dc6586f
* the writestr helper initializes the target string, so mark it as being written
|
11 jaren geleden |
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.
|
12 jaren geleden |
sergei
|
dac8cbcefc
* Handle assigned(x) expressions entirely in first pass by converting them to "x<>nil", indicate that procedure variables should not be called by setting nf_load_procvar flag (which is already used with typeconvnode for exactly the same purpose). This allows to generate better code when assigned(x) is used on right side of assigments. Mantis #24572.
|
12 jaren geleden |
florian
|
a2a405581c
* don't call the ansistring val variant for a zero based array if not necessary to avoid ansistring usage in embedded applications
|
12 jaren geleden |
masta
|
b81f746e05
Inline Length(DynamicArray)
|
12 jaren geleden |
Jonas Maebe
|
fb8fb29574
* record/use the code page of string constants typecasted to an ansistring
|
12 jaren geleden |
sergei
|
87cfd86172
* Define SUPPORT_GET_FRAME for targets having "get_frame" as internal symbol (x86,arm and jvm, currently), removes need to enumerate these targets in every related conditional compilation directive and simplifies configuring this feature for other targets.
|
12 jaren geleden |
sergei
|
cc8772cf92
* sizeof(x), typeof(x): if "x" is typenode, request GOT for PIC because a global VMT label will be loaded.
|
12 jaren geleden |
florian
|
0968d095ed
* convert function like used new into a appropriate nodes only in pass_1 so proper error checking can be carried out, resolves #24495
|
12 jaren geleden |
nickysn
|
a86cb5c600
+ far pointer fixes in the internal compiler handling of ptr(const,const)
|
12 jaren geleden |
nickysn
|
b0f7786782
+ added support for special versions of near data pointers associated with a x86 segment register. They are supported on all x86 platforms: i8086, i386 and x86_64
|
12 jaren geleden |
florian
|
0e41df598e
* merge i8086 branch by Nikolay Nikolov
|
12 jaren geleden |
nickysn
|
3c6df5bedc
* use is_nativeuint() in ninl.get_str_int_func(), instead of the ifdef sequence
|
12 jaren geleden |
nickysn
|
526c3b9c9b
* val, str and read/write(ln) now use is_oversizedint/ord to determine which helper function to use; this also clears the warnings that prevented compilation of the 64-bit targets
|
12 jaren geleden |
nickysn
|
91038d6d0a
* prevent compilation warning due to function result not being set in tinlinenode.first_seg
|
12 jaren geleden |
nickysn
|
be761ba232
* sequences that check for cpu64bitaddr made to also check for cpu32bitaddr instead of cpu32bitalu. this fixes ppcjvm compilation
|
12 jaren geleden |