Jonas Maebe
718694d1d6
* always specify an explicit alignment for tgobj.gettemp (so e.g.
...
shortstring temps don't get maximum alignment)
* changed some gettemptyed() calls into gettemp() calls (gettemptyped
means that this temp can only be used for temps of that type,
which is necessary for refcounted types but not for floats)
git-svn-id: trunk@12036 -
2008-11-08 22:20:47 +00:00
yury
0bcaf8845f
* Fixed 'mixed signed/unsigned' warnings.
...
* Suppressed 2 unreachable code warnings.
* Now x86 compiler compiles without warnings and notes! It will be great to keep such state in future...
git-svn-id: trunk@11455 -
2008-07-23 13:16:46 +00:00
yury
cf7390ea81
* Fixed 'mixed signed/unsigned' and pointer conversion warnings.
...
git-svn-id: trunk@11439 -
2008-07-23 09:36:07 +00:00
peter
6744b747b8
* remove goto, that prevents optimizations
...
git-svn-id: trunk@10083 -
2008-01-28 18:13:32 +00:00
Jonas Maebe
8d9bfcaa7d
* fixed memory corruption in trgobj.add_to_movelist on 64 bit platforms
...
git-svn-id: trunk@9523 -
2007-12-25 23:39:28 +00:00
peter
6058b2c247
* renamed t_times to executionweight and moved it to
...
code generation pass
* include executionweight in the spilling decision
git-svn-id: trunk@9330 -
2007-11-25 16:38:05 +00:00
peter
263b7abc6f
* check register type also for registers in references so we are
...
not mixing addressregisters and intregisters on m68k
git-svn-id: trunk@9128 -
2007-11-04 14:24:36 +00:00
Jonas Maebe
335bc9fd46
+ PIC support for darwin/ppc32 (-Cg works now, no regressions in test
...
suite compiled with -Cg compared to without -Cg)
+ support for using a virtual register as PIC/got base register
* moved got loading code from ncgutil to cgobj/cgcpu (can't test whether
it didn't break anything under linux/i386, because "make cycle OPT=-Cg"
was already broken due to the *prt*.as -> si_*.pp changes)
git-svn-id: trunk@8651 -
2007-09-26 16:41:32 +00:00
peter
67e16340be
* revert r8118
...
git-svn-id: trunk@8139 -
2007-07-22 19:59:00 +00:00
daniel
21293f5818
+ Add common type integer promotion.
...
- {$intpromotion common_type} or -CIcommon_type switches to common type promotion.
- {$intpromotion native_integer} or -CIcommon_type switches to current behaviour.
- Default in tp mode is common_type, native_integer in other modes
- Compiler can cycle with -CIcommon_type
- Still needs checking on other architectures than i386
git-svn-id: trunk@8118 -
2007-07-21 19:16:24 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
daniel
182fca72f2
* Change spill_* routines to return Taicpu instead of Tai to increase
...
strong typing.
* Fix PowerPC R0 register allocation
git-svn-id: trunk@7317 -
2007-05-12 15:43:16 +00:00
peter
60069ce3d2
* fix IE with -sr and EXTDEBUG
...
git-svn-id: trunk@5283 -
2006-11-07 22:43:34 +00:00
florian
8fe7fb5e66
* arm uses sometimes up to 4 registers in one instruction
...
git-svn-id: trunk@5205 -
2006-11-03 16:46:29 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
daniel
01afee1f73
* Add extra calls to get_alias to properly recognize coalesced
...
registers to be spilled.
git-svn-id: trunk@4997 -
2006-10-21 21:31:08 +00:00
daniel
8242fb32ab
* One more line to revert
...
git-svn-id: trunk@4718 -
2006-09-24 17:02:42 +00:00
daniel
6abd7a7cf3
* Revert oldlasttemp stuff
...
git-svn-id: trunk@4717 -
2006-09-24 16:59:36 +00:00
daniel
4d3c7ac99e
* Change ptrint into ptruint because $7fffffff < $80000001 should
...
be true.
git-svn-id: trunk@4709 -
2006-09-24 13:12:19 +00:00
peter
84d652e3c9
* remove extdebug register unused warning, it is obsolete with the ssa for registers
...
git-svn-id: trunk@4540 -
2006-09-03 08:30:05 +00:00
Jonas Maebe
fd4b348e7c
* fixed empty superregister set detection in constructor
...
git-svn-id: trunk@4333 -
2006-08-03 15:15:23 +00:00
Jonas Maebe
7bb3a1fe22
* fixed register allocation of gen_load_para_value() and backwards
...
extension of regalloc info in general
git-svn-id: trunk@4293 -
2006-07-25 13:54:48 +00:00
peter
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
* pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
* refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
* add cfi to asmdata
* move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
florian
94038b0d83
+ translate register variable locations, enables register variable debug info, with SSA it requires to be extended maintaining location list
...
git-svn-id: trunk@2409 -
2006-02-02 21:27:23 +00:00
florian
137f8f340d
* handling of address registers in references fixed
...
* write address registers as areg when compiling with -sr
git-svn-id: trunk@2398 -
2006-02-01 22:45:14 +00:00
Jonas Maebe
fc1b5c9fe2
* fixed backwards extension of regalloc information
...
git-svn-id: trunk@2193 -
2006-01-06 11:17:29 +00:00
Jonas Maebe
b769a968e3
* make sure live_start and live_end are correctly updated while
...
generating the initialisation and entry code
git-svn-id: trunk@2185 -
2006-01-05 17:46:16 +00:00
Jonas Maebe
7aa315c71a
* made some Tcpuregisterset parameters const to avoid useless copying
...
git-svn-id: trunk@2176 -
2006-01-05 10:10:25 +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
41c253b65d
* during spilling only add deallocs to live_registers that belong
...
to the instruction
2005-04-07 16:25:05 +00:00
peter
e207c402fc
* only in EXTDEBUG leave register allocator when it fails. Otherwise
...
give an IE
2005-04-07 15:42:04 +00:00
Jonas Maebe
a5c94ddccd
* removed some unused variables
2005-03-25 21:55:43 +00:00
peter
5452cccaad
* fix spilling code when explicit cpu registers are used in an
...
instruction
2005-03-20 19:47:46 +00:00
Jonas Maebe
6c38093871
* fixed spilling for several ppc instructions which only read registers
...
+ added support for registers in references that get changed (load/store
with update)
2005-02-18 23:37:51 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
db81b4333a
* fatal error when procedure is too complex
2004-11-14 21:08:27 +00:00
florian
8ffe3c6a9e
* debug writeln removed
2004-11-06 18:58:18 +00:00
florian
42e14b6825
+ additional extdebug check for wrong add_reg_instructions added
...
* too long manglednames are cut off at 200 chars using a crc
2004-11-06 17:44:47 +00:00
peter
1cf3aef0f0
* regalloc bind to instructions need to get real ait_instruction
2004-11-01 10:34:08 +00:00
Jonas Maebe
dc71fc8290
* make sure live_start/end is never a tai_regalloc, as those can be
...
removed by the register allocator and thus become invalid. This fixed
make cycle with -Or for ppc, but I'm not sure what the warning on
symsym.pas:1663 means. Since the tlocation change, even regular make
cycle doesn't work anymore though...
2004-10-31 23:18:29 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
florian
36ca15cf07
* fixed compilation of system unit on arm
2004-10-31 16:04:30 +00:00
florian
e04b172854
* fixed generic optimizer
...
* enabled generic optimizer for sparc
2004-10-30 15:21:37 +00:00
peter
30be9e8e5d
* during translation only process regalloc for the current regtype
2004-10-24 17:04:01 +00:00
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
60c73cc0e5
* -Or fixes for open array
2004-10-13 21:12:51 +00:00
peter
b0ebc06ce6
* removed warning about register used only once
2004-10-11 15:47:03 +00:00
peter
eaf46c4fb1
* live_registers must be restored after the spilling store code
...
is generate to add correct conflicts for extra temporary registers
2004-10-06 20:14:08 +00:00