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
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
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
micha
bae0251549
* fix big endian arm loading (fixes issue #8752 )
...
git-svn-id: trunk@8862 -
2007-10-20 14:31:08 +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
florian
b984b2227f
* improved constant loading for arm
...
git-svn-id: trunk@8429 -
2007-09-11 19:28:48 +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
florian
eb8b2fb138
* be more carefull with unaligned load optimization
...
git-svn-id: trunk@6356 -
2007-02-07 17:43:56 +00:00
florian
35b9bfc83e
* several range check errors fixed
...
git-svn-id: trunk@6324 -
2007-02-03 19:36:06 +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
florian
c16c124562
* handle pc relative offsets in ldf/stf correctly
...
git-svn-id: trunk@6115 -
2007-01-21 22:55:12 +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
yury
2a274aa510
* fixed tbs/tb0350.pp.
...
* removed unused local variables.
git-svn-id: trunk@5667 -
2006-12-21 21:18:38 +00:00
yury
c427fcf902
* fixed register to register conversion for ARM.
...
git-svn-id: trunk@5537 -
2006-12-03 22:01:33 +00:00
yury
d4335749ec
* reverted r5481. That order of instructions can be executed more effectively on newer ARM CPUs.
...
git-svn-id: trunk@5484 -
2006-11-26 11:42:29 +00:00
florian
01a20b25a2
* don't reuse registers
...
git-svn-id: trunk@5483 -
2006-11-26 11:11:14 +00:00
yury
35b1014207
* more usual order of instructions.
...
git-svn-id: trunk@5481 -
2006-11-26 10:06:12 +00:00
yury
135c0ecfb7
* fixed passing float constants as part of "array of const" parameter for ARM.
...
git-svn-id: trunk@5403 -
2006-11-16 17:01:17 +00:00
florian
3f77637b56
* set is_jmp flag correctly
...
git-svn-id: trunk@5399 -
2006-11-16 09:43:58 +00:00
yury
8abe2d365e
* Implemented stackframe optimization for ARM CPU.
...
git-svn-id: trunk@5374 -
2006-11-14 16:18:49 +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
florian
922de0bc8d
* fixed wrong load_ref_ref
...
git-svn-id: trunk@5092 -
2006-10-30 11:48:37 +00:00
florian
67ba76f090
* several arm fixes
...
git-svn-id: trunk@4742 -
2006-09-27 21:05:05 +00:00
florian
e08bf34689
* stack page initialization disabled, not necessary according to Yury Sidorov
...
git-svn-id: trunk@4539 -
2006-09-02 20:43:59 +00:00
florian
7145eeb4b9
* bugs in wince stack initialization fixed
...
git-svn-id: trunk@4517 -
2006-08-29 19:32:40 +00:00
florian
e08a24562c
* experimental wince stack initialization fix
...
git-svn-id: trunk@4516 -
2006-08-29 16:01:52 +00:00
yury
0018d7b920
* final fix for overflow checking for ARM.
...
git-svn-id: trunk@4103 -
2006-07-06 18:54:19 +00:00
yury
0c396ad3da
* proper fix for rev. 4097.
...
git-svn-id: trunk@4099 -
2006-07-06 12:23:29 +00:00
yury
76921030e9
* fixed bug #6079 for ARM CPU.
...
git-svn-id: trunk@4097 -
2006-07-06 10:27:23 +00:00
florian
bbc42e8503
* made ie unique
...
git-svn-id: trunk@3737 -
2006-05-29 19:50:12 +00:00
florian
30e7d87c11
* fixed loading of floating point constants
...
git-svn-id: trunk@3667 -
2006-05-25 09:57:07 +00:00
florian
2ddd617971
* fixed stm/ldm for usage with large temp. areas
...
git-svn-id: trunk@3633 -
2006-05-22 21:00:55 +00:00
florian
8bd674af24
* another patch from Roozbeh GHolizadeh
...
* improved concatcopy code generation
* improved constant loading
* improved multiplication code generation
git-svn-id: trunk@3471 -
2006-05-10 20:07:29 +00:00
florian
fa03ab8fe5
* fixed arm compiler by adding a_call_ref
...
git-svn-id: trunk@3416 -
2006-05-03 13:53:40 +00:00
florian
09ad199450
* cleanup and bug fixing of unaligned data handling code by Roozbeh GHolizadeh
...
git-svn-id: trunk@3377 -
2006-04-30 08:07:29 +00:00
florian
13493a5355
* fixed copying of unaligned value parameters
...
git-svn-id: trunk@3369 -
2006-04-29 20:13:57 +00:00
florian
053bff4295
+ improved concatcopy from Roozbeh GHolizadeh
...
git-svn-id: trunk@3355 -
2006-04-29 13:12:48 +00:00
florian
0780616dee
+ unaligned load/store support from Roozbeh GHolizadeh
...
git-svn-id: trunk@3351 -
2006-04-29 11:44:44 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
florian
1b5e2b67b1
* compilation fixed
...
git-svn-id: trunk@2947 -
2006-03-17 21:16:15 +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
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
florian
dae84f282f
* fixed handling of doubles in softemu mode if they are split between register and memory
...
git-svn-id: trunk@2047 -
2005-12-24 17:43:57 +00:00
florian
12a1449884
* ldf*/stf* can handle only offsets with max. +/- 1020, so generate never a pc relative symbol
...
git-svn-id: trunk@1649 -
2005-11-04 23:56:06 +00:00
florian
cf3c9bdcad
* a_jmp_always fixed, it doesn't generate a new symbol anymore
...
git-svn-id: trunk@1534 -
2005-10-19 14:38:30 +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
florian
d280ed6e8b
* continued to work on arm binary writer, started to fix operand matching
...
git-svn-id: trunk@1073 -
2005-09-11 10:01:54 +00:00