Jeppe Johansen
3cb9be73bc
Moved tcontrollerdatatype out into cpuinfo.
...
Added cputype and fputype info to tcontrollerdatatype arrays.
git-svn-id: trunk@31574 -
2015-09-07 20:36:54 +00:00
florian
de17e9fa1c
+ cpu capability CPUX86_HAS_CMOV
...
git-svn-id: trunk@29776 -
2015-02-21 20:47:40 +00:00
florian
5c67fcc43f
+ change always floating point divisions into multiplications if they are a power of two,
...
this is an exact operation so it is always allowed
* change only divisions by normal numbers into multiplications
git-svn-id: trunk@29085 -
2014-11-16 20:47:38 +00:00
Tomas Hajny
3ee3542744
* boolean constant instead of IFDEFs for detection of microcontroller support
...
git-svn-id: trunk@29052 -
2014-11-10 12:34:59 +00:00
florian
d88d644925
+ support for FMA intrinsic: if there is no hardware support, the compiler throws an error.
...
Currently it is implemented only for x86-CPUs supporting the FMA extension. While it would
be possible to implement it in software or simulate fma(<single>,<single>,<single>) using
double operations, it makes no sense in my opinion to do so.
git-svn-id: trunk@27564 -
2014-04-13 19:21:54 +00:00
florian
0d6cc46a5e
+ CPU type corei
...
git-svn-id: trunk@26790 -
2014-02-16 08:27:27 +00:00
florian
d8c0f11ff9
+ cs_userbp optimizer switch, so on x86-64 the compiler can make use of rbp if it is not needed as frame pointer
...
git-svn-id: trunk@26633 -
2014-01-30 19:44:17 +00:00
florian
060aa2a7fe
+ SSE and AVX unit cpu flags
...
git-svn-id: trunk@26587 -
2014-01-26 12:37:52 +00:00
florian
a752e3542d
+ more x86 cpu flags
...
git-svn-id: trunk@26513 -
2014-01-18 21:03:09 +00:00
florian
e210d5f30e
+ cpu_capabilites for x86_64 and i386
...
* take advantage of bmi2 instruction rorx
git-svn-id: trunk@26482 -
2014-01-16 21:47:28 +00:00
florian
e81d2d1f3b
* basic avx support for floating point operations (use -Cfavx to activate)
...
git-svn-id: trunk@24896 -
2013-06-14 20:03:01 +00:00
florian
5b13ef1025
+ added sse/avx instructions sets introduced during the last years
...
git-svn-id: trunk@22287 -
2012-09-02 20:55:12 +00:00
florian
4d86d25c6c
* -O4 switch for optimizations which are correct but which might have unexpected effects
...
like field reordering (possible problems cracker classes) or using ebp as normal register (broken
stack traces from dump_stack)
+ niln is also valid in a cse domain
* parameters passed by reference shall have a complexity >1
* load nodes from outer scopes shall have a complexity >1
* better cse debugging
+ more node types added to cse
* consider parameters passed by reference in cse
* take care of cse in parameters in simple cases
git-svn-id: trunk@22050 -
2012-08-09 18:58:54 +00:00
florian
b330bba0bc
+ introduce -Oofastmath
...
* limit the application of the tree transformation introduced in r21986 to safe cases and -Oofastmath
git-svn-id: trunk@22040 -
2012-08-08 19:35:45 +00:00
Jonas Maebe
3798b79fd7
+ optimization that (re)orders instance fields of Delphi-style classes in
...
order to minimise memory losses due to alignment padding. Not yet enabled
by default at any optimization level, but can be (de)activated separately
via -Oo(no)orderfields
o added separate tdef.structalignment method that returns the alignment
of a type when it appears in a record/object/class (factors out
AIX-specific double alignment in structs)
o changed the handling of the offset of a delegate interface
implemented via a field, by taking the field offset on demand
rather than at declaration time (because the ordering optimization
causes the offsets of fields to be unknown until the entire
declaration has been parsed)
git-svn-id: trunk@21947 -
2012-07-22 16:47:19 +00:00
florian
5acf377e31
* enable node cse for all cpus as level 2 optimization
...
git-svn-id: trunk@14703 -
2010-01-17 12:28:28 +00:00
Jonas Maebe
f104e849d8
* disabled fpu_soft for x86_64 since activating it only leads to internal
...
errors (see mantis #15310 )
git-svn-id: trunk@14417 -
2009-12-11 23:06:43 +00:00
Jonas Maebe
0cc1e24f98
* fpu_sse3 also supports scalar single/double
...
git-svn-id: trunk@14395 -
2009-12-10 19:56:29 +00:00
Jonas Maebe
62c1781bea
+ mw_pascal calling convention support for ARM, ppc64 and x86_64: identical
...
to cdecl, except that all const record parameters are passed by reference
(required for Mac OS X interfaces)
git-svn-id: trunk@14114 -
2009-11-08 13:42:11 +00:00
florian
f32831c44a
* fixed assembling of fisttp of sse3 instruction set
...
+ sse3 optimized trunc() using fisttp
+ -Cfsse3 for x86-64
git-svn-id: trunk@8962 -
2007-10-27 20:50:46 +00:00
peter
a0ebdcf820
* enable regvar for -O2
...
git-svn-id: trunk@8910 -
2007-10-22 16:50:09 +00:00
florian
9be265ab02
* fixed x86-64 compilation
...
git-svn-id: trunk@6940 -
2007-03-21 12:26:06 +00:00
florian
2a54d957b2
* fixed two small errors
...
* supported_optimizerswitches now takes generic flags also into account
git-svn-id: trunk@4865 -
2006-10-11 21:14:47 +00:00
florian
a61abb25cb
* reorganized optimizer switch sets
...
git-svn-id: trunk@4862 -
2006-10-11 18:16:10 +00:00
florian
e8d5dc4ab2
* tailrecursion optimization enabled for for sparc, i386, x86-64 and arm
...
git-svn-id: trunk@4860 -
2006-10-11 16:34:28 +00:00
peter
35c4d43699
* disable regvars until it is fixed
...
git-svn-id: trunk@3008 -
2006-03-21 17:31:02 +00:00
Jonas Maebe
8a6ebdf274
- disabled loop unrolling for level 3 optimizations since it only causes
...
crashes (and even if it didn't, on its own it mainly causes code
bloat)
git-svn-id: trunk@2941 -
2006-03-17 17:42:39 +00:00
peter
2888a21593
* list supported optimization options in -i
...
* support $OPTIMIZATION and $O+
git-svn-id: trunk@2904 -
2006-03-13 11:17:56 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
daniel
d05f58b604
* Group asmlists into array to be able to add
...
some of them more comfortably.
* x86_64 compilation was broken, fixed.
* Sparc compilation was broken, fixed.
git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
04c97cc129
* load jmp_buf_size from system unit
2005-01-20 16:38:45 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
florian
c68ea95074
+ syscall directive support for MorphOS added
2004-04-28 15:19:03 +00:00
florian
c51b6fa45b
+ AInt added
2004-04-12 18:25:26 +00:00
florian
06442fa677
+ $fputype directive support
...
+ single data type operations with sse unit
* fixed more x86-64 stuff
2003-12-25 01:07:09 +00:00
florian
6170faf334
* fixed some x86-64 issues
2003-12-22 19:00:17 +00:00
florian
9fd5217032
* some x86-64 compilation fixe
2003-12-20 12:38:51 +00:00
florian
8edd479391
* several fixes for new reg allocator
2003-09-24 17:12:02 +00:00
florian
b59b436130
* x86-64 compiles
...
+ very basic support for float128 type (x86-64 only)
2003-01-05 13:36:53 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
carl
9da171faf2
+ stab register indexes for powerpc (moved from gdb to cpubase)
...
+ tprocessor enumeration moved to cpuinfo
+ linker in target_info is now a class
* many many updates for m68k (will soon start to compile)
- removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +00:00
carl
18b102ce95
+ moved target_cpu_string to cpuinfo
...
* renamed asmmode enum.
* assembler reader has now less ifdef's
* move from nppcmem.pas -> ncgmem.pas vec. node.
2002-08-10 14:46:29 +00:00
florian
7bf1321808
* several fixes, small test units can be compiled
2002-07-25 22:55:33 +00:00
florian
52dbda43c3
+ initial release of x86-64 target code
2002-07-24 22:38:15 +00:00