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
peter
f5471aef6e
* more spilling rewrites
2004-10-05 20:41:01 +00:00