florian
7ef191021f
+ check for location.loc<>expectloc in extdebug mode
...
* set expectloc properly for add nodes on arm
git-svn-id: trunk@10536 -
2008-03-23 10:18:33 +00:00
Jonas Maebe
62e66d2a56
* explicit typecasting of any ordinal type to a boolean of the same
...
size must happen without any mangling of the value (mantis #11027 )
* moved checking for signed-to-unsigned (or vice versa) type
conversions in assignments from htypechk to ncnv (where there
was already code for similar checks) and added support for
bool_to_bool there as well
git-svn-id: trunk@10521 -
2008-03-21 14:44:58 +00:00
micha
6910b0ed40
* fix arm(eb) load/store of smaller than register sizes
...
git-svn-id: trunk@10500 -
2008-03-17 21:27:44 +00:00
florian
ed540dc7c1
* fixed copy&paste error in rev. 10460
...
git-svn-id: trunk@10462 -
2008-03-08 14:05:04 +00:00
micha
f70c24435d
* fix int64 result passing on armeb
...
git-svn-id: trunk@10460 -
2008-03-08 13:02:33 +00:00
peter
8f239d04b6
* cleanup and simplify the set type handling
...
git-svn-id: trunk@10432 -
2008-03-02 17:48:27 +00:00
Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
florian
90a3b20b48
Merged revisions 10168 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/avr
........
r10168 | florian | 2008-02-03 10:56:10 +0100 (Sun, 03 Feb 2008) | 1 line
* properties set
........
git-svn-id: trunk@10169 -
2008-02-03 09:59:37 +00:00
Jonas Maebe
8349cde7db
* changed byte/word/longbool to be Delphi-compatible (+ similar changes
...
for qwordbool) + test:
o assigning true to such a variable now sets them to $ff/$ffff/$ffffffff
o these types are now all signed
o converting an integer type to a byte/word/long/qwordbool using an
explicit type cast keeps the integer's original value stored in the
bool, instead of forcing it to ord(true)/ord(false)
(mantis #10233 and #10613 , implemented for all architectures, testsuite
tested for ppc32, sparc and x86)
* fixed some places where the rtl depended on longbool(true) having the
value 1
* extended several boolean tests (and adapted some to no longer assume
that byte/word/long/qwordbool(true)=1)
+ support for converting to qwordbool in second_int_to_bool for x86, ppc
and sparc
git-svn-id: trunk@9898 -
2008-01-24 21:30:55 +00:00
sekelsenmat
38048fd073
Small fix for symbian arm target.
...
git-svn-id: trunk@9376 -
2007-12-02 08:27:18 +00:00
florian
29766e5d81
+ first additions for the arm eabi
...
git-svn-id: trunk@9157 -
2007-11-07 20:48:32 +00:00
florian
c3475dddc0
* handle case ranges properly for unsigned types with a non-zero base, resolves #10009
...
git-svn-id: trunk@8974 -
2007-10-28 17:06:02 +00:00
florian
1e618b499d
* fixes unaligned load_ref_reg on little endian arm
...
git-svn-id: trunk@8972 -
2007-10-28 15:30:50 +00:00
florian
00d6a03b2c
+ default code now preserves mm registers
...
* save|restore_standard_registers => save|restore_registers
git-svn-id: trunk@8954 -
2007-10-27 12:02:28 +00:00
florian
c77267e01f
* more div n^2 optimization
...
git-svn-id: trunk@8867 -
2007-10-20 18:02:55 +00:00
florian
c57f44d75b
+ div 2^n optimization for arm
...
git-svn-id: trunk@8864 -
2007-10-20 17:42:29 +00:00
micha
bae0251549
* fix big endian arm loading (fixes issue #8752 )
...
git-svn-id: trunk@8862 -
2007-10-20 14:31:08 +00:00
florian
9ab1a1c550
* allow mla to take 4 operands, resolves #9461
...
git-svn-id: trunk@8801 -
2007-10-14 18:08:49 +00:00
florian
fa0507ec2c
* fixed compilation on arm in extdebug mode
...
git-svn-id: trunk@8771 -
2007-10-12 16:14:49 +00:00
peter
9f0ca44c94
* new tf_smartlink_library flag
...
* use create_smartlink[_sections|_library] to check what to
do for smartlinking
git-svn-id: trunk@8715 -
2007-10-01 16:55:08 +00:00
peter
6b8aed593f
* remove registers{int/mmx/fpu} from firstpass
...
* small cleanups of unused variables in firstpass
* node_resources_fpu() created to get an approximation of the
required fpu registers
* for the moment use node_complexity in the CG until the
node_resource_int() is created
git-svn-id: trunk@8655 -
2007-09-26 21:12:01 +00:00
florian
039b513d93
* pass classes and interfaces by value if const is used, resolves #9674
...
git-svn-id: trunk@8484 -
2007-09-14 19:26:09 +00:00
florian
b984b2227f
* improved constant loading for arm
...
git-svn-id: trunk@8429 -
2007-09-11 19:28:48 +00:00
yury
3e60b4a8dd
* Don't optimize (eliminate) arm fpu move instruction if it performs float type conversion. It fixes tb0519.pp on arm-linux.
...
git-svn-id: trunk@8059 -
2007-07-14 21:52:15 +00:00
yury
bd0cafd545
* fixed ARM stackframe optimization when float registers are used.
...
git-svn-id: trunk@8032 -
2007-07-12 21:55:34 +00:00
yury
1782305ae2
* Completely fixed float constants in softfloat mode when compiler was compiled in hardfloat mode on arm-linux host.
...
git-svn-id: trunk@8015 -
2007-07-10 21:05:12 +00:00
yury
09fa6b5893
* Fixed Abs and Sqrt in hardfloat mode on arm.
...
git-svn-id: trunk@7980 -
2007-07-08 08:17:32 +00:00
yury
b86574cf36
* Fixed float constants in softfloat mode when compiler was compiled in hardfloat mode on arm-linux host.
...
git-svn-id: trunk@7977 -
2007-07-07 19:19:49 +00:00
yury
2829f4e46f
* Fixed arm optimizer bug (mantis #9209 ). No testsuite regressions with -O2.
...
* Removed unused local vars.
+ test.
git-svn-id: trunk@7970 -
2007-07-06 13:09:28 +00:00
yury
86d49c2a0c
* Activated safecall support for ARM CPU.
...
git-svn-id: trunk@7762 -
2007-06-21 17:32:35 +00:00
yury
d1c2f41c66
* Fixed passing variant parameters by value for ARM. It fixes tw7806.pp.
...
git-svn-id: trunk@7758 -
2007-06-21 15:06:43 +00:00
yury
ff3bd9fa6f
* fixed compilation for arm targets.
...
git-svn-id: trunk@7729 -
2007-06-18 23:38:54 +00:00
yury
3b7e458f02
* Properly set location of float return value if it is passed as var parameter (it is always happens for safecall functions). It fixes bugs #8523 and #8977 .
...
+ test.
git-svn-id: trunk@7728 -
2007-06-18 23:23:46 +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
florian
a3d906f1ca
- removed several ;;
...
git-svn-id: trunk@7498 -
2007-05-28 15:59:17 +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
florian
70b438a40f
* better insert of pc relative data
...
git-svn-id: trunk@6975 -
2007-03-24 18:35:53 +00:00
florian
dd45cf582f
* set temp. start properly when omitting stackframe
...
git-svn-id: trunk@6761 -
2007-03-09 20:52:04 +00:00
florian
ffd79553a0
+ prefetch support for arm
...
git-svn-id: trunk@6561 -
2007-02-19 17:27:07 +00:00
florian
e8c48ab561
+ eDSP instructions for arm
...
git-svn-id: trunk@6425 -
2007-02-11 15:10:27 +00:00
florian
eb8b2fb138
* be more carefull with unaligned load optimization
...
git-svn-id: trunk@6356 -
2007-02-07 17:43:56 +00:00
florian
a800b2a3d3
* fixed interference generation for top_local
...
git-svn-id: trunk@6343 -
2007-02-04 20:43:31 +00:00
florian
c5d8e53758
* last commit fixed
...
git-svn-id: trunk@6338 -
2007-02-04 18:50:22 +00:00
florian
3609ddc5dd
* more MustBeLast fixes
...
* const insertation algorithm fixed
git-svn-id: trunk@6337 -
2007-02-04 18:45:43 +00:00
florian
762bd12d16
* handle embedded case jump tables correctly
...
git-svn-id: trunk@6333 -
2007-02-04 14:33:57 +00:00
florian
35b9bfc83e
* several range check errors fixed
...
git-svn-id: trunk@6324 -
2007-02-03 19:36:06 +00:00
florian
8d33f640d4
* stop conditional optimization at mov pc,...
...
git-svn-id: trunk@6321 -
2007-02-03 17:40:32 +00:00
florian
d09295b686
* shift folding
...
git-svn-id: trunk@6312 -
2007-02-02 23:12:08 +00:00
florian
01b23ca896
* improved last commit
...
git-svn-id: trunk@6309 -
2007-02-02 22:47:29 +00:00
florian
d0b34fef46
* safe an loadaddr for simple references when generating unaligned accesses
...
git-svn-id: trunk@6308 -
2007-02-02 22:43:30 +00:00