florian
637976e83f
* patch by Marģers to unify internal error numbers, resolves #37888
...
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
florian
28f25b2df0
* reworked usage of tcgnotnode.handle_locjump
...
git-svn-id: trunk@46275 -
2020-08-05 21:15:32 +00:00
yury
1b3a3a7983
* Removed lot of unused local vars. It is useful to turn on the notes in options. :)
...
git-svn-id: trunk@44053 -
2020-01-28 18:45:33 +00:00
florian
ccf409c8a0
* use 64 bit code page in tppcshlshrnode.pass_generate_code for all 64 bit types,
...
resolves #33582
git-svn-id: trunk@43795 -
2019-12-25 22:11:31 +00:00
Jonas Maebe
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
...
be introduced by the next commit
git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
Jonas Maebe
0fc1fd6ac1
* replaced current_procinfo.currtrue/falselabel with storing the true/false
...
labels of LOC_JUMP in the node's location. This generates some extra jumps
for short circuit boolean and/or-expressions if optimizations are off, but
with optimisations enabled the generated code is the same (except for JVM
because the jump threading optimisation isn't enabled there yet).
git-svn-id: trunk@31431 -
2015-08-27 18:28:57 +00:00
Jonas Maebe
10b2ea3b1b
* use handle_locjump() instead of local inlined version
...
git-svn-id: trunk@31430 -
2015-08-27 18:28:52 +00:00
Károly Balogh
6122db7d40
* fix warnings when compiling the compiler with DFA optimizer enabled on PowerPC
...
git-svn-id: trunk@28501 -
2014-08-20 14:31:36 +00:00
sergei
9593cece03
* powerpc: implement cg.a_mul_reg_reg_pair method and switch to generic code for division by constants.
...
git-svn-id: trunk@27976 -
2014-06-15 16:33:08 +00:00
florian
d2aa35e9de
* throw an internal error if code generation depends on expectloc but expectloc and real loc do not match
...
git-svn-id: trunk@22073 -
2012-08-13 15:02:55 +00:00
Jonas Maebe
92b4c84dae
* fixed 'int64 shl/shr 0' on ppc32
...
git-svn-id: trunk@21841 -
2012-07-10 09:24:26 +00:00
Jonas Maebe
edd42aa42a
* moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for
...
future use by high level code generator targets
o this in turn required that all a_load*_loc* methods are called via
hlcg rather than via cg, since a location can be a subsetref/reg and
and those are no longer handled in tcg
o that then required moving several force_location_* routines into
thlcg because they use a_load_loc*, but did not take tdef size
parameters (which are required by the thlcg a_load_loc* routines)
o the only practical consequence is that from now on, you have to
use hlcg.location_force_mem/reg() (fpureg not yet) and
hlcg.gen_load_loc_cgpara() instead of the removed versions from ncgutil,
and hlcg.a_load*loc*() instead of cg.a_load*loc* if a subsetref/reg
might be involved
git-svn-id: trunk@21287 -
2012-05-13 12:33:10 +00:00
Jonas Maebe
4d12a8b1ba
* fixed not(qwordbool): take all 64 bits into account, not only the
...
lower 32 ones
git-svn-id: trunk@19920 -
2011-12-30 12:09:43 +00:00
florian
4868b09844
* patch by alexvin to replace $ifopt by $push/$pop, resolves #20332
...
git-svn-id: trunk@19239 -
2011-09-25 21:19:50 +00:00
Jonas Maebe
5175a5ee07
* handle LOC_SUBSETREG,LOC_CSUBSETREG,LOC_SUBSETREF,LOC_CSUBSETREF in
...
unaryminus code (a.o., fixes compiler crash with test/terecs6 on
darwin/ppc32 under certain circumstances:
http://www.freepascal.org/testsuite/cgi-bin/testsuite.cgi?action=3&run1id=74027&run2id=74101&testfileid=3838 )
git-svn-id: trunk@16650 -
2010-12-28 23:52:25 +00:00
Jonas Maebe
a23630260b
+ "weakexternal" support for imported procedures and variables.
...
the syntax is exactly the same as for "external", except for
the keyword. It is currently only active for Darwin targets.
It should also work at least for Linux targets, but only with
the GNU assembler (which is why it is not activated there)
+ test for this functionality
git-svn-id: trunk@12009 -
2008-11-01 18:38:32 +00:00
daniel
573aa1cd34
* Make powerpc compile again.
...
git-svn-id: trunk@7642 -
2007-06-13 11:05:15 +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
Jonas Maebe
e815b923d5
* a_loadfpu_* gets two size parameters: fromsize and tosize
...
* fixed downsizing the precision of floating point values
* floating point constants are now treated using only the minimal
precision required (e.g. 2.0 is now a single, 1.1 extended etc)
(Delphi compatible)
git-svn-id: trunk@5927 -
2007-01-12 18:33:51 +00:00
Jonas Maebe
198a0008d0
* fixed -currency after r5896
...
git-svn-id: trunk@5914 -
2007-01-12 09:52:07 +00:00
Jonas Maebe
e2193b1540
* fixed mixing of longint/dword to avoid 64 bit conversion
...
git-svn-id: trunk@5788 -
2007-01-02 18:32:59 +00:00
Jonas Maebe
5522cbd7cd
* fixed typo which caused overflow checks not to be turned off when
...
calculating magic division constants
git-svn-id: trunk@5316 -
2006-11-10 20:53:50 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
Jonas Maebe
1f42ee201b
+ support for bitpacked records, except for:
...
* rtti
* typed constants
git-svn-id: trunk@4489 -
2006-08-23 15:44:13 +00:00
Jonas Maebe
63123d3c62
* don't reuse loc_register
...
git-svn-id: trunk@4426 -
2006-08-15 15:20:32 +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
Jonas Maebe
7f247e9305
* fix and suppress some rangecheck/overflow errors (regarding calculation
...
of magic constants for changing division into multiplication)
git-svn-id: trunk@2653 -
2006-02-20 11:01:38 +00:00
peter
a3ab2053c9
* support multiple asmlabel types, renamed getlabel to
...
getjumplabel and added type para to getlabel for specific types
* moved lineinfo generation from assemble and aggas to dbgstabs
git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
Jonas Maebe
fdc8c1c0ae
* replace divisions by constants with a combination of mul, shift, add from
...
the ppc compiler writers guide
+ test program for above optimization
(both by Thomas Schatzl)
git-svn-id: trunk@912 -
2005-08-21 18:35:15 +00:00
Jonas Maebe
0f8e019c44
* fixed web bug tw4078 + added test
...
git-svn-id: trunk@414 -
2005-06-15 16:46:03 +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
Jonas Maebe
a5c94ddccd
* removed some unused variables
2005-03-25 21:55:43 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
Jonas Maebe
4f53d8367d
* introduced bug (x shl 65 = x shl 1 when shifting with a constant, but
...
still 0 otherwise) to pass tshlshr
2004-12-06 17:53:43 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
d19663f3a8
* save standard registers moved to tcgobj
2004-10-25 15:36:47 +00:00
peter
65c3ba277c
* ungetregister is now only used for cpuregisters, renamed to
...
ungetcpuregister
* renamed (get|unget)explicitregister(s) to ..cpuregister
* removed location-release/reference_release
2004-09-25 14:23:54 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
Jonas Maebe
c2efd86268
+ integer division-by-zero detection support for ppc
...
+ compilerproc FPC_DIVBYZERO
2004-01-01 17:58:16 +00:00
Jonas Maebe
8be1033511
* (64 bit int) shl/shr (value > 63) := 0
2003-12-31 18:12:23 +00:00
Jonas Maebe
8953ed5494
* fixed tnotnode for < 32 bit quantities
2003-12-28 23:49:30 +00:00
florian
6a01a7b4a6
* compilation of the powerpc compiler fixed
2003-10-17 01:22:08 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
c05cf49b35
* removed empty cga unit
2003-09-03 19:39:16 +00:00
peter
601160a0e3
* powerpc compiles again
2003-09-03 19:35:24 +00:00
Jonas Maebe
642d0f923b
* ppc compiles with -dnewra, haven't tried to compile anything with it
...
yet though
2003-06-14 22:32:43 +00:00
Jonas Maebe
68b629fd16
* fixed small bug where a location was set to LOC_CREGISTER instead of
...
LOC_REGISTER
2003-06-08 18:20:02 +00:00