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
Jonas Maebe
5347e536c2
+ support for generating non-pic darwin/arm call stubs
...
+ write the header for non-pic darwin/arm call stubs properly in aggas
* r9 is not available for general use on darwin/arm according to the llvm
code generator
git-svn-id: trunk@11862 -
2008-10-04 14:07:52 +00:00
yury
4cabbe0e39
* Fixed compiler cycling with enabled range and overflow checking.
...
git-svn-id: trunk@11489 -
2008-07-29 21:11:03 +00:00
florian
fe7cba52dc
+ support of inlined ror/rol on arm
...
git-svn-id: trunk@11473 -
2008-07-28 15:48:38 +00:00
florian
1afb1aa9cc
+ ror/rol functions
...
+ internal compiler support for ror/rol on i386
git-svn-id: trunk@11466 -
2008-07-27 17:12:32 +00:00
yury
a6eb251cee
* Define dummy tcgarm.g_stackpointer_alloc to fix abstract warning.
...
* Suppressed unreachable code warnings.
* Now ARM compiler compiles without warnings and notes.
git-svn-id: trunk@11456 -
2008-07-23 13:22:36 +00:00
yury
a039dd6942
* Fixed warnings about hiding inherited method.
...
git-svn-id: trunk@11449 -
2008-07-23 11:51:19 +00:00
yury
6c6bf452ca
* Fixed level 2 comment warnings.
...
git-svn-id: trunk@11441 -
2008-07-23 10:08:48 +00:00
florian
67ef9f20ae
* test for previous commit
...
* fixed wrapper generation for bigger offsets as well
git-svn-id: trunk@11059 -
2008-05-23 16:16:34 +00:00
florian
ea46cb4218
* take care of the maximum constant size when creating interface wrappers, resolves #10831
...
git-svn-id: trunk@11058 -
2008-05-23 16:02:17 +00:00
yury
60ecb64346
* Fixed loading of single floating point values from memory to register for ARM hardfloat.
...
git-svn-id: trunk@10826 -
2008-04-27 20:47:52 +00:00
yury
b9431c876e
* More complete fix for bug #10515 . Thanks to Jonas for suggestion.
...
* Fixed warnings in tcnvint6.pp
git-svn-id: trunk@10765 -
2008-04-23 08:22:27 +00:00
yury
88597d23c5
* Fixed tcgarm.a_load_ref_reg to load word values from location with alignment 2 using unaligned load.
...
git-svn-id: trunk@10754 -
2008-04-22 08:46:19 +00:00
yury
9222540e84
* Small optimization.
...
git-svn-id: trunk@10692 -
2008-04-18 11:46:39 +00:00
yury
95ea5d87dd
* Fixed int to int conversion in ARM code generator.
...
+ Added new test to detect more bugs in int to int conversion.
git-svn-id: trunk@10691 -
2008-04-18 11:31:12 +00:00
yury
ec943198fd
* Properly fill treference.alignment when variable is loaded by tcgloadnode. It allows code generator to insert unaligned handling if needed.
...
* Improved generic a_load_ref_reg_unaligned if ref alignment is 2.
* Improved unaligned load/store of register for ARM.
* It fixes passing records by value on ARM.
+ New test.
git-svn-id: trunk@10681 -
2008-04-16 23:01:20 +00:00
yury
cf235145cb
* Fixed a_load_reg_reg for arm.
...
* Fixed sign/zero-extension in second_int_to_bool for all CPUs. x86 and pppc were not affected by this bug, but I fixed it for all CPUs for consistency.
* cg/tcnvint1 is passed on arm now.
git-svn-id: trunk@10669 -
2008-04-15 20:44:27 +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
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